Một Số Lệnh Linux Hay Dùng Nên Biết Phần 2 - MTD SEC

MTD SEC

Chia Sẻ Để Thành Công

Home Top Ad

Post Top Ad

Thứ Bảy, 16 tháng 6, 2018

Một Số Lệnh Linux Hay Dùng Nên Biết Phần 2

14. chroot 

Cú pháp là: 
chroot NEWROOT [COMMAND [ARGS]...] 

Lệnh này sẽ đổi thư mục root đến NEWROOT và chạy lệnh COMMAND với các tham số ARGS. 
Chỉ có super-user mới có quyền chạy lệnh này. 

Lấy một ví dụ: 

+ Tạo một thư mục chroot trong /tmp: 
[root@stubborn quanta]# mkdir /tmp/chroot/ 
[root@stubborn quanta]# cd /tmp/chroot 

+ Tạo một số thư mục con trong thư mục này: 
[root@stubborn chroot]# mkdir bin lib home 

+ Bây giờ chúng ta copy /bin/bash và các thư viện phụ thuộc qua cấu trúc thư mục trong /tmp/chroot. Đầu tiên sử dụng lệnh ldd để liệt kê các thư viện phụ thuộc: 
[root@stubborn chroot]# ldd /bin/bash
linux-gate.so.1 => (0x00110000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0x0222b000)
libdl.so.2 => /lib/libdl.so.2 (0x00b47000)
libc.so.6 => /lib/libc.so.6 (0x009c1000)
/lib/ld-linux.so.2 (0x00b8e000)

 

+ Copy các thư viện này sang thư mục /tmp/chroot/lib tương ứng: 
[root@stubborn chroot]$ cp /lib/libtinfo.so.5 /tmp/chroot/lib/
[root@stubborn chroot]$ cp /lib/libdl.so.2 /tmp/chroot/lib/
[root@stubborn chroot]$ cp /lib/libc.so.6 /tmp/chroot/lib/
[root@stubborn chroot]# cp /lib/ld-linux.so.2 /tmp/chroot/lib/

+ Bây giờ copy /bin/bash sang /tmp/chroot/bin: 
[root@stubborn chroot]# cp /bin/bash /tmp/chroot/bin 

+ Dùng lệnh chroot chuyển sang thư mục /tmp/chroot/: 
[root@stubborn chroot]# chroot /tmp/chroot/ 

