Linux系統常用基本命令總結
目錄
(1)ifconfig命令示例一——顯示介面(網絡卡)配置引數
(2)ifconfig命令示例二——設定介面(網絡卡)配置引數
# rpm -ivh --nodeps php-4.3.9-3.1-i386.rpm
yum安裝 yum install 軟體名字 yum install yum-fastestmirror yum remove
Linux基本命令
Linux的簡介
Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多使用者、多工、支援多執行緒和多CPU的作業系統。它能執行主要的UNIX工具軟體、應用程式和網路協議。它支援32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統。
Linux作業系統誕生於1991 年10 月5 日(這是第一次正式向外公佈時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux核心。Linux可安裝在各種計算機硬體裝置中,比如手機、平板電腦、路由器、視訊遊戲控制檯、臺式計算機、大型機和超級計算機。
Linux的廠商
Linux的目錄結構
基於虛擬機器的環境搭建
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #網絡卡裝置名稱
ONBOOT=yes #啟動時是否啟用 yes|no
BOOTPROTO=static #協議型別 dhcp bootp none
IPADDR=192.168.134.136 #網路IP地址
NETMASK=255.255.255.0 #網路子網地址
GATEWAY= #閘道器地址
BROADCAST=192.168.134.255 #廣播地址
TYPE=Ethernet #網絡卡型別為乙太網
關閉防火牆
service iptables stop
chkconfig iptables off
常用命令與示例
說明:
-
Linux 命令及其引數是嚴格區分大小寫
-
Linux檔名嚴格區分大小寫
一、檔案基本操作命令
1. ls命令
-
ls命令的功能是顯示指定目錄下的檔案目錄清單相當於dos下的dir命令,而且其引數更加豐富多樣。
(1)ls示例一——不帶引數
[[email protected] ~]# ls
anaconda-ks.cfg install.log install.log.syslog
功能:顯示指定目錄中的檔案清單,如果沒有指定任何目錄,則預設為當前目錄。
2)ls示例二——顯示隱含檔案
[[email protected] ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc install.log .tcshrc
.. .bash_history .bash_profile .cshrc install.log.syslog
引數-a的功能:顯示隱含檔案。
說明:若檔名以“.”開頭,則認為是隱含的,進而普通的ls命令不顯示以“.”開頭的檔案;所以要完全顯示某目錄下的檔案清單,必須加上-a引數才行。
(3)ls示例三——長格式輸出
[[email protected] ~]# ls -l
總用量 24
-rw-------. 1 root root 1116 11月 13 18:15 anaconda-ks.cfg
-rw-r--r--. 1 root root 12526 11月 13 18:15 install.log
-rw-r--r--. 1 root root 3482 11月 13 18:14 install.log.syslog
引數-l 的功能是:以長格式列表輸出指定目錄中的檔案清單
以上述輸出中檔案install.log為例
解釋長格式輸出的內容如下:
檔案許可權 連線數 屬主 屬組 大小 日期 時間 檔名
-rw-r--r--. 1 root root 12526 11月13 18:15 install.log
Linux檔案有三種典型的許可權,即r讀許可權、w寫許可權和x執行許可權。在長格式輸出中在檔案型別的後面有9列許可權位,實際上這是針對不同使用者而設定的,如下所示。
屬主的許可權 屬組的許可權 其他使用者的許可權
rwx rwx r-x
(4)ls示例四——遞迴顯示
[[email protected] ~]# ls -R
.:
anaconda-ks.cfg install.log install.log.syslog
引數-R 的功能是:遞迴顯示指定目錄下的檔案清單,
即會顯示指定目錄分支內各子目錄中的檔案清單。
2. pwd命令
示例:pwd
[[email protected] ~]# pwd
/root
功能:顯示當前目錄。
3. mkdir命令
(1)mkdir示例一
[[email protected] ~]# mkdir abc
功能:在當前目錄下建立目錄abc
(2)mkdir示例二——建立多級目錄
[[email protected] ~]# mkdir -p a/b/c
[[email protected] ~]# ls -R a
a:
b
a/b:
c
a/b/c:功能:引數-p功能是如果要建立的目錄的父目錄不存在,則先建立其父目錄,再建立該目錄; 如果指定的目錄存在,則不影響原目錄,也不會報錯。在本示例中會連續建立a目錄、a/b目錄、a/b/c目錄。
4. cd命令
(1)cd示例一——切換工作目錄
[[email protected] ~]# cd /var
[[email protected] var]# pwd
/var
功能:將當前的工作目錄切換為/var
(2)cd示例二——切換到當前使用者的主目錄
[[email protected] var]# cd
[[email protected] ~]# pwd
/root
功能:不帶引數的cd命令直接將當前的工作目錄切換為該使用者的主目錄。主目錄又稱為家目錄,在RHEL中是在建立使用者時,自動在/home下為使用者建立一個用其使用者名稱同名的目錄,並將該目錄的所有權劃歸給該使用者所有。
注意:字元“~”代表(當前)使用者的主目錄。
5. touch命令
(1)touch示例一——建立空檔案
[[email protected] ~]# touch myfile
[[email protected] ~]# ls -l myfile
-rw-r--r--. 1 root root 0 11月 13 23:48 myfile
功能:如果myfile不存在,則建立一個大小為0位元組名為myfile的空檔案。
(2)touch示例二——改變檔案的最後修改時間
再執行一次touch myfile
[[email protected] ~]# touch myfile
[[email protected] ~]# ls -l myfile
-rw-r--r--. 1 root root 0 11月 13 23:49 myfile
功能:如果myfile已存在,則將改變myfile的最後修改時間。
6. cp命令
(1)cp示例一——複製檔案
[[email protected] ~]# cp /etc/* abc
功能:將/etc/目錄下的檔案複製到目錄abc中。“*”是萬用字元,可以匹配多個字元;“?”只能匹配一個字元。
(2)cp示例二——複製目錄
[[email protected] ~]# cp -R /etc abc
功能:增加了引數-R,就能將目錄/etc下面的所有子目錄和檔案都複製到目錄abc中。
7. mv命令
(1)mv示例一——將檔案移動到目錄中
[[email protected] ~]# mv myfile mydir1
功能:如果mydir1存在且是個目錄,則將檔案myfile移動到目錄mydir1中。
(2)mv示例二——檔案改名
[[email protected] ~]# mv myfile myfile2
功能:將檔案(或目錄)myfile改名為myfile2。
8. rmdir命令
[[email protected] ~]# rmdir mydir1
功能:刪除指定的空目錄。
9. rm命令
(1)rm示例一——刪除檔案
[[email protected] ~]# rm php.ini
功能:刪除指定的檔案 php.ini。
(2)rm示例二——刪除目錄
[[email protected] ~]# rm -rf abc
功能:引數-r是遞迴的意思,即可以刪除非空目錄;引數-f是強制的意思。
10. cat命令
(1)cat示例一——顯示檔案內容
[[email protected] ~]# cat myfile
hello,world
功能:顯示指定檔案myfile的內容。
(2)cat示例二——建立檔案
[[email protected] ~]# cat > myfile2
Welcome to Linux World!
按ctrl+d結束輸入
功能:利用輸出重定向符“>”來建立簡短的文字檔案myfile2。
11 more和 less命令
# more /etc/httpd/conf/httpd.conf
功能:分屏顯示指定檔案httpd.conf的內容,非常適合顯示超過一屏的文字檔案。每按一下空格鍵,向後翻一屏;每按一次回車鍵,向後翻一行。
說明:less與more功能很相似,只不過less功能更強大,支援PageUp鍵向前翻屏,及PageDown向後翻屏。
12. head命令
(1)head示例一——顯示檔案頭10行內容
# head /etc/httpd/conf/httpd.conf
功能:預設顯示指定檔案的頭10行的內容。
(2)head示例二——顯示檔案頭n行內容
# head -n 19 /etc/httpd/conf/httpd.conf
功能:引數-n設定顯示指定行數,本例會顯示檔案的頭19行的內容。
13. tail命令
(1)tail示例一——顯示檔案最後10行內容
# tail /etc/httpd/conf/httpd.conf
功能:預設顯示指定檔案的末尾10行的內容。
(2)tail示例二——顯示檔案最後n行內容
# tail -n 12 /etc/httpd/conf/httpd.conf
功能:引數-n設定顯示指定行數;
本例會顯示檔案的末尾12行的內容。
二、使用者、組管理命令
-
Linux採用組來組織和管理使用者
-
在Linux中每個使用者有唯一的使用者識別符號UID,該UID是一個無符號整數。
-
同時每個使用者也必須至少屬於一個組,也有組識別符號GID。
-
其中UID與GID獨立編號。
1. groupadd命令
(1)groupadd示例一——建立組賬號
[[email protected] ~]# groupadd mygroup1
功能:建立一個新組mygroup1,其GID號為已存在GID號的下一個順序編號。
說明:建立一個組的同時會在/etc/group檔案中為該組增加相應的一行,用來記錄該組的名稱、GID號及成員等資訊。
(2)groupadd示例二——建立組賬號並設定其GID號
# groupadd -g 5000 mygroup2
功能:建立一個新組mygroup2,並指定其GID號為5000,其中-g用來設定使用者的主要組,每個使用者都有一個主要組。
2. useradd命令
(1)useradd示例一——建立使用者賬號
[[email protected] ~]# useradd user1
功能:建立一個使用者user1,同時在/etc/passwd檔案和/etc/shadow檔案增加一行,並自動為使用者建立相應的主目錄:/home/user1。
說明:/etc/passwd檔案記錄了系統中每個使用者的使用者名稱、UID號、GID號、主目錄、shell等資訊。
注意:使用者的口令原來也存放在此檔案中,現在為了保證安全採用了影子口令檔案/etc/shadow來儲存每個使用者的口令。
(2)useradd示例二——建立使用者賬號並設定相應屬性值
# useradd -u 600 -g mygroup1 -G mygroup2 -d /home/student1 s1
功能:建立使用者s1,其中引數
-u指定UID號為600;
-g指定使用者的主要組為mygroup1;
-G指定使用者的附加組為mygroup2,每個使用者可以有多個附加組;
-d 指定使用者的主目錄為/home/student1。
3. userdel命令
(1)userdel示例一——刪除使用者
[[email protected] ~]# userdel user1
功能:刪除指定的使用者user1。
(2)userdel示例二——刪除使用者的同時刪除其主目錄
[[email protected] ~]# userdel -r user2
功能:刪除指定的使用者user2,同時刪除其主目錄。
4. groupdel命令
[[email protected] ~]# groupdel mygroup2
功能:刪除指定的組
注意:當某個組是某現有使用者的主要組時,則不能被刪除。
5. passwd命令
(1)passwd示例一——改變口令
[[email protected] ~]# passwd
Changing password for user user1.
Changing password for user1
(current) Unix password:
New Unix password:
BAD PASSWORD: it is too simplistic/systematic
New Unix password:
BAD PASSWORD: is too similar to the old one
New Unix password:
Retype new Unix password:
passwd: all authentication tokens updated successfully.
功能:普通使用者只可以修改自己的口令
(2)passwd示例二——禁止使用者登入
[[email protected] ~]# passwd -l user1
Locking password for user user1.
passwd: Success
功能:引數-l 可以給指定的使用者user1加鎖,即禁止該使用者登入。
(3)passwd示例三——恢復使用者登入
[[email protected] ~]# passwd –u user1
Unlocking password for user user1.
passwd: Success.
功能:引數-u 可以給指定的使用者user1解鎖,即恢復該使用者登入。
(4)passwd示例四——刪除使用者口令
[[email protected] ~]# passwd -d user1
Removing password for user user1.
passwd: Success
功能:引數-d 可以刪除指定的使用者user1口令,即以user1登入時無需口令。
6. usermod命令
# usermod -u 601 -g 501 s1
功能:將(已存在的)使用者s1的UID號修改為601、主要組修改為501。
7. id命令
[[email protected] ~]# id user1
uid=501(user1) gid=501(user1) groups=501(user1)
功能:顯示使用者的UID、GID及所屬的組資訊。
三、 檔案屬性操作命令
1. chown命令
(1)chown示例一——改變檔案的屬主
[[email protected] ~]# chown user1 hello.txt
功能:將指定檔案hello.txt的屬主(所有者)改為user1。
(2)chown示例二——遞迴改變檔案的屬主
# chown -R user1 mydir
功能:引數-R,表示遞迴,即可以深入到指定目錄中的每一層,將所有子目錄和檔案的屬主(所有者)改為指定的使用者;本例中會將mydir目錄中所有子目錄和檔案的屬主設定為user1。
2. chgrp命令
(1)chgrp示例一——改變檔案的屬組
# chgrp mygroup1 hello.txt
功能:將指定檔案hello.txt的屬組改為mygroup1。
(2)chgrp示例二——遞迴改變檔案的屬組
# chgrp -R mygroup1 mydir
功能:引數-R,表示遞迴,即可以深入到指定目錄中的每一層,將所有子目錄和檔案的屬組改為指定的組;本例中會將mydir目錄中所有子目錄和檔案的屬組設定為mygroup1。
3. chmod命令
(1)chmod示例一——字母方式
圖中字母u針對屬主、g針對屬組、o針對其他使用者、a針對所有使用者;
=表示賦予(設定)指定許可權,要注意它會覆蓋原許可權,+表示在原有許可權的基礎上增加指定許可權,-表示在原有許可權的基礎上去掉指定許可權;
r、w、x三種許可權,既可以單獨使用也可以組合使用
# chmod u+x host.conf
功能:為檔案host.conf的屬主增加執行許可權。
# chmod g-w,o=x host.conf
功能:將檔案host.conf的屬組去掉寫許可權,同時將其他使用者設定為只有執行許可權,而檔案屬主的許可權不變。
(2)chmod示例二——數字方式
chmod的數字使用方式,使用起來也是很方便的,關鍵是一個數制轉換的問題。
這種方式是先將每個許可權位化成二進位制數,其中如果某許可權位是“-”則用0來表示,否則用1來表示;接著,將這9列許可權分為三組(每三位一組),再將每組化成一個八進位制數。
例如,某檔案有如下許可權rwxrw-r--,則轉換為二進位制數為111110100,再化為八進位制數則為764;反之,當看到八進位制數764時也應該很快轉化為相應許可權。
# chmod 764 host.conf
功能:將檔案host.conf的許可權設定為:
屬主擁有全部許可權;
屬組擁有讀寫許可權;
其他使用者擁有隻讀許可權。
四、i節點及其相關命令
(1)ln命令示例一——建立硬連線
[[email protected] ~]# ln myfile myfile.hlink
功能:為檔案myfile建立名為myfile.hlink的硬連線。
[[email protected] ~]# ls -il
180590 -rw-rw-r-- 2 user1 user1 12 Aug 17 12:14 myfile
180590 -rw-rw-r-- 2 user1 user1 12 Aug 17 12:14 myfile.hlink
說明:通過ls –il 命令可以看出myfile與myfile.hlink的i節點號(最左面的數)是一樣的,即硬連線與原檔案共用同一個i節點,請注意兩個檔案的連線數(位於長格式列表中許可權位與屬主之間的數)都增加了1變成2了。
(2)ln命令示例二——建立符號連線
[[email protected] ~]# ln -s myfile myfile.slink
功能:為檔案myfile建立名為myfile.slink的符號連線。
[[email protected] ~]# ls -li
180590 -rw-rw-r-- 2 user1 user1 12 Aug 17 12:14 myfile
180590 -rw-rw-r-- 2 user1 user1 12 Aug 17 12:14 myfile.hlink
180606 lrwxrwxrwx 1 user1 user1 6 Aug 21 06:21 myfile.slink -> myfile
說明:硬連結若一個inode號對應多個檔名時,則稱之為硬連結。硬連結具有以下幾個特性:檔案擁有相同的inode號和資料塊;只能對已存在的檔案建立硬連結;不能跨越檔案系統建立硬連結;不能堆目錄建立硬連結;刪除一個硬連結檔案不影響其他相同inode號的檔案。軟連結在Linux中,若檔案的資料塊中存放的內容是另一檔案的路徑名,則稱之為軟連線。軟連結類似於Windows系統下的快捷方式。軟連線有自己的inode號和使用者資料塊。為此,軟連結避免了硬連結的諸多限制,軟連結主要具有以下特點:軟連結有自己的檔案屬性及許可權等;可以對不存在的檔案或目錄建立軟連結;軟連結可以跨越檔案系統建立;刪除軟連結時不會影響被指向的檔案;若原檔案被刪除時,相關軟連結檔案被稱為死連結(當該路路勁的檔案重新建立時,死連結可以恢復正常)。
五、 查詢命令
1. which命令
[[email protected] ~]# which cp
/bin/cp
[[email protected] ~]# which updatedb
/usr/bin/updatedb
功能:顯示命令的絕對路徑。
注意:該命令只能在命令搜尋路徑指定的目錄中去查詢命令或程式。
2. whereis命令
[[email protected] ~]# whereis ln
ln: /bin/ln /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz
功能:查詢指定命令所在目錄以及幫助文件所在目錄。
3. find命令
(1)find示例一——按檔名查詢
# find / -name "dhcpd*"
功能:引數-name指明按檔名進行查詢,即從/目錄開始查詢以dhcpd開頭的所有檔案。
(2)find示例二——按檔案大小查詢
[[email protected] ~]# find /etc -size 8
功能:從/etc下開始查詢大小為8塊的檔案,此處預設512位元組為1塊。若認為塊大小為1k,則應寫為8k。
其它可以使用的單位有c(位元組)、w(雙位元組)、M(兆位元組)和G(吉位元組)。
(3)find示例三——按檔案型別查詢
# find /var -type d -print
功能:從/var目錄下開始查詢型別為目錄的檔案,其中引數-print是顯示到螢幕上的意思,經常省略。
(4)find示例四——按檔案的修改時間查詢
[[email protected] ~]# find . -cmin -5
功能:從當前目錄下查詢5分鐘之內修改過的檔案。
如果把“-5”改為 “+5”,則表示查詢5分鐘以前修改過的檔案。不帶“+”或“-”,則認為整5分鐘。
如果把時間單位改為天,則使用引數“-ctime”,請看示例:
[[email protected] ~]# find . -ctime -5
(5)find示例五——按檔案的許可權查詢
[[email protected] ~]#find mytmp -perm 755
功能:查詢mytmp目錄下的許可權