1. 程式人生 > >LINUX下常用SHELL指令

LINUX下常用SHELL指令

轉載:http://www.cnblogs.com/nezha/p/3239601.html

Linux Shell常用shell命令

一、檔案、目錄操作命令

1、ls命令

功能:顯示檔案和目錄的資訊

ls 以預設方式顯示當前目錄檔案列表

ls -a 顯示所有檔案包括隱藏檔案

ls -l 顯示檔案屬性,包括大小,日期,符號連線,是否可讀寫及是否可執行

ls -lh 顯示檔案的大小,以容易理解的格式印出檔案大小 (例如 1K 234M2G)

ls -lt 顯示檔案,按照修改時間排序

2、cd命令

功能:改名目錄

cd dir 切換到當前目錄下的dir目錄

cd / 切換到根目錄

cd .. 切換到到上一級目錄

cd ../.. 切換到上二級目錄

cd ~ 切換到使用者目錄,比如是root使用者,則切換到/root下

3、cp命令

功能:copy檔案

cp source target 將檔案source複製為target

cp /root /source. 將/root下的檔案source複製到當前目錄

cp –av soure_dir target_dir 將整個目錄複製,兩目錄完全一樣

4、rm命令

功能:刪除檔案或目錄

rm file 刪除某一個檔案

rm -f file 刪除時候不進行提示。可以於r引數配合使用

rm -rf dir 刪除當前目錄下叫dir的整個目錄

5、mv命令

功能:將檔案移動走,或者改名,在uinx下面沒有改名的命令,如果想改名,可以使用該命令

mv source target 將檔案source更名為target

6、diff

功能:比較檔案內容

diff dir1 dir2 比較目錄1與目錄2的檔案列表是否相同,但不比較檔案的實際內容,不同則列出

diff file1 file2 比較檔案1與檔案2的內容是否相同,如果是文字格式的檔案,則將不相同的內容顯示,如果是二進位制程式碼則只表示兩個檔案是不同的

comm file1 file2 比較檔案,顯示兩個檔案不相同的內容

7、ln命令

功能:建立連結。windows的快捷方式就是根據連結的原理來做的

ln source_path target_path 硬連線

ln -s source_path target_path 軟連線

二、檢視檔案內容命令

1、cat命令

顯示檔案的內容,和DOS的type相同

cat file 

2、more命令

功能:分頁顯示命令

more file

more命令也可以通過管道符(|)與其他的命令一起使用,例如:

ps ux|more

ls|more

3、tail 命令

功能:顯示檔案的最後幾行

tail -n 100 aaa.txt 顯示檔案aaa.txt檔案的最後100行

4、vi命令

vi file 編輯檔案file

vi 原基本使用及命令:

輸入命令的方式為先按[ESC]鍵,然後輸入:w(寫入檔案),:w!(不詢問方式寫入檔案),:wq儲存並退出,:q退出,q!不儲存退出

5、touch命令

功能:建立一個空檔案

touch aaa.txt  建立一個空檔案,檔名為aaa.txt

三、基本系統命令

1、man命令

功能:檢視某個命令的幫助,如果你不知道某個命令的用法不懂,可以問他,他知道就回告訴你

例如:

man ls 顯示ls命令的幫助內容

2、w命令

功能:顯示登入使用者的詳細資訊

例如:

Sarge:~# w

22:06:51 up 43 min,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT

zhoulj   pts/0    10.140.0.109     21:24    0.00s  0.85s  0.09s sshd: zhoulj [priv]

3、who命令

功能:顯示登入使用者

例如:

Sarge:~# who

zhoulj   pts/0        Mar 13 21:24 (10.140.0.109)

4、last命令

功能:檢視最近那些使用者登入系統

例如:

Sarge:~# last

zhoulj   pts/0        10.140.0.109     Mon Mar 13 21:24   still logged in   

reboot   system boot  2.6.8-2-386      Mon Mar 13 21:23          (00:43)   

zhoulj   pts/0        10.140.0.105     Sun Mar 12 22:51 - down   (00:00)   

zhoulj   pts/0        10.140.0.105     Sun Mar 12 22:51 - 22:51  (00:00)   

root     tty1                          Sun Mar 12 22:50 - down   (00:01)   

root     tty1                          Sun Mar 12 22:46 - 22:48  (00:02)   

root     tty1                          Sun Mar 12 22:43 - 22:46  (00:02)   

reboot   system boot  2.6.8-2-386      Mon Mar 13 06:34          (-7:-41)   

wtmp begins Mon Mar 13 06:34:11 2006

5、date命令

功能:系統日期設定

date 顯示當前日期時間