Nếu bạn gặp lỗi tương tự như: 
chroot: cannot run command `/bin/bash': No such file or directory 

hãy kiểm tra lại xem bạn đã copy đầy đủ các thư viện phụ thuộc qua /tmp/chroot/lib chưa? 

+ Sau khi thực hiện chroot, bạn có: 
[root@stubborn chroot]# chroot /tmp/chroot/
bash-3.2#

+ Thử gõ vài lệnh xem sao: 
bash-3.2# pwd
/
bash-3.2# ls
bash: ls: command not found

Như bạn thấy: thư mục hiện tại là / và lệnh ls không được tìm thấy. Gõ exit để thoát. 
bash-3.2# exit
exit
[root@stubborn chroot]#

Bây giờ thử copy lệnh /bin/ls qua /tmp/chroot/bin sau đó thực hiện lại xem sao: 
[root@stubborn chroot]# cp /bin/ls /tmp/chroot/bin/
[root@stubborn chroot]# chroot /tmp/chroot/
bash-3.2# ls
ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory

Như vậy là ls vẫn còn thiếu một số thư viện để có thể chạy. 

Copy nốt các thư viện này qua /tmp/chroot/lib và thực hiện lần cuối: 
[root@stubborn chroot]# ldd /bin/ls
linux-gate.so.1 => (0x00110000)
librt.so.1 => /lib/librt.so.1 (0x00365000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0030d000)
libacl.so.1 => /lib/libacl.so.1 (0x00691000)
libc.so.6 => /lib/libc.so.6 (0x009c1000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00b4e000)
/lib/ld-linux.so.2 (0x00b8e000)
libdl.so.2 => /lib/libdl.so.2 (0x00b47000)
libattr.so.1 => /lib/libattr.so.1 (0x0068a000)
[root@stubborn chroot]# cp /lib/librt.so.1 /tmp/chroot/lib
[root@stubborn chroot]# cp /lib/libselinux.so.1 /tmp/chroot/lib
[root@stubborn chroot]# cp /lib/libacl.so.1 /tmp/chroot/lib/
[root@stubborn chroot]# cp /lib/libpthread.so.0 /tmp/chroot/lib/
[root@stubborn chroot]# cp /lib/libdl.so.2 /tmp/chroot/lib/
[root@stubborn chroot]# cp /lib/libattr.so.1 /tmp/chroot/lib/
[root@stubborn chroot]# chroot /tmp/chroot/
bash-3.2# ls
bin home lib
bash-3.2#

Trên *nix, khi bạn gõ một lệnh, nó sẽ được tìm bắt đầu từ thư mục gốc trong cấu trúc thư mục (tức là root - /). Bây giờ khi bạn thực hiện chroot qua thư mục NEWROOT, gõ một lệnh nào đó, nó sẽ được tìm bắt đầu từ NEWROOT (lúc này NEWROOT được hiểu là thư mục gốc), chứ không phải là /. Đó là lý do tại sao, ở ví dụ trên, khi bạn gõ ls, bạn nhận được thông báo "bash: ls: command not found" (vì ls không nằm trong thư mục bin của /tmp/chroot). 

15 : alias

Lệnh này sử dụng nếu như bạn không quen thuộc với "rm", "cp" hay "mv" .. mà thích "del", "copy" hay "move" hơn thì sao, và nếu như bạn muốn nó bao giờ cũng -v Code:
alias del="rm -v"
alias copy="cp -v"
alias move="mv -v"

Như vậy, khi bạn gõ del, shell sẽ tự hiểu là bạn muốn gõ rm -v

Lưu ý : lệnh này chỉ có hiệu lực tại thời điểm tạo lệnh, nếu thoát khỏi terminal trong GUI hay logout trong Text Mode lệnh sẽ mất hiệu lực. Nếu các bạn muốn hiểu sâu hơn hoặc muốn lệnh automatically khi khởi động hãy tìm hiểu về ~/.bashrc, ~/.bash_profile, /etc/profile, ...


16. mktemp
mktemp [-V] | [-dqtu] [-p directory] [template] 

Bạn đang viết một đoạn script và cần tạo một file hoặc thư mục tạm mà không muốn phải kiểm tra xem nó đã được tạo trước đó hay chưa, bạn có thể dùng lệnh mktemp. Lệnh này tạo một file hoặc thư mục với tên duy nhất. File hoặc thư mục này được đặt trong /tmp vào có dạng tmp.XXXXXXXXXX. Dùng tuỳ chọn -d để tạo thư mục thay vì file.
Ví dụ, trong các script files bạn có thể dùng như sau:


STORE=`mktemp -d`

sau đó gọi đến đường dẫn của thư mục này với $STORE
17. file
Lệnh này xác định loại file.
$ file OReilly\ DNS\ and\ BIND 
OReilly DNS and BIND: PDF document, version 1.3

$ file CV
CV: Microsoft Office Document

$ file how\ linux\ works 
how linux works: MS Windows HtmlHelp Data --> chm

$ file Chuyen5nguoi 
Chuyen5nguoi: MPEG ADTS, layer III, v1, 128 kBits, 44.1 kHz, Monaural -->mp3

$ file Hanoi\ pho 
Hanoi pho: Standard MIDI data (format 1) using 2 tracks at 1/120

$ file Pictures/
Pictures/: directory

18. who: Ai đang dùng máy
[FaL@FaL ~]$ who
root ttyv1 Mar 14 11:10
FaL ttyp1 Mar 14 10:43 (:0.0)
FaL ttyp2 Mar 14 10:43 (:0.0)
congaquay ttyp3 Mar 14 11:11 (192.168.2.15)
8050 ttyp4 Mar 14 11:13 (85.143.68.8)

19. whoami / who am i: Tôi là ai
[FaL@FaL ~]$ whoami
FaL
[FaL@FaL ~]$ who am i
FaL ttyp2 Mar 14 10:43 (:0.0)

19. pwd: Tôi đang ở đâu? lấy thu mục mình đang thao tác và gõ trên terminal
[FaL@FaL ~]$ pwd
/net/ftp/pub/softs

20. id: Chứng minh thư của tôi đâu? lấy ID của tài khoản đang sử dụng cũng như các thông tin cần thiết
[FaL@FaL ~]$ id
uid=1019(FaL) gid=1003(FaL) groups=1003(FaL),0(wheel)

id của user FaL là 1019, thuộc nhóm FaL (cùng tên) với id của nhóm là 1003, những nhóm mà thằng FaL còn tham gia là: 1003 và (wheel)

21. cd: đưa tôi tới ...
Nếu ko có tham số ở sau, cd sẽ đưa bạn về thư mục gốc của user
[FaL@FaL ~]$ pwd
/net/ftp/pub/softs
[FaL@FaL ~]$ cd
[FaL@FaL ~]$ pwd
/home/FaL

Nếu sau cd có đường dẫn bạn sẽ được chuyển đến đường dẫn đó.

Trong *nix, . có nghĩa là thư mục hiện tại, .. có nghĩa là thư mục cha. Vậy để chuyển ra ngoài thư mục cha, bạn gõ:

(Lưu ý: Sau cd có một khoảng trắng)
Bây giờ, giả sử bạn đang làm việc trong thư mục /mnt/data/linux. Sau đó bạn chuyển sang thư mục /etc/sysconfig. Để quay trở lại thư mục /mnt/data/linux, bạn gõ:
$ cd -

(Lưu ý: Sau cd có một khoảng trắng)

22. ls (list): liệt kê các file trong thư mục bạn đang xem
[FaL@FaL ~]$ ls /home/friends
8050 Melf g0u22 lot tangzhiling
Bisaram Sirius hoangquyet moona tequilar
Carrot Tarona khanhvan notnhacxinh test
Lupanbl4 congaquay lho phituan uzbfriend

Tham số -l (chữ L): xem thông tin chi tiết của từng file:
[FaL@FaL ~]$ ls - /home/friends
total 40
drwxr-xr-x 4 755 friends 512 Mar 5 01:10 8050
drwxr-xr-x 2 Bisaram friends 512 Mar 13 19:54 Bisaram
drwxr-xr-x 2 Carrot friends 512 Mar 2 23:38 Carrot
drwxr-xr-x 4 Lupanbl4 friends 512 Mar 14 01:36 Lupanbl4
drwxr-xr-x 4 Melf friends 512 Mar 13 22:31 Melf
drwxr-xr-x 9 Sirius friends 512 Mar 12 15:16 Sirius
drwxr-xr-x 2 Tarona friends 512 Mar 3 23:35 Tarona
drwxr-xr-x 5 congaquay friends 512 Mar 8 20:28 congaquay
drwxr-xr-x 7 g0u22 friends 512 Mar 12 01:29 g0u22
drwxr-xr-x 6 hoangquyet friends 1024 Mar 13 00:46 hoangquyet
drwx--x--- 7 khanhvan friends 512 Mar 12 02:33 khanhvan
drwxr-xr-x 7 lho friends 512 Mar 11 23:39 lho
drwxr-xr-x 6 lot wheel 512 Feb 27 13:15 lot
drwxr-xr-x 5 moona friends 512 Mar 13 20:44 moona
drwxr-xr-x 7 notnhacxinh friends 512 Mar 11 19:27 notnhacxinh
drwxr-xr-x 6 phituan friends 512 Mar 12 16:37 phituan
drwxr-xr-x 5 tangzhiling friends 512 Feb 29 11:56 tangzhiling
drwxr-xr-x 2 tequilar friends 512 Mar 13 13:32 tequilar
drwxr-xr-x 4 hoangquyet friends 512 Feb 28 01:24 test
drwxr-xr-x 4 uzbfriend friends 512 Mar 3 23:59 uzbfriend

23. Which- lệnh hiện thị 'đầy đủ' đường dẫn.

Cấu trúc câu lệnh : which -[option] [--] programname [...]

Ví dụ bạn muốn xem đường dẫn openssl bạn sử dụng
$ which openssl  

hay bạn xem thử đường dẫn mysql cũa bạn. Sử dụng
$ which mysql 

Tham khảo đầy đủ:
$man which 

Mạn phép viết tiếp 1 lệnh:
24. find - tìm kiếm tập tin/thư mục

Cấu trúc câu lệnh: find [DIR_TO_FIND] -name "FILENAME_WITH_REGEX" -type f/d ....

Đây là 1 lệnh tìm kiếm không dựa trên database như lệnh locate, lệnh này rất mạnh vì hỗ trợ việc kết hợp với các lệnh khác.

Ví dụ bạn muốn tìm và xóa tất cả các tập tin/thư mục có tên là .svn trong thư mục hiện tại, bạn chỉ cần gõ:
find . -name ".svn" -exec rm -rf {}\; 

Nếu muốn chỉ xóa tập tin thì thêm -type f vào câu trên.

25. lsof

Liệt kê các files, sockets, pipes đang mở, đang được sử dụng bởi các tiến trình khác.

Một số tham số hữu ích hay dùng:
+ Xem /dev/dsp (thường liên quan đến sound card) đang bị dùng bởi chương trình nào:
# lsof | grep /dev/dsp
amarokapp 4316 quanta 18w CHR 14,3 3430 /dev/dsp

+ Xem tại sao khi unmount CD Rom lại gặp lỗi "device is busy":
# lsof | grep /mnt/cdrom

# kill -9 `lsof -t /dev/cdrom`

+ Xem ứng dụng nào đang dùng cổng 80:
# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd 2443 root 4u IPv4 5561 TCP *:http (LISTEN)
httpd 2648 apache 4u IPv4 5561 TCP *:http (LISTEN)
httpd 2649 apache 4u IPv4 5561 TCP *:http (LISTEN)
httpd 2650 apache 4u IPv4 5561 TCP *:http (LISTEN)
httpd 2651 apache 4u IPv4 5561 TCP *:http (LISTEN)
httpd 2652 apache 4u IPv4 5561 TCP *:http (LISTEN)
httpd 2653 apache 4u IPv4 5561 TCP *:http (LISTEN)
httpd 2654 apache 4u IPv4 5561 TCP *:http (LISTEN)
httpd 2655 apache 4u IPv4 5561 TCP *:http (LISTEN)

+ Tất cả các processes đang sử dụng bash shell:
# lsof /bin/bash
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld_sa 2342 root txt REG 8,2 735144 95056 /bin/bash
firefox 3195 quanta txt REG 8,2 735144 95056 /bin/bash
run-mozil 3208 quanta txt REG 8,2 735144 95056 /bin/bash
bash 3694 quanta txt REG 8,2 735144 95056 /bin/bash
sh 4096 quanta txt REG 8,2 735144 95056 /bin/bash
sh 4097 quanta txt REG 8,2 735144 95056 /bin/bash
bash 4114 quanta txt REG 8,2 735144 95056 /bin/bash
bash 4212 root txt REG 8,2 735144 95056 /bin/bash

+ Ai đang dùng vim:
# lsof /usr/bin/vim
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
vim 4554 root txt REG 8,5 1704392 131146 /usr/bin/vim

+ Init processes đang sử dụng những files nào:
# lsof -c init
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 8,2 4096 2 /
init 1 root rtd DIR 8,2 4096 2 /
init 1 root txt REG 8,2 38760 253571 /sbin/init
init 1 root mem REG 8,2 226208 190260 /lib/libsepol.so.1
init 1 root mem REG 8,2 105968 191330 /lib/libselinux.so.1
init 1 root mem REG 8,2 1692524 190257 /lib/libc-2.7.so
init 1 root mem REG 8,2 20564 190265 /lib/libdl-2.7.so
init 1 root mem REG 8,2 128952 192051 /lib/ld-2.7.so
init 1 root 10u FIFO 0,16 269 /dev/initctl

26. stat
Cung cấp tất cả các thuộc tính về một file
$ stat ssh-banner.txt 
File: `ssh-banner.txt'
Size: 340 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 127379 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 500/ quanta) Gid: ( 500/ quanta)
Access: 2008-04-08 09:24:55.000000000 +0700
Modify: 2008-02-19 22:56:40.000000000 +0700
Change: 2008-03-27 14:02:32.000000000 +0700

