1. 程式人生 > >Linux常用命令,個人學習筆記

Linux常用命令,個人學習筆記

以下是小生在學習linux過程中整理的筆記,因為個人比較菜,筆記比較細囉嗦,希望能給需要的小夥伴一點幫助。

1.立即關機 poweroff
跳出虛擬機器,顯示滑鼠ctrl+alt
進入虛擬機器,隱藏滑鼠ctrl+g

在終端中輸入命令過程中某行命令輸入錯誤了,但是回車不能退出也沒有自動退出可以,可以按ctrl+c或者ctrl+】,或者ctrl+d來退出,具體按那個要按具體情況而定。

2.普通使用者與管理員(root)身份切換:
在Linux中很多命令在普通使用者是沒有許可權使用的,
‘[[email protected] sxp]# ’即為管理員身份
‘[[email protected]

~]$ ’為使用者名稱為sxp的普通使用者

普通使用者到管理員:‘su’或’su -’(注意空格,因為管理員身份都是root,所以這裡省略)
管理員到普通使用者:‘su - sxp’(注意空格,要加上普通使用者名稱)

3.在系統中執行某個命令後想立即終止它的執行,可同時按下ctrl+c快鍵鍵

4.當某些命令在執行過程中會大量輸出內容,不斷刷屏,影響之後命令的輸入,單又不想終止
該命令的執行,可以在輸入該命令的時候,在命令後邊加上&,這樣該命令就會在後臺執行。

5.ifconfig 檢視計算機網路配置和當前網路狀態,inet後為IP地址,ether後為Mac地址(網絡卡實體地址),RX即TX為接受資料包和傳送資料包的個數和累計流量。

6.uname命令用於檢視當前系統核心和系統版本資訊,一般會加上 -a引數,以檢視詳細資訊,如
[[email protected] ~]# uname -a
Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2017
x86_64 x86_64 x86_64 GNU/Linux
以空格來區分,以此為核心名稱,主機名稱,核心發行版本等

redhat-release命令用於檢視系統版本詳細資訊,如下(cat命令是一個文字輸出命令,後邊為引數,所以注意空格)
[[email protected]

~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)

7.uptime 檢視系統負載情況,輸出資訊依次為系統當前時間,系統已啟動時間,啟用終端數量以及平均負載情況。這裡的評價負載情況指的是系統在一分鐘之內,五分鐘之內以及十五分鐘之內的壓力情況,壓力值越低越好。
[[email protected] ~]# uptime
22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18

8.free 參看系統當前記憶體使用情況,輸出資料以 M 為單位,加上 -h 引數後會將資料轉換為以 G 為單位

9.who 用來檢視所有已登入當前主機的使用者資訊

10.last 命令可以檢視歷史記錄中所有使用者登入資訊,該記錄檔案儲存在本地,可以被惡意程式修改,所以不能以此絕對確定歷史登入資訊,僅供參考。

11.history 命令檢視所有歷史輸入命令 ,加上 -c 引數,情況命令輸入歷史記錄

12.pwd 命令檢視使用者當前所處工作目錄

13.ls(注意這裡是l不是i) 命令可以檢視當前目錄下檔案資訊, -a 為所有檔案, -l為詳細資訊,倆個引數都加上即為所有檔案的詳細資訊。
(1)[email protected]:~/Desktop$ ls -l 2.txt
-rw-r–r-- 1 sxp sxp 124 9月 13 17:02 2.txt
(2)[email protected]:~/Desktop$ ls -a
. … 1.txt 2.txt 3.txt

14.top 命令可以動態檢視系統中執行的各程序以及系統的資源佔用情況,我們可以將其理解為強化版的Windows系統中的工作管理員。

15.cat 命令檢視內容較少的純文字檔案, -n 引數可以顯示行數
more 命令用來檢視內容較多的純文字檔案

16.head -n 20 1.txt 檢視純文字文件,“1.txt”的前20行

17.tail 命令檢視純文字文件的後n行,或者重新整理某純文字文件
tail -n 20 1.txt 檢視“1.txt”的後20行
tail -f 1.txt 重新整理“1.txt”

18.tr 命令用作對文字內容某些字元的替換,先用cat命令讀取該檔案,然後用tr命令執行替換,
cat 1.txt | tr [a-c] [A-C]
這裡將a-c的所有小寫字母改為大寫字母,也可以只改某一個字母,但是要注意的是:
(1)這裡cat及其引數與tr之間有豎線隔開
(2)想用cat將目標檔案輸出到終端,而tr修改的也是放在終端的文字,將其修改後再在終端輸出,所以tr不會改變原檔案
同樣,這裡可以用head和tail來輸出某幾行,並替換其中字元,但是tr只能有一個引數,即只能同時修改一個tr [] [],
不能tr [] [] [] []