date -s 20:30:30 設定系統時間為20:30:30

date -s 2002-3-5 設定系統時期為2003-3-5

date -s "060520 06:00:00" 設定系統時期為2006年5月20日6點整。

6、clock命令

功能:時鐘設定

clock –r 對系統Bios中讀取時間引數

clock –w 將系統時間(如由date設定的時間)寫入Bios

7、uname命令

功能:檢視系統版本

uname -R 顯示作業系統核心的version

例如:

Sarge:~# uname -a

Linux Sarge 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux

8、關閉和重新啟動系統命令

reboot   重新啟動計算機

shutdown -r now  重新啟動計算機,停止服務後重新啟動計算機

shutdown -h now  關閉計算機,停止服務後再關閉系統

halt   關閉計算機

一般用shutdown -r now,在重啟系統是,關閉相關服務,shutdown -h now也是如此。

9、su命令

功能:切換使用者

su -  切換到root使用者

su - zhoulj 切換到zhoulj使用者,

注意:- ,他很關鍵,使用-,將使用使用者的環境變數

四、監視系統狀態命令

1、top命令

功能:檢視系統cpu、記憶體等使用情況

2、free命令

功能:檢視記憶體和swap分割槽使用情況

例如:

Sarge:~# free -tm

                total       used       free     shared    buffers     cached

Mem:           187         42        145          0          6         16

-/+ buffers/cache:         19        167

Swap:          243          0        243

Total:         430         42        388

3、uptime

功能:現在的時間 ,系統開機運轉到現在經過的時間,連線的使用者數量,最近一分鐘,五分鐘和十五分鐘的系統負載

例如:

Sarge:~# uptime

21:54:46 up 31 min,  1 user,  load average: 0.00, 0.00, 0.00

4、vmstat命令

功能:監視虛擬記憶體使用情況

例如:

# vmstat

procs                      memory      swap          io     system         cpu

r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa

1  0      0  63704   8100  32272    0    0     8     3  103    17  0  1 98  1

5、ps命令

功能:顯示程序資訊

ps ux 顯示當前使用者的程序

ps uxwww 顯示當前使用者的程序的詳細資訊

ps aux 顯示所有使用者的程序

ps ef 顯示系統所有程序資訊

6、kill命令

功能:幹掉某個程序,程序號可以通過ps命令得到

kill -9 1001 將程序編號為1001的程式幹掉

kill all -9 apache 將所有名字為apapche的程式殺死,kill不是萬能的,對僵死的程式則無效。

五、磁碟操作命令

1、df命令

功能:檢查檔案系統的磁碟空間佔用情況。可以利用該命令來獲取硬碟被佔用了多少空間,目前還剩下多少空間等資訊。

引數 功能

-a 列出全部目錄

-Ta 列出全部目錄,並且顯示檔案型別

-B 顯示塊資訊

-i 以i節點列出全部目錄

-h 按照日常習慣顯示(如:1K、100M、20G)

-x [filesystype] 不顯示[filesystype]

例如:

# df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/sda1     ext3    265M   64M  187M  26% /

tmpfs        tmpfs     94M     0   94M   0% /dev/shm

/dev/sda6     ext3    714M  8.1M  667M   2% /home

/dev/sda8     ext3    956M  215M  691M  24% /usr

/dev/sda7     ext3    714M   57M  619M   9% /var

2、du命令

功能:檢測一個目錄和(遞迴地)所有它的子目錄中的檔案佔用的磁碟空間。

引數  功能

-s [dirName] 顯示目錄佔用總空間

-sk [dirName] 顯示目錄佔用總空間,以k為單位

-sb [dirName] 顯示目錄佔用總空間,以b為單位

-sm [dirName] 顯示目錄佔用總空間,以m為單位

-sc [dirName] 顯示目錄佔用總空間,加上目錄統計

-sh [dirName] 只統計目錄大小

例如:

# du -sh /etc

1.3M     /etc

3、mount命令

功能:使用mount命令就可在Linux中掛載各種檔案系統。

格式:mount -t  裝置名 掛載點

(1)、mount /dev/sda1  /mnt/filetest

mount -t vfat /dev/hda  /mnt/fatfile

mount -t ntfs /dev/hda  /mnt/ntfsfile

mount -t iso9660 /dev/cdrom  /mnt/cdrom

mount -o  裝置名 掛載點

(2)、使用usb裝置

modprobe usb-storage

mkdir /mnt/usb

mount -t auto /dev/sdx1 /mnt/usb

umount /mnt/usb

4、mkswap命令

功能:使用mkswap命令可以建立swap空間,如:

