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? ?? ?? ?? ???LOGIN@? ?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 releases.
Consider using the `dig' or `host' programs instead.??Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
>
Server:? ?? ?? ?192.168.1.11
Address:? ?? ???192.168.1.11#53
Non-authoritative answer:
Name:? ?
Address: 202.118.66.66
> server 202.118.66.6
Default server: 202.118.66.6
Address: 202.118.66.6#53
>
Server:? ?? ?? ?202.118.66.6
Address:? ?? ???202.118.66.6#53
Non-authoritative answer:? ?canonical name =
.
Name:? ?
Address: 202.108.22.5
九、其他命令
1、ssh命令
功能:遠程登陸到其他UNIX主機
ssh -l user1 192.168.1.2 使用用戶名user1登陸到192.168.1.2
ssh
? ?使用用戶名user1登陸到192.168.1.2
2、scp命令
功能:安全copy
例如:
scp abc.tar.gz
:~ 將本地的abc.tar.gz 復制到 192.168.1.5的user1用戶的根(/home/user1)下。
3、telnet命令
功能:登陸到遠程主機
例如:
telnet 192.168.1.5