1. 程式人生 > >Linux系統常用基本命令總結

Linux系統常用基本命令總結

目錄

Linux基本命令

Linux的簡介

Linux的廠商

Linux的目錄結構

基於虛擬機器的環境搭建

常用命令與示例

一、檔案基本操作命令

1. ls命令

2.  pwd命令

3.  mkdir命令

4. cd命令

5. touch命令

6. cp命令

7. mv命令

8.  rmdir命令

9.  rm命令

10.  cat命令

11  more和 less命令

12.  head命令

13.  tail命令

二、使用者、組管理命令

1. groupadd命令

2. useradd命令

3. userdel命令

4. groupdel命令

5. passwd命令

6. usermod命令

7. id命令

三、 檔案屬性操作命令

1. chown命令

2. chgrp命令

 3. chmod命令

四、i節點及其相關命令

(1)ln命令示例一——建立硬連線

(2)ln命令示例二——建立符號連線

五、 查詢命令

1. which命令

2. whereis命令

3. find命令

六、 檔案內容操作命令

1. grep命令

2. wc命令

3. sort命令

4. diff 命令

5. cut 命令

七、 壓縮與打包命令

1. tar命令

八、網絡卡配置命令

(1)ifconfig命令示例一——顯示介面(網絡卡)配置引數

(2)ifconfig命令示例二——設定介面(網絡卡)配置引數

(3)ifconfig命令示例三——禁用某塊網絡卡

(4)ifconfig命令示例四——啟用某塊網絡卡

九、rpm命令

(1)rpm命令示例一——查詢系統中安裝的軟體包

(2)rpm命令示例二——查詢軟體包中檔案清單

(3)rpm命令示例三——解除安裝指定的軟體包

(4)rpm命令示例四——安裝軟體包

(5)rpm命令示例五——強制安裝軟體包

(6)rpm命令示例五——忽略依賴關係安裝軟體包

# rpm  -ivh  --nodeps  php-4.3.9-3.1-i386.rpm

(7)解除安裝

十、 其他安裝方式

yum安裝       yum install 軟體名字       yum install yum-fastestmirror       yum remove

原始碼安裝

十一、 檢視程序命令

1. ps命令

2. pstree命令

3. top命令

4. kill命令


 

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命令,而且其引數更加豐富多樣。

1ls示例一——不帶引數

