《Linux 操作系統》Linux的常用命令操作大全


前言

在學習命令之前先學習我們該如何去學習linux 命令。

幾乎每一個命令都有參數,每個參數的含義是什么,我們一般也不是全部都能記住,所以我們必須有一個可以知道每一個命令下各個參數的含義的方法。

命令 --help  這個就是查詢每一個命令的使用方式和各個參數的使用說明。

舉例:mkdir --help

我們可以看到顯示的信息對mkdir 做了說明,對-p -m -v -z 這幾個參數也一一做了說明。

1. 文件和目錄

cd 打開文件夾的命令,通過cd命令我們可以自由的操作文件的切換。

cd /home                  打開home文件夾

cd ..                         打開上級目錄

cd ../..                      打開上上級目錄

cd ~                         打開自己的主目錄

cd -                          打開上次訪問的目錄

 

ls 是查看當前目錄下的文件夾和文件的情況。

ls                              查看當前目錄下的文件夾和文件    

ls -l (ll)                      查看當前目錄下的文件夾和文件的詳細信息。  ll 是ls -l 的簡寫

ls -a                          查看當前目錄下的文件夾和文件包含隱藏文件

ls -lh                         查看當前目錄下的文件夾和文件並且帶上文件的大小信息

ls *[j]*                       查看當前目錄下的帶j的文件夾及文件夾里面的內容

 

pwd  顯示當前目錄的全路徑。

 

du -sh *       顯示當前目錄下的各個文件和文件夾的大小

 

mkdir 創建文件夾。

mkdir xxx                  創建一個叫xxx的文件夾

 

mkdir -p xxx/xxx       創建xxx文件和xxx文件里面的xxx文件

mkdir bbb ccc           創建bbb和ccc兩個文件夾

 

touch 用於創建文件。

touch bbb.txt             創建一個bbb.txt文件

 

vi 用於編輯文件內容,vi 等同於 vim.

vi bbb.txt                   進入文件bbb.txt,默認不能修改。 修改需要按下鍵盤“i”字母

文件底部會出現INSERT, 這個時候就表示可以輸入內容了。

i                              在vi下表示進入編輯狀態。

輸入信息后,先按Esc推出編輯模式,然后輸入“:wq”  表示保存並退出。

:wq                        表示保存並退出

:q                           表示直接退出

:q!                          表示強行退出

:set fileencoding=utf-8      設置文件編碼為utf-8(文件內容不會變化)

/字符串                  表示查詢

這個時候再使用vi查看,就可以看到我們輸入的信息了。vi命令是我們最常用的命令,vi 下還包含大量快速操作文本的命令,有需要的自學。^-^!

 

rm 用於刪除文件和文件夾。

rm aaa.txt               表述刪除文件aaa.txt。 這個命令會給出一個提示是否需要刪除,選擇y就是刪除,選擇n 就是不刪除

rm -f bbb.txt             -f 參數表示刪除文件的意思,這個時候刪除就不會有提示,直接刪除

rm -rf aaa                -rf參數表示刪除文件夾及文件夾里面的全部內容

rmdir bbb                 表示刪除文件夾,文件里面不能包含內容。

rm -rf *                     刪除當前目錄下的全部文件和文件夾

 

mv 移動文件或文件夾,還有修改文件名的功能。

mv aaa.txt aaa         表示移動文件aaa.txt 到目錄aaa下面。

mv bbbb aaa          表示將bbbb文件夾移動到aaa下面。

mv aaa.txt bbb.txt        表示將文件aaa.txt改名成bbb.txt

 

cp 復制文件夾或者文件信息

cp aaa.txt bbb.txt    復制文件aaa.txt 的內容到bbb.txt,當bbb.txt 不存在的時候的會創建一個。存在會覆蓋,覆蓋會有提示。

cp -a /home/bbbb /home/aaa/       復制文件夾到另外一個文件夾

 

cat 命令用於連接文件並打印到標准輸出設備上。

cat aaa.txt                 查詢aaa.txt 文件內容,打印到輸出設備上