19.wc 命令用於檢視文件的行數,字元以及位元組數,引數分別為 -l 行數,-w 字元數, -c 位元組數
[email protected]:~/Desktop$ wc -l 1.txt
55 1.txt
[email protected]:~/Desktop$ wc -lwc 1.txt
55 121 3281 1.txt
[email protected]:~/Desktop$ wc 1.txt
55 121 3281 1.txt

20.stat 命令可以檢視檔案的詳細資訊,如建立時間,大小,修改時間。許可權以及使用者等等。
[email protected]:~/Desktop$ stat 1.txt
檔案:1.txt
大小:3281 塊:8 IO 塊:4096 普通檔案
裝置:809h/2057d Inode:8134144 硬連結:1
許可權:(0644/-rw-r–r--) Uid:( 1000/ sxp) Gid:( 1000/ sxp)
最近訪問:2018-09-13 16:37:15.501811427 +0800
最近更改:2018-09-13 16:36:42.329812021 +0800
最近改動:2018-09-13 16:36:42.441812019 +0800
建立時間:-

21.sudo passwd root 在系統初始化的時候我們設定root密碼,會造成在終端su切換root許可權時報“鑑定故障”的錯誤,這時我們重新設定root密碼,
[email protected]:~$ sudo passwd root
[sudo] sxp 的密碼:
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼
[email protected]:~$ su
密碼:
[email protected]:/home/sxp#
passwd命令用來儲存使用者資料,更新密碼後再次su即可切換大root許可權

22.cut 按列提取文字內容,使用-f 引數來設定需要看的列數,還需要使用-d 引數來設定間隔符號使用-f 引數來設定需要看的列數,還需要使用-d 引數來設定間隔符號。

23.diff 命令用於比較兩個文字檔案內容是否相同,這裡要注意的是比較的是文字檔案且比較的是他們的內容,用diff引數設定待比較的兩個檔案
[email protected]:~/Desktop$ diff --brief 2.txt 3.txt
檔案 2.txt 和 3.txt 不同
-c引數可以可以講兩個文字檔案內容的不同之處在終端輸出
[email protected]:~/Desktop$ diff -c 2.txt 3.txt
*** 2.txt 2018-09-13 17:02:12.393784620 +0800
— 3.txt 2018-09-14 14:54:37.235289021 +0800
***************
*** 1,6 ****
AAAAAAAAaaaaaaaaa
- BBBBBBBBbbbbbbbbb
CCCCCCCCccccccccc
EEEEEEEEeeeeeeeee
FFFFFFFFfffffffff
都看見了件那份麻煩兩位
— 1,6 ----
AAAAAAAAaaaaaaaaa
CCCCCCCCccccccccc
+ BBBBBBBBbbbbbbbbb
EEEEEEEEeeeeeeeee
FFFFFFFFfffffffff
都看見了件那份麻煩兩位

24.touch 命令可以建立空白檔案(不是資料夾),建立檔案時直接在命令後加檔名(加字尾)就可以,同時也修改檔案的讀取和修改時間, -a 引數修改讀取時間, -m引數修改修改時間, -d則是二者都修改(注意這裡是檔案而不僅侷限於文件)
[email protected]:~/Desktop$ ls -l 3.txt
-rw-r–r-- 1 sxp sxp 124 9月 14 16:36 3.txt
[email protected]:~/Desktop$ touch -d “2018-7-23 09:00” 3.txt
[email protected]:~/Desktop$ ls -l 3.txt
-rw-r–r-- 1 sxp sxp 124 7月 23 09:00 3.txt
建立新檔案
[email protected]:~/Desktop$ touch 4.txt
[email protected]:~/Desktop$ touch 1.pdf
[email protected]:~/Desktop$ touch 1.doc
[email protected]:~/Desktop$ touch 1.ppt

25.mkdir 命令可以建立一個新的空白資料夾(注意新建的只能是資料夾),命令後接資料夾命名,同時還可以用 -p 引數來建立子目錄,子目錄可以是層疊的,建立子資料夾即是在當前資料夾內建立新資料夾,所以要利用 cd 進入當前資料夾內
[email protected]:~/Desktop$ mkdir 1
[email protected]:~/Desktop$ cd 1
[email protected]:~/Desktop/1$ mkdir -p 2/3/4/5
[email protected]:~/Desktop/1$ cd 5
bash: cd: 5: 沒有那個檔案或目錄
[email protected]:~/Desktop/1$ cd 2/3/4/5
[email protected]:~/Desktop/1/2/3/4/5$
如上,新建資料夾1,進入該資料夾,逐層建立2/3/4/5資料夾,後者為前者子資料夾,因為當前路徑處於資料夾1內,我們想跨過2/3/4資料夾cd進5,失敗了,所以應該明確指定路徑,進入5.