[[email protected] ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog

功能:顯示指定目錄中的檔案清單,如果沒有指定任何目錄,則預設為當前目錄。

2ls示例二——顯示隱含檔案

[[email protected] ~]# ls -a

.   anaconda-ks.cfg  .bash_logout   .bashrc  install.log         .tcshrc

..  .bash_history    .bash_profile  .cshrc   install.log.syslog

引數-a的功能:顯示隱含檔案。

說明:若檔名以“.”開頭,則認為是隱含的,進而普通的ls命令不顯示以“.”開頭的檔案;所以要完全顯示某目錄下的檔案清單,必須加上-a引數才行。

3ls示例三——長格式輸出

[[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  1113 18:15 install.log

Linux檔案有三種典型的許可權,即r讀許可權、w寫許可權和x執行許可權。在長格式輸出中在檔案型別的後面有9列許可權位,實際上這是針對不同使用者而設定的,如下所示。

屬主的許可權  屬組的許可權  其他使用者的許可權

     rwx                 rwx                  r-x

4ls示例四——遞迴顯示

[[email protected] ~]# ls -R

.:

anaconda-ks.cfg  install.log  install.log.syslog

引數-R 的功能是:遞迴顯示指定目錄下的檔案清單,

即會顯示指定目錄分支內各子目錄中的檔案清單。

2.  pwd命令

示例:pwd

[[email protected] ~]# pwd

/root

功能:顯示當前目錄

3.  mkdir命令

1mkdir示例一

[[email protected] ~]# mkdir abc

功能:在當前目錄下建立目錄abc

2mkdir示例二——建立多級目錄

[[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命令

1touch示例一——建立空檔案

[[email protected] ~]# touch myfile

[[email protected] ~]# ls -l myfile

-rw-r--r--. 1 root root 0 11月 13 23:48 myfile

功能:如果myfile不存在,則建立一個大小為0位元組名為myfile的空檔案。

2touch示例二——改變檔案的最後修改時間

再執行一次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命令

1cp示例一——複製檔案

[[email protected] ~]# cp /etc/*   abc

功能:將/etc/目錄下的檔案複製到目錄abc中。*是萬用字元,可以匹配多個字元;“?”只能匹配一個字元。

2cp示例二——複製目錄

[[email protected] ~]# cp  -R   /etc  abc

功能:增加了引數-,就能將目錄/etc下面的所有子目錄和檔案都複製到目錄abc中。

7. mv命令

1mv示例一——將檔案移動到目錄中

[[email protected] ~]# mv  myfile  mydir1

功能:如果mydir1存在且是個目錄,則將檔案myfile移動到目錄mydir1中。

2mv示例二——檔案改名

[[email protected] ~]# mv myfile myfile2

功能:將檔案(或目錄)myfile改名myfile2

8.  rmdir命令

[[email protected] ~]# rmdir   mydir1

功能:刪除指定的空目錄

9.  rm命令

1rm示例一——刪除檔案

[[email protected] ~]# rm  php.ini

功能:刪除指定的檔案 php.ini。

2rm示例二——刪除目錄

[[email protected] ~]# rm  -rf  abc

功能:引數-r遞迴的意思,即可以刪除非空目錄;引數-f強制的意思。

10.  cat命令

1cat示例一——顯示檔案內容

[[email protected] ~]# cat myfile

hello,world

功能:指定檔案myfile的內容

2cat示例二——建立檔案

[[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命令

1head示例一——顯示檔案頭10行內容

# head  /etc/httpd/conf/httpd.conf

功能:預設顯示指定檔案的10的內容。

2head示例二——顯示檔案頭n行內容

# head -n 19 /etc/httpd/conf/httpd.conf

功能:引數-n設定顯示指定行數,本例會顯示檔案的頭19行的內容。

13.  tail命令

1tail示例一——顯示檔案最後10行內容

# tail  /etc/httpd/conf/httpd.conf

功能:預設顯示指定檔案的末尾10的內容。

 2tail示例二——顯示檔案最後n行內容

# tail  -n 12  /etc/httpd/conf/httpd.conf

功能:引數-n設定顯示指定行數;

          本例會顯示檔案的末尾12行的內容。

二、使用者、組管理命令

  • Linux採用來組織和管理使用者

  • 在Linux中每個使用者有唯一的使用者識別符號UID,該UID是一個無符號整數。

  • 同時每個使用者也必須至少屬於一個組,也有組識別符號GID

  • 其中UID與GID獨立編號。

 

1. groupadd命令

1groupadd示例一——建立組賬號

[[email protected] ~]# groupadd  mygroup1

功能:建立一個新組mygroup1,其GID號為已存在GID號的下一個順序編號。

說明:建立一個組的同時會在/etc/group檔案中為該組增加相應的一行,用來記錄該組的名稱、GID號及成員等資訊

2groupadd示例二——建立組賬號並設定其GID

# groupadd  -g 5000  mygroup2

功能:建立一個新組mygroup2,並指定其GID號為5000,其中-g用來設定使用者的主要組,每個使用者都有一個主要組。

2. useradd命令

1useradd示例一——建立使用者賬號

[[email protected] ~]# useradd  user1

功能:建立一個使用者user1,同時在/etc/passwd檔案和/etc/shadow檔案增加一行,並自動為使用者建立相應的主目錄:/home/user1。

說明:/etc/passwd檔案記錄了系統中每個使用者的使用者名稱、UID號、GID號、主目錄、shell等資訊

注意:使用者的口令原來也存放在此檔案中,現在為了保證安全採用了影子口令檔案/etc/shadow來儲存每個使用者的口令

2useradd示例二——建立使用者賬號並設定相應屬性值

# useradd  -u 600  -g mygroup1  -G mygroup2  -d  /home/student1  s1

功能:建立使用者s1,其中引數

-u指定UID號為600;

-g指定使用者的主要組為mygroup1;

-G指定使用者的附加組為mygroup2,每個使用者可以有多個附加組;

-d 指定使用者的主目錄為/home/student1。

3. userdel命令

1userdel示例一——刪除使用者

[[email protected] ~]# userdel  user1

功能:刪除指定的使用者user1。

2userdel示例二——刪除使用者的同時刪除其主目錄

[[email protected] ~]# userdel  -r  user2

功能:刪除指定的使用者user2,同時刪除其主目錄

4. groupdel命令

[[email protected] ~]# groupdel mygroup2

功能:刪除指定的組

注意:當某個組是某現有使用者的主要組時,則不能被刪除。

 

5. passwd命令

1passwd示例一——改變口令

[[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.

功能:普通使用者只可以修改自己的口令

2passwd示例二——禁止使用者登入 

[[email protected] ~]# passwd  -l  user1

Locking password for user user1.

passwd: Success

功能:引數-l 可以給指定的使用者user1加鎖,即禁止該使用者登入。

3passwd示例三——恢復使用者登入

[[email protected] ~]# passwd  –u  user1

Unlocking password for user user1.

passwd: Success.

功能:引數-u 可以給指定的使用者user1解鎖,即恢復該使用者登入。

4passwd示例四——刪除使用者口令

 [[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)

功能:顯示使用者的UIDGID及所屬的組資訊

 

三、 檔案屬性操作命令

 

1. chown命令

1chown示例一——改變檔案的屬主

[[email protected] ~]# chown  user1  hello.txt

功能:將指定檔案hello.txt的屬主(所有者)改為user1。

2chown示例二——遞迴改變檔案的屬主

# chown  -R  user1  mydir

功能:引數-R,表示遞迴即可以深入到指定目錄中的每一層,將所有子目錄和檔案的屬主(所有者)改為指定的使用者;本例中會mydir目錄中所有子目錄和檔案的屬主設定為user1

2. chgrp命令

1chgrp示例一——改變檔案的屬組

# chgrp  mygroup1  hello.txt

功能:將指定檔案hello.txt的屬組改為mygroup1。

2chgrp示例二——遞迴改變檔案的屬組

# chgrp  -R  mygroup1  mydir

功能:引數-R,表示遞迴,即可以深入到指定目錄中的每一層,將所有子目錄和檔案的屬組改為指定的組;本例中會將mydir目錄中所有子目錄和檔案的屬組設定為mygroup1。

 3. chmod命令

1chmod示例一——字母方式

   圖中字母u針對屬主、g針對屬組、o針對其他使用者、a針對所有使用者;

    =表示賦予(設定)指定許可權,要注意它會覆蓋原許可權,+表示在原有許可權的基礎上增加指定許可權,-表示在原有許可權的基礎上去掉指定許可權;

    rwx三種許可權,既可以單獨使用也可以組合使用

# chmod  u+x  host.conf

功能:為檔案host.conf的屬主增加執行許可權。

# chmod  g-w,o=x  host.conf

功能:將檔案host.conf的屬組去掉寫許可權,同時將其他使用者設定為只有執行許可權,而檔案屬主的許可權不變。

2chmod示例二——數字方式

chmod的數字使用方式,使用起來也是很方便的,關鍵是一個數制轉換的問題。

這種方式是先將每個許可權位化成二進位制數,其中如果某許可權位是“-”則用0來表示,否則用1來表示;接著,將這9列許可權分為三組(每三位一組),再將每組化成一個八進位制數。

例如,某檔案有如下許可權rwxrw-r--,則轉換為二進位制數為111110100,再化為八進位制數則為764;反之,當看到八進位制數764時也應該很快轉化為相應許可權。

# chmod  764  host.conf

功能:將檔案host.conf的許可權設定為:

屬主擁有全部許可權;

屬組擁有讀寫許可權;

其他使用者擁有隻讀許可權。

 

四、i節點及其相關命令

1ln命令示例一——建立硬連線

[[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了。

2ln命令示例二——建立符號連線

[[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命令

1find示例一——按檔名查詢

# find  /  -name  "dhcpd*"

功能:引數-name指明按檔名進行查詢,即從/目錄開始查詢以dhcpd開頭的所有檔案。

2find示例二——按檔案大小查詢

[[email protected] ~]# find  /etc  -size  8

功能:從/etc下開始查詢大小為8塊的檔案,此處預設512位元組為1塊。若認為塊大小為1k,則應寫為8k。

   其它可以使用的單位有c(位元組)、w(雙位元組)、M(兆位元組)和G(吉位元組)。

3find示例三——按檔案型別查詢

# find  /var  -type d  -print

功能:從/var目錄下開始查詢型別為目錄的檔案,其中引數-print是顯示到螢幕上的意思,經常省略。

4find示例四——按檔案的修改時間查詢

[[email protected] ~]# find  .  -cmin -5

功能:從當前目錄下查詢5分鐘之內修改過的檔案。

   如果把“-5”改為 “+5”,則表示查詢5分鐘以前修改過的檔案。不帶“+”或“-”,則認為整5分鐘。

  如果把時間單位改為天,則使用引數“-ctime”,請看示例:

[[email protected] ~]# find  .  -ctime -5

5find示例五——按檔案的許可權查詢

[[email protected] ~]#find  mytmp  -perm  755

功能:查詢mytmp目錄下的許可權