cat -n aaa.txt             給輸出信息編上行號。

 

tail 命令可用於查看文件的內容,有一個常用的參數 -f 常用於查閱正在改變的日志文件。

tail aaa.txt                 顯示文件尾部10行信息

tail -f aaa.txt              顯示文件尾部10行信息,並且不斷更新信息,適合查詢程序運行中日志的打印情況,Ctrl + c 退出文件顯示

tail -f -n20  aaa.txt     顯示文件尾部20行信息,並且不斷更新信息,適合查詢程序運行中日志的打印情況,Ctrl + c 退出文件顯示

 

find 命令用來在指定目錄下查找文件。

find . -name "*.txt"        將目前目錄及其子目錄下所有擴展名是 txt 的文件列出來

find . -name "aaa.txt"   將目前目錄及其子目錄下所有aaa.txt的文件列出

find /home/aaa/ -name "aaa.txt"    將指定目錄及其子目錄下所有aaa.txt的文件列出

find / -user jar              將根目錄下屬於用戶jar的文件全部列出

find . -ctime -20           將目前目錄及其子目錄下所有最近 20 天內更新過的文件列出

 

file 該命令用於辨識文件類型 

file aaa.txt                  查看aaa.txt的文件的編碼,文件類型。

 

iconv 該命令用於轉換指定文件的編碼,默認輸出到標准輸出設備,亦可指定輸出文件。

iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt            將aaa.txt文件內容復制到bbb.txt中並且將編碼從utf-8改成gb2312

 

2. 用戶、組

/etc/group  存儲當前系統中的用戶組信息

注意:  

    1.當該組內只有一個用戶,並且用戶名和組名相同時,在組列表中,包含用戶一列可以為空

    2.系統中root分組的組編號一定為0

    3.組號1~499為系統預留的組編號,一般是預留給系統安裝的軟件或者服務的編號,越早安裝的軟件或者服務的組編號約早。用戶手動創建的用戶組編號從500開始

    4.組密碼占位符,無一例外,全部用x表示

 

/etc/gshadow  存儲當前系統中用戶組的密碼信息

注意:

    1.如果組密碼處為“*” “!”或者為空時候,則該組沒有密碼

    2.如果組管理者為空,則表示該組內所有成員都可以管理該組

 

/etc/passwd  存儲當前系統中所有的用戶信息

 

/etc/shadow  存儲當前系統中所有用戶的密碼信息

 

useradd 創建用戶。

useradd hu                  創建一個名叫hu的用戶

              在下面兩個地方可以看到我們的創建信息

              1.會在/etc/passwd文件中添加xxx用戶的信息

    2.會在/etc/group文件中添加一個名為xxx的用戶組信息

useradd -d /home/helloworld hu     創建用戶和用戶的home目錄

useradd -m hello        創建用戶和home文件夾,文件夾在當前路徑下新建

useradd -g root hello  創建用戶hello,並為其分配已經存在的組

 

usermod 修改用戶信息。

usermod -l huu hu          將hu用戶的名字修改成huu

usermod -u 888 huu       修改huu用戶的id

usermod -d aaa huu       修改用戶huu的home目錄

usermod -g root huu       修改用戶的主用戶組

 

userdel 刪除用戶信息。

userdel hu1                     刪除用戶信息

                                        在/etc/passwd文件中就看不到hu1用戶的信息

userdel -r huu                  刪除用戶信息及用戶的home目錄信息

 

groupadd 創建一個用戶組。

groupadd hu                    創建一個用戶組hu

 

groupmod 修改用戶組信息。

groupmod -n hu4 hu      修改用戶組hu3成hu4

        

groupdel 刪除用戶組信息。

groupdel hu4                 刪除用戶組hu4

 

chgrp 修改所屬用戶組信息。

chgrp hello hu                將文件夾hu的所屬用戶組改成hello

 

chown 修改文件或者文件夾的所屬用戶和用戶組信息

chown hu2:hu2 hu         將文件夾hu的所屬用戶和用戶組改成hu2

chown hello hu              將文件夾hu的所屬用戶改成hello

 

su 切換用戶