$ stat She\'s\ Gone\ -\ Steel\ Heart.mp3 
File: `She\'s Gone - Steel Heart.mp3'
Size: 9339410 Blocks: 18280 IO Block: 4096 regular file
Device: 802h/2050d Inode: 127446 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 500/ quanta) Gid: ( 500/ quanta)
Access: 2008-04-04 20:51:39.000000000 +0700
Modify: 2008-04-04 14:23:33.000000000 +0700
Change: 2008-04-04 14:23:33.000000000 +0700

27. netstat
Đưa ra thông tin về network connections, routing tables, interface.

Ví dụ:
- Thông tin về các connections:
[root@localhost ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:640 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3938 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1158 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5520 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1523 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:33396 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3938 127.0.0.1:51459 TIME_WAIT
tcp 0 0 127.0.0.1:51452 127.0.0.1:1158 TIME_WAIT
tcp 0 0 127.0.0.1:33457 127.0.0.1:1521 ESTABLISHED

- Tiến trình nào đang lắng nghe trên cổng 22:
[root@localhost ~]# netstat -anp |grep 22
tcp 0 0 :::22 :::* LISTEN 3216/sshd

Ta thấy tiến trình với PID là 3216 đang nghe trên cổng này. Kết hợp với ps sẽ thêm một số thông tin:
[root@localhost ~]# ps -ef |grep 3216
root 3216 1 0 Mar26 ? 00:00:00 /usr/sbin/sshd

- In ra bảng định tuyến:
[root@localhost ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
100.0.0.0 * 255.0.0.0 U 0 0 0 eth0
default 100.0.0.254 0.0.0.0 UG 0 0 0 eth0

28. groups
groups [OPTION]... [USERNAME]... 

Liệt kê các nhóm mà user đó là thành viên.
$ groups quanta 
quanta lp wheel vboxusers

29. Liệt kê các thành viên trong một nhóm
$ grep wheel /etc/group | cut -d: -f4 
root,quanta

$ awk -F: '$1 ~ /wheel/ {print $4}' /etc/group 
root,quanta


30. apropos
apropos keyword ... 

Đôi khi muốn thực hiện một tác vụ nào đó, nhưng bạn không biết phải dùng lệnh nào. Có nhiều cách để có thể tìm được, một trong số đó là dùng lệnh apropos. Lệnh này sẽ tìm trong man page chuỗi ký tự miêu tả ngắn gọn về lệnh bạn cần tìm.

Ví dụ:
+ Muốn tìm các lệnh liên quan đến user account bạn có thể gõ:
$ apropos 'user account' 
createuser (1) - define a new PostgreSQL user account
dropuser (1) - remove a PostgreSQL user account
endutxent [getutxid] (3p) - user accounting database functions
getutxent [getutxid] (3p) - user accounting database functions
getutxid (3p) - user accounting database functions
getutxline [getutxid] (3p) - user accounting database functions
lnewusers (1) - Create new user accounts
pututxline [getutxid] (3p) - user accounting database functions
setutxent [getutxid] (3p) - user accounting database functions
userdel (8) - delete a user account and related files
usermod (8) - modify a user account
usermode-gtk (rpm) - Graphical tools for certain user account management tasks
usermode (rpm) - Tools for certain user account management tasks
utmpx.h [utmpx] (0p) - user accounting database definitions

+ Các lệnh liên quan đến monitoring:
$ apropos monitoring 
asterisk-snmp (rpm) - Module that enables SNMP monitoring of Asterisk
frysk (7) - The Frysk Debugging, Tracing, and Monitoring Tool Suite
inotify (7) - monitoring file system events
iputils (rpm) - Network monitoring tools including ping
lm_sensors (rpm) - Hardware monitoring tools
mii-diag (8) - Network adapter control and monitoring
monit (1) - utility for monitoring services on a Unix system
ntp_mon (5) - Monitoring Options
procps (rpm) - System and process monitoring utilities
psacct (rpm) - Utilities for monitoring process activities
quota (rpm) - System administration tools for monitoring users' disk usage.
sensors-detect (8) - detect hardware monitoring chips
smartd (8) - SMART Disk Monitoring Daemon
smartd.conf [smartd] (5) - SMART Disk Monitoring Daemon Configuration File
smartmontools (rpm) - Tools for monitoring SMART capable hard disks
swatch (rpm) - Tool for actively monitoring log files
tcpdump (rpm) - A network traffic monitoring tool
time (rpm) - A GNU utility for monitoring a program's use of system resources

+ Các lệnh làm việc với processes:
$ apropos processes 
Apache2::SubProcess (3pm) -- Executing SubProcesses under mod_perl
capgetp [cap_get_proc] (3) - Linux specific capability manipulation on arbitrary processes
cap_get_proc (3) - POSIX capability manipulation on processes
capsetp [cap_get_proc] (3) - Linux specific capability manipulation on arbitrary processes
cap_set_proc [cap_get_proc] (3) - POSIX capability manipulation on processes
exec (n) - Invoke subprocesses
faked (1) - daemon that remembers fake ownership/permissions of files manipulated by fakeroot processes
fuser (1) - identify processes using files or sockets
fuser (1p) - list process IDs of all processes that have one or more files open
kill (1p) - terminate or signal processes
kill (3p) - send a signal to a process or a group of processes
killall (1) - kill processes by name
killall5 (8) -- send a signal to all processes
killpgrp (8) - kill all processes in the same process group
monit (rpm) - Manages and monitors processes, files, directories and devices
mysql_zap (1) - kill processes that match a pattern
numactl (8) - Control NUMA policy for processes or shared memory
peekfd (1) - peek at file descriptors of running processes
perlipc (1) - Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores)
pgrep (1) - look up or signal processes based on name and other attributes
pkill [pgrep] (1) - look up or signal processes based on name and other attributes
ps (1) - report a snapshot of the current processes
psmisc (rpm) - Utilities for managing processes on your system
pstree (1) - display a tree of processes
renice (1) - alter priority of running processes
smbcontrol (1) - send messages to smbd, nmbd or winbindd processes
sysvinit (rpm) - Programs which control basic system processes

31. pushd và popd

Đôi khi bạn thường xuyên phải làm việc với vài thư mục có đường dẫn khá dài. Lệnh cd có thể chuyển qua lại giữa chúng, nhưng có một cách nhanh hơn đó là dùng pushd và popd. 2 lệnh này sẽ tạo ra một ngăn xếp thư mục ảo (Virtual directory stack):
+ pushd: thay đổi thư mục hiện tại và đưa thư mục bạn sẽ đến vào stack
+ popd: lấy thư mục ở đỉnh ra khỏi stack và đưa bạn đến thư mục kế tiếp trong stack

Ví dụ: Tôi thường xuyên làm việc với vài thư mục: /mnt/data/linux-unix/packages, /mnt/data/pentaho, /mnt/data/linux-unix/Ebooks, ... Tôi sẽ "đẩy" chúng và ngăn xếp để khi cần thì "lấy" ra cho nhanh:
$ pushd .
~ ~

$ pushd /mnt/data/linux-unix/packages/
/mnt/data/linux-unix/packages ~ ~

$ pushd /mnt/data/pentaho/
/mnt/data/pentaho /mnt/data/linux-unix/packages ~ ~

$ pushd /mnt/data/linux-unix/Ebooks/
/mnt/data/linux-unix/Ebooks /mnt/data/pentaho /mnt/data/linux-unix/packages ~ ~

Để liệt kê các thư mục đang có trong stack bạn dùng lệnh dirs:
$ dirs
/mnt/data/linux-unix/Ebooks /mnt/data/pentaho /mnt/data/linux-unix/packages ~ ~

Bây giờ, để chuyển đến thư mục /mnt/data/pentaho, bạn chỉ việc gõ popd:
$ popd
/mnt/data/pentaho /mnt/data/linux-unix/packages ~ ~

$ pwd
/mnt/data/pentaho

2 lệnh này cũng hỗ trợ các tham số để chuyển đến một phần tử xác định trong ngăn xếp, đó là +n và -n. Ví dụ, hiện tại ngăn xếp của bạn như sau:
$ dirs
/mnt/data/linux-unix/Ebooks /mnt/data/pentaho /mnt/data/linux-unix/packages ~ ~

Bạn cần chuyển /mnt/data/linux-unix/packages lên đỉnh ngăn xếp, bạn có thể gõ:


$ pushd +2
/mnt/data/linux-unix/packages ~ ~ /mnt/data/linux-unix/Ebooks /mnt/data/pentaho

$ pwd
/mnt/data/linux-unix/packages

Hiểu nôm na là ngăn xếp sẽ bị "quay" sang trái 2 phần tử.

32. top
Kiểm tra các tiến trình đang hoạt động (giống task manager của windows), xem tiến trình nào đang chiếm tài nguyên hệ thống như thế nào. top sẽ cập nhật liên tục thay đổi của các tiến trình. nhấn q để kết thúc lệnh
[root@server ~]# top
top - 15:27:19 up 133 days, 6:10, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 0.3% sy, 0.0% ni, 99.3% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 254968k total, 247336k used, 7632k free, 45144k buffers
Swap: 524280k total, 1500k used, 522780k free, 130524k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3288 mysql 16 0 130m 17m 3988 S 0.3 7.1 96:46.27 mysqld
1 root 16 0 3516 548 468 S 0.0 0.2 0:08.48 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.32 ksoftirqd/0
3 root 5 -10 0 0 0 S 0.0 0.0 0:01.93 events/0
4 root 5 -10 0 0 0 S 0.0 0.0 0:00.03 khelper
5 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kblockd/0
6 root 15 0 0 0 0 S 0.0 0.0 0:00.00 khubd
34 root 15 0 0 0 0 S 0.0 0.0 0:00.04 kapmd
37 root 15 0 0 0 0 S 0.0 0.0 0:05.12 pdflush
38 root 15 0 0 0 0 S 0.0 0.0 0:04.11 pdflush
39 root 15 0 0 0 0 S 0.0 0.0 0:04.54 kswapd0
40 root 7 -10 0 0 0 S 0.0 0.0 0:00.00 aio/0
186 root 15 0 0 0 0 S 0.0 0.0 0:00.00 kseriod
432 root 15 0 0 0 0 S 0.0 0.0 4:31.33 kjournald
1610 root 6 -10 0 0 0 S 0.0 0.0 0:00.00 ata/0
1611 root 7 -10 0 0 0 S 0.0 0.0 0:00.00 ata_aux
1621 root 6 -10 2152 448 360 S 0.0 0.2 0:00.03 udevd

33. uname
Bạn đang chuẩn bị tải 1 phần mềm (MySQL chẳng hạn ) nhưng nó có quá nhiều phiên bản, để xác định phiên bản nào là phù hợp với hệ thống của mình bạn phải biết được các thông tin như "nền tảng phần cứng" (dịch từ chữ hardware-platform), version của nhân:
[root@server root]# uname --help
Usage: uname [OPTION]...
Print certain system information. With no OPTION, same as -s.

-a, --all print all information, in the following order:
-s, --kernel-name print the kernel name
-n, --nodename print the network node hostname
-r, --kernel-release print the kernel release
-v, --kernel-version print the kernel version
-m, --machine print the machine hardware name
-p, --processor print the processor type
-i, --hardware-platform print the hardware platform
-o, --operating-system print the operating system
--help display this help and exit
--version output version information and exit

Để xem hệ thống của bạn đang chạy nhân version nào:
[root@server root]# uname -r
2.4.21-4.EL

34. Lệnh mkdir 

Lệnh này dùng để tạo thư mục mới

35. lệnh touch 
Dùng để tạo ra 1 file mới. Hoặc bạn có thể dùng lệnh "vi" <- lệnh này dùng để soạn thảo văn bản và tạo file mới, nếu file này chưa tồn tại.

36. Lệnh rm.

Lệnh này dùng để xoá file hay thư mục
Options -f: dùng để xoá ko cần hỏi.

37. Lệnh rpm 
Dùng để install/ uninstall software hay 1 application.
Options: -qa để xem version của soft đã install.
Tham khảo chi tiết lệnh này trong phần "mục lục các bài viết có giá trị của hđh *nix" hoặc gõ man rpm.

Không có nhận xét nào:

Đăng nhận xét

Post Top Ad