26.cp 命令用於複製資料夾或檔案,命令後為引數, -p 用於儲存原始檔的屬性, -d 當原始檔為連結時,複製後儲存其連結屬性, -r 用來複制資料夾,諸層複製, -i 則是當目標檔案與原始檔相同時,要提示是否覆蓋,如果不設定 -i 引數,同名是預設覆蓋(親測);引數後為原始檔名(待複製檔案),原始檔後為目的檔名;當原始檔為檔案,而目的檔名為一個資料夾或是路徑時,將原始檔放到該路徑下。
(1)將多層資料夾1諸層複製給資料夾2(在當前路徑新建資料夾2並將1的子資料夾諸層複製過來)
[email protected]:~/Desktop$ cp -r 1 2
(2)在當前路徑下將1.txt放到資料夾2中,命名22.txt
[email protected]:~/Desktop$ cp 2.txt 2/22.txt
(3)加上 -i 引數後在覆蓋前會詢問,輸入“1”或“是”覆蓋,直接回車不輸入取消
[email protected]:~/Desktop$ cp -i 3.txt 2/22.txt
cp:是否覆蓋’2/22.txt’? 1
[email protected]:~/Desktop$ cp -i 3.txt 2/22.txt
cp:是否覆蓋’2/22.txt’? 恩恩
[email protected]:~/Desktop$ cp -i 3.txt 2/22.txt
cp:是否覆蓋’2/22.txt’? 0
[email protected]:~/Desktop$ cp -i 3.txt 2/22.txt
cp:是否覆蓋’2/22.txt’?
[email protected]:~/Desktop$ cp -i 3.txt 2/22.txt
cp:是否覆蓋’2/22.txt’? 是

27.mv 命令用於剪下檔案,這裡的剪下不是說將檔案部分內容剪下下來,而是對於檔案本身而言,命令後分別為原始檔名和目的檔名,將其剪下到新的目錄下就相當於移動,原始檔會被刪除,剪下到當前目錄即為重新命名
(1)將桌面上的“3.txt”剪下到3資料夾中,新資料夾命名為“33.txt”,不同目錄剪下是為移動
[email protected]:~/Desktop$ mv 3.txt 3/33.txt
(2)將桌面上3資料夾中的“33.txt”剪下命名為“44.txt”並儲存在3資料夾中,同目錄剪下是為重新命名
[email protected]:~/Desktop$ mv 3/33.txt 3/44.txt

28.rm 命令用於刪除檔案或資料夾,刪除一個資料夾時即便是一個空資料夾也要加上 -r 引數,否則無法刪除,如下“4”為一個空資料夾
[email protected]:~/Desktop$ rm 4
rm: 無法刪除’4’: 是一個目錄
[email protected]:~/Desktop$ rm -r 4
刪除某一個檔案:[email protected]:~/Desktop$ rm 3.txt

29.dd 命令用於從指定位置複製指定大小的資料塊出來,if引數後為原始檔名(可加路徑),of引數後為目的檔名(可加路徑),bs引數可理解為複製一次的資料大小,count為複製次數,bs與count的乘機為複製檔案的大小,即複製該檔案我們要求系統複製count次,每次複製bs這麼多。
[[email protected] ~]# dd if=/dev/zero of=560_file count=1 bs=560M
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s
如上,從"dev/zero"目錄中複製560m大小的資料,放在原目錄中,新檔名為"560_file",每次複製操作複製560m,只需複製一次。中間兩行做操作記錄。
dd命令還可以直接將資料壓縮成iso檔案而不是想Windows那樣需要藉助第三方軟體,即將待壓縮資料放到if中,在of中輸出ISO命名,
[[email protected] ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s
如上,當原始檔是某個檔案時,其記憶體大小固定,所以可以不用bs和count引數來限定資料塊大小。

30.file 命令用於參看檔案型別,在Linux中我們把文字,資料夾,裝置都一切都稱為檔案,我們可以用file命令來參看檔案的型別,
[email protected]:~/Desktop$ file 1
1: directory
[email protected]:~/Desktop$ file 2.txt
2.txt: UTF-8 Unicode text
[email protected]:~/Desktop$ touch 1.py
[email protected]:~/Desktop$ file 1.py
1.py: empty
[email protected]:~/Desktop$ touch 1.exe
[email protected]:~/Desktop$ file 1.exe
1.exe: empty
如上,資料夾型別為directory,txt文件會給出編碼格式。