su hu                             切換成hu用戶

 

3. 權限

如圖所示:

文檔類型說明:

             d - 目錄,例如上表檔名為『.gconf』的那一行;
    - - 文檔,例如上表檔名為『install.log』那一行;
    l  - 連結檔(link file);
    b - 裝置文件里面的可供儲存的接口設備(可隨機存取裝置);
    c - 裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。

  權限由rwx三個字幕表示,分別表示為可讀、可寫、可執行,如果沒有該權限,則用“ - ”表示,對於目錄來說,必須有x權限,否則無法讀取目錄內容

  如果文件名前面有“ . ”,則表示這個文檔或目錄是隱藏的

 

chmod  修改文件或者文件夾權限。

chmod 777 hello             修改文件夾hello的權限,改成最大權限

rwxst      r  讀權限;  w 寫權限; x 可執行權限; s  執行文件時,擁有該文件所有者的權限; t  臨時擁有權限可讀可寫,但是都只能操作自己的文件,不能操作別人的文件。

-rw------- (600) -- 只有屬主有讀寫權限。

-rw-r--r-- (644) -- 只有屬主有讀寫權限;而屬組用戶和其他用戶只有讀權限。

-rwx------ (700) -- 只有屬主有讀、寫、執行權限。

-rwxr-xr-x (755) -- 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有讀、執行權限。

-rwx--x--x (711) -- 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有執行權限。

-rw-rw-rw- (666) -- 所有用戶都有文件讀、寫權限。這種做法不可取。

-rwxrwxrwx (777) -- 所有用戶都有讀、寫、執行權限。更不可取的做法。

操作權限的另外一種方式:

chmod u+w  hello               給文件或者文件夾所屬用戶加上w權限

chmod g-r hello                  給文件或者文件夾所屬用戶組去掉r權限

chmod a+x hello                給用戶,組,其他都加上x權限

 

root 用戶之所以可以再任何地方執行任何文件,就是/etc/sudoers 文件配置的。

/etc/sudoers

上圖可以看到有好幾種設置權限的地方。

 

4. 進程、端口

執行 top 命令會顯示下圖信息

PID                    進程號

USER                進程所屬用戶信息

PR                     piriority,優先級,數字越小越優先被執行

NI                      nice,與priority相關,也是數字越小越先被執行

VIRT                 占用虛擬內存的總量

RES                  進程占用的物理內存

SHR                  共享內存大小

S                       進程狀態 R 運行狀態、S 睡眠狀態、D 不可中斷的睡眠狀態、T 暫停狀態、Z 退出狀態,僵死進程、X 退出狀態,進程即將被銷毀

%CPU               CUP使用占比

%MEM              內存使用占比

TIME+               進程累計使用cpu進行運算的時間

COMMAND       進程名稱

 

ps 命令用於顯示當前進程 (process) 的狀態。

ps -ef                                  查看全部進程情況(信息全)

ps -aux                               與ps -ef 效果差不多

ps -axjfc                             查看全部進程情況,進程名顯示簡稱

ps aux | grep tomcat          查詢用戶tomcat使用的全部進程情況

 

top 展示系統的當前狀態以及進程信息,並且定時刷新.

top -p 21481                      查詢PID 等於 21481的進程詳情

top -H -p 21481                 查詢PID 等於 21481的全部線程程詳情

top -u jar                            查詢用戶為jar的進程詳情

因為top命令顯示的是動態結果:我們就會存在如下需求,能不能顯示結果按照內存大小排序,按照CUP使用情況排序等。

以下是交互命令:

按“h”或者“?”,會顯示幫助,如下

 

Z:改變顏色;B:加粗

t:顯示和隱藏任務/cpu信息;m:內存信息

1:監控每個邏輯CPU的狀況;

f:進入字段顯示配置模式,可增加或者移除顯示字段,按相應的字母新增或去除;o:進入字段順序設置模式,可配置顯示位置順序,按相應的字母往下移動,按“shift+相應的字母”往上移動         ---------常用

F:進入字段排序配置模式,可設置排序的字段;