debian:~# mkswap -c /dev/hda4

debian:~# swapon /dev/hda4      #啟用新建立的swap空間,停用可使用swapoff命令

5、fdisk命令

功能:對磁碟進行分割槽

fdisk /dev/xxx 格式化xxx裝置(xxx是指磁碟驅動器的名字,例如hdb,sdc)

fdisk -l 顯示磁碟的分割槽表

6、mkfs命令

功能:格式化檔案系統,可以指定檔案系統的型別,如ext2、ext3、fat、ntfs等

格式1:mkfs.ext3 options /dev/xxx

格式2:mkfs -t ext2 options /dev/xxx

引數   功能

-b  塊大小

-i   節點大寫

-m   預留管理空間大小

例如:

debian:~#mkfs.ext3 /dev/sdb1

7、e2fsck命令

功能:磁碟檢測

e2fsck /dev/hda1 檢查/dev/hda1是否有檔案系統錯誤,提示修復方式

e2fsck -p /dev/hda1 檢查/dev/hda1是否有錯誤,如果有則自動修復

e2fsck -y /dev/hda1 檢查錯誤,所有提問均於yes方式執行

e2fsck -c /dev/hda1 檢查磁碟是否有壞區

8、tune2fs命令

功能:調整ext2/ext3檔案的引數

引數  功能

-l  檢視檔案系統資訊

-c  設定強制自檢的掛載次數

-i  設定強制自檢的間隔時間,單位天

-m  保留塊的百分比

-j  將ext2檔案系統轉換成ext3格式

# tune2fs -l /dev/sda1

9、dd命令

功能:功能:把指定的輸入檔案拷貝到指定的輸出檔案中,並且在拷貝過程中可以進行格式轉換。

跟DOS下的diskcopy命令的作用類似。

dd if=/dev/fd0 of=floppy.img 將軟盤的內容複製成一個映象

dd if=floppy.img of=/dev/fd0 將一個映象的內容複製到軟盤,做驅動盤的時候經常用。

六、使用者和組相關命令

1、groupadd命令

功能:新增組

groupadd test1  新增test1組

groupadd -g 1111 test2  新增test2組,組id為1111

2、useradd命令

功能:新增使用者

useradd user1  新增使用者user1,home為/home/user1,組為user1

useradd -g test1 -m -d /home/test1 test1 新增使用者test1,home為/home/test1,組為test1

user list 顯示已登陸的使用者列表

3、passwd命令

功能:更改使用者密碼

passwd user1 修改使用者user1的密碼

passwd -d root 將root使用者的密碼刪除

4、userdel命令

功能:刪除使用者

userdel user1 刪除user1使用者

5、chown命令

功能:改變檔案或目錄的所有者

chown user1 /dir 將/dir目錄設定為user1所有

chown -R user1.user1 /dir 將/dir目錄下所有檔案和目錄,設定為user1所有,組為user1。-R遞迴到下面的每個檔案和目錄

6、chgrp命令

功能:改變檔案或目錄的所有組

chgrp user1 /dir 將/dir目錄設定為user1所有

7、chmod命令

功能:改變使用者的許可權

chmod a+x file 將file檔案設定為可執行,指令碼類檔案一定要這樣設定一個,否則得用bash file才能執行

chmod 666 file 將檔案file設定為可讀寫

chmod 750 file 將檔案file設定為,所有者為完全許可權,同組可以讀和執行,其他無許可權

8、id命令

功能:顯示使用者的資訊,包括uid、gid等

# id zhoulj

uid=500(zhoulj) gid=500(zhoulj) groups=500(zhoulj)

9、finger命令

功能:顯示用的資訊

注意:debian下沒有該命令。

# finger zhoulj

Login: zhoulj                           Name:

Directory: /home/zhoulj                 Shell: /bin/bash

On since Sun May 21 07:59 (CST) on pts/0 from 192.168.1.4

No mail.

No Plan.

七、壓縮命令

1、gzip格式命令

功能:壓縮檔案,gz格式的

注意:生成的檔案會把原始檔覆蓋

gzip -v  壓縮檔案,並且顯示進度

-d  解壓縮

gnuzip  -f  解壓縮

例如:

# gzip a.sh

#ll

-rwxr-xr-x    1 root     root           71 12月 18 21:08 a.sh.gz

# gzip -d a.sh.gz

#ll

-rwxr-xr-x    1 root     root           48 12月 18 21:08 a.sh

2、zip格式命令

功能:壓縮和解壓縮zip命令

zip   

unzip   

例如:

# zip a.sh.zip a.sh

  adding: a.sh (stored 0%)

# ll

-rw-r--r--    1 root     root          188  5月 21 10:37 a.sh.zip

# unzip a.sh.zip

Archive:  a.sh.zip

replace a.sh? [y]es, [n]o, [A]ll, [N]one, [r]ename: r

new name: a1.sh

extracting: a1.sh                  

# ll

-rwxr-xr-x    1 root     root           48 12月 18 21:08 a1.sh

3、bzip2根式命令

功能:bzip2格式壓縮命令,

注意:生成的檔案會把原始檔覆蓋

bzip2   

bunzip2

例如:

# bzip2 a.sh

# ll

-rwxr-xr-x    1 root     root           85 12月 18 21:08 a.sh.bz2

# bunzip2 a.sh.bz2

# ll

-rwxr-xr-x    1 root     root           48 12月 18 21:08 a.sh

4、tar命令

功能:歸檔、壓縮等,比較重要,會經常使用。

-cvf    壓縮檔案或目錄

-xvf     解壓縮檔案或目錄

-zcvf    壓縮檔案或,格式tar.gz

-zxvf    解壓縮檔案或,格式tar.gz

-zcvf     壓縮檔案或,格式tgz

-zxvf     解壓縮檔案或,格式tgz

舉例:

# tar cvf abc.tar *.sh

# tar xvf abc.tar

# tar czvf abc.tar.gz *.sh

# ll

-rw-r--r--    1 root     root        20480  5月 21 10:50 abc.tar

-rw-r--r--    1 root     root         1223  5月 21 10:53 abc.tar.gz

# tar xzvf abc.tar.gz

八、網路相關命令

1、ifconfig命令

功能:顯示修改網絡卡的資訊

ifconfig  顯示網路資訊

ifconfig eth0 顯示eth0網路資訊

修改網路資訊:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 設定網絡卡1的地址192.168.1.1,掩碼為255.255.255.0

ifconfig eth0:1 192.168.1.2    捆綁網絡卡1的第二個地址為192.168.1.2

ifconfig eth0:x 192.168.1.n    捆綁網絡卡1的第n個地址為192.168.1.n

例如:

# ifconfig eth0:1 192.168.1.11

# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:06:9C:24  

          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:4220 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3586 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:342493 (334.4 Kb)  TX bytes:469020 (458.0 Kb)

          Interrupt:9 Base address:0x1400

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:06:9C:24  

          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          Interrupt:9 Base address:0x1400

2、route命令

功能:顯示當前路由設定情況

route 顯示當前路由設定情況,比較慢一般不用。

route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254  新增靜態路由

route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254  新增靜態路由

route add default gw 192.168.1.1 metric1    設定192.168.1.1為預設的路由

route del default       將預設的路由刪除

舉例:

# route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254

# netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

10.0.0.0        192.168.1.254   255.255.0.0     UG        0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 eth0

# route del -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.1.254   

# netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 eth0

3、netstat命令

功能:顯示網路狀態

netstat -an  檢視網路埠資訊

netstat -nr 檢視路由表資訊,比route快多了,

4、啟動網路的命令

redhat族的命令:

/etc/init.d/network

debian命令:

/etc/init.d/networking

例如:

/etc/init.d/network stop 停止網路,

/etc/init.d/network start 啟動網路,

5、手工修改網路配置

(1)、debian系統

配置檔案位置為:/etc/network/interfaces

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto eth0 eth1

iface eth0 inet static

        address 10.4.5.6

        netmask 255.255.255.0

        network 10.4.5.0

        broadcast 10.4.5.255

iface eth1 inet static

        address 219.25.5.60

        netmask 255.255.255.192

        network 219.25.5.0

        broadcast 219.25.5.63

        gateway 219.25.5.30

修改後儲存配置後,執行

/etc/init.d/networking restart

網路配置就改變了

(2)、redhat系統

配置檔案位置為:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.1.255

IPADDR=192.168.1.5

NETMASK=255.255.255.0

NETWORK=192.168.1.0

GATEWAY=192.168.1.254

ONBOOT=yes

TYPE=Ethernet

修改後儲存配置後,執行

/etc/init.d/network restart

或者

service network restart

網路配置就改變了。

預設DNS的檔案的位置為:/etc/resolv.conf  

#cat /etc/resolv.conf

search test.com.cn

nameserver 192.168.1.11

6、網路排錯

(1)、ping命令

功能:不說了,不知道就用幹這行了。

ping

(2)、traceroute命令

功能:路由跟蹤

traceroute

traceroute 207.68.173.7

(3)、nslookup命令

功能:域名解析排錯

例如:

$ nslookup

Note:  nslookup is deprecated and may be removed from future