R:正常排序/反向排序;

s:設置刷新的時間--------常用

u:輸入用戶,顯示用戶的任務

i:忽略閑置和僵死進程。這是一個開關式命令。

r:重新安排一個進程的優先級別。系統提示用戶輸入需要改變的進程PID以及需要設置的進程優先級值。輸入一個正值將使優先級降低,反之則可以使該進程擁有更高的優先權。默認值是10。

c:切換顯示命令名稱和完整命令行。

M:根據駐留內存大小進行排序。-------------常用

P:根據CPU使用百分比大小進行排序。-----------常用

H:顯示線程

 

kill 該命令用於刪除執行中的程序或工作.

kill 123456                          殺死PID為123456的進程

kill -KILL 123456                強制殺死PID為123456的進程

kill -9 123456                     徹底殺死PID為123456的進程           

 

ss 該命令可以用來獲取socket統計信息。

ss -napt | grep 18910         通過進程號,查詢使用的端口號

 

圖中8080就是進程18910使用的端口號。

ss -lntpd | grep :8080        通過端口號查詢進程號信息

圖中18910就是端口8080使用的進程號。

 

netstat 因為已經全面被ss 命令替代,故這里直接跳過。

 

grep 命令用於查找文件里符合條件的字符串,經過配合其他命令一起使用,單獨使用較少。

grep jj *txt                                                查詢后綴為txt文件中出現jj的行信息並且打印到控制台。

grep -n '2019-10-24 00:01:11' *.log        查詢后綴為log文件中出現'2019-10-24 00:01:11' 的行信息,帶行號並且打印到控制台。

grep -e '^j' *.txt                                        -e 是正則表達式查詢信息,^j   是首字母為j的意思。

 

5. 在線軟件下載安裝和刪除

yum( Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。

yum list | grep zip                                  查詢當前系統是否已經安裝zip

yum install zip                                        安裝zip,執行完該命令侯,zip命令就可以使用了,我們可以通過zip壓縮文件

yum update zip                                      更新軟件包

yum remove zip                                     卸載zip

 

6. 打包、解包

tar 該命令用於備份文件。

tar cvf aaa.tar aaa.txt                           將aaa.txt 打包進aaa.tar 中

tar cvf aaa.tar bbb.txt aaa.txt               將多個文件打包進aaa.tar 中

tar tvf aaa.tar                                      列出aaa.tar包中的文件信息

tar xvf aaa.tar                                     解壓aaa.tar包中文件到當前目錄下

tar xvf aaa.tar -C dddd                       解壓到指定目錄dddd下

 

文件后綴為.tar.gz,在linux 中更加常見。

tar zcvf aaa.tar.gz aaa.txt                    將aaa.txt 打包進aaa.tar.gz 中

tar zcvf aaa.tar.gz  bbb.txt aaa.txt             將多個文件打包進aaa.tar 中

tar ztvf aaa.tar.gz                                       列出aaa.tar包中的文件信息

tar zxvf aaa.tar.gz                                      解壓aaa.tar包中文件到當前目錄下

tar zxvf aaa.tar.gz  -C dddd                       解壓到指定目錄dddd下

 

zip 該命令用於壓縮文件。

zip -q -r dddd.zip /home/dddd/                 壓縮dddd文件夾到dddd.zip中

zip -q -r dddd.zip *                                   壓縮當前文件夾的全部內容到dddd.zip中

 

unzip 命令用於解壓縮zip文件。

unzip dddd.zip                                       解壓dddd.zip將文件放到當前目錄

unzip -l dddd.zip                                    查看壓縮包里面的文件列表

unzip dddd.zip -d ee                            解壓文件到指定目錄ee下面,這個路徑也可以是絕對路徑

 

7. 遠程協議登錄

ssh 遠程登錄協議。

ssh -l root 149.225.47.23                        linux服務中遠程連接ip為149.225.47.23 服務器,root是用戶,后面還會讓你輸入密碼,輸入正確密碼即可,退出通過exit 命令即可

免密登錄設置:

ssh-keygen -t rsa                                   生成秘鑰,按多次回車直到秘鑰生成

ssh-copy-id 149.225.47.23                    連接遠程機器,第一次需要輸入密碼, 再次使用命令(ssh -l root 149.225.47.23) 就可以直接登錄,不需要密碼了

進入“.ssh”會生成以下幾個文件

  

  authorized_keys:存放遠程免密登錄的公鑰,主要通過這個文件記錄多台機器的公鑰

    id_rsa : 生成的私鑰文件

    id_rsa.pub : 生成的公鑰文件

    know_hosts : 已知的主機公鑰清單

    如果希望ssh公鑰生效需滿足至少下面兩個條件:

      1) .ssh目錄的權限必須是700 

      2) .ssh/authorized_keys文件權限必須是600

 

scp 命令用於 Linux 之間復制文件和目錄。

scp id_rsa.pub root@149.225.47.23:/root/.ssh/authorized_keys                將本系統文件id_rsa.pub,復制到 root@149.225.47.23:/root/.ssh/authorized_keys下面

scp id_rsa.pub 49.235.147.233:/root/.ssh/authorized_keys                        復制文件還可以簡單的使用這個命令

scp -r .ssh 49.235.147.233:/root/                                                                 加-r 復制整個文件夾。

 

8. 其他常用命令

> test.log                 清空文件內容

 

sh 是shell命令語言解釋器,執行命令從標准輸入讀取或從一個文件中讀取. (簡單的說是執行可執行文件使用)。

sh d.sh                                     執行d.sh 文件

文件里面就寫了一句:

重點說明:當文件沒有執行權限我們才用sh。 有執行權限我們可以通過./ 來執行

./d.sh                                      執行d.sh 文件

 

date 用於顯示和修改時間的命令

date                                    顯示系統日期

date '+%Y-%m-%d %H:%M:%S'       顯示我們習慣的日期顯示方式

date '+%Y-%m-%d %H:%M:%S %A'       顯示我們習慣的日期顯示方式加上星期的顯示

date '+%Y-%m-%d %X %A %Z'              也可以顯示時間

date -s 05/08/20                                       修改系統年月日

date -s '2020-05-07 09:09:09'                 修改系統年月日時分秒

 

ntpdate 同步時間命令。

ntpdate -u ntp.ntsc.ac.cn                         同步時間與國家授時中心時間對齊(對齊時間之前需要先確認你的時區設置是否有問題) 

 

hostname  顯示主機名。

hostname  myzjm                                   修改主機名,重啟無效

 

set  查看當前進程中的變量。

 

clear 該命令用於清除屏幕。

 

locale    查詢linux系統編碼

export LANG=en_US.UTF-8        修改linux系統編碼

 

rz 上傳命令  一般默認沒有,需要下載安裝(yum install -y lrzsz)

選擇文件上傳即可。

rz -y                            上傳的文件覆蓋已有文件

rz -b                             使用二進制傳輸

 

sz 下載命令 一般默認沒有,需要下載安裝(yum install -y lrzsz)

sz 新建文本文檔.txt           下載新建文本文檔.txt 到你的電腦。

sz -b 新建文本文檔.txt           使用二進制傳輸下載。

 

ping 網絡主機發送ICMP回傳請求

ping baidu.com                      一直請求和接收反饋信息。

ping -c 5 baidu.com               5次請求和接收反饋信息。

 

which 在環境變量$PATH設置的目錄里查找符合條件的文件

which mysqld                         在環境變量$PATH設置的目錄里查找mysqld 文件。

 

ifconfig -a       查詢linux ip地址。

 

scp -P 55255 root@10.23.185.16:/usr/local/xxx.jar /usr/local/xxx.jar      -- 55255 表示端口,如果是22端口可以不寫,root是用戶。

輸入密碼即可。

 

ln -s /usr/local/mysql/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql /usr/bin      -- 建立軟鏈接,就相當於windows 的創建快捷方式

 

passwd  用戶名   -- 登入root用戶,修改其他用戶的密碼。

 

大家在學習和工作中遇到的常用命令歡迎留言。。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM