linux命令老是忘记,Linux可能会忘记的命令整理
Linux可能會忘記的命令整理
因為太常見的大家都會,太不常見的碰上的也少,所以來整理一下一般般常見或者由于過于常見而忘記細節的命令好啦。
時間充足的話可以再過一遍這個,突然發現之前筆記做得還是很認真的(*/ω\*) :
yuanlier.github.io/categories/…
文件、目錄,與搜索
復制目錄時需要加-r嗎?移動和重命名時呢?
復制目錄 :cp
需要加-r,否則會報錯
移動或重命名 :mv
不需要加-r
進行復制或移動操作時,哪些情況下要求目標目錄必須存在?
cp file dir / mv file dir :
要求dir必須存在
cp -r dir1 dir2 / mv dir1 dir2 :
如果dir2不存在,就會自動創建一個
=> 即:如果被移動目標是文件,則要求目標目錄必須存在;若被移動目標是目錄,則允許自動創建目標目錄。
rm -rf 中的 -rf 分別指什么?
-r :遞歸地刪除目錄
也就是說,如果刪除的目錄有子目錄的話,也將把子目錄一并刪除
-f :忽略不存在的文件并無需提示確認
不加這個的話就會在每刪一個文件之前確認一遍是否需要刪除
也就是要一直yes yes yes
軟鏈接和硬鏈接的區別是什么?優勢在哪里?
硬鏈接 :ln
不能引用與該鏈接不在同一磁盤分區的文件;
只能對文件操作,無法引用目錄;
刪除原文件后依然可以通過硬鏈接打開該文件
軟鏈接 :ln -s
幾乎完全等同于Windows下的快捷方式;
創建時最好直接輸絕對路徑 不然有時候相對起來可能有點麻煩_(:з」∠)_
軟硬鏈接最大的區別 :
硬鏈接擁有與原文件相同的i節點和存儲block塊,可以看作同一個文件,相當于一間教室的兩個門;軟鏈接擁有自己的i節點和block塊,保存的是原文件的文件名和i節點號,而非實際的數據。
文件搜索合集
快速搜索 :locate
基本格式 :locate [文件名]
特點 :
在后臺數據庫中搜索,速度要快于find
不能搜索剛創建的文件(因為需要時間寫入數據庫)
只能搜索文件和目錄,不能搜索其他
命令搜索 :whereis/which
基本格式 :whereis/which [命令名]
特點 :
用whereis的時候還可以帶個選項 ==> -b 只查找可執行文件;-m 只查找幫助文件
無法查找系統自帶命令,比如說cd
文件搜索 :find
基本格式 :find [搜索范圍] [選項] [搜索條件]
特點 :
默認絕對匹配,如果想模糊查詢的要加通配符
加了通配符還得用雙引號括起來
常用選項 :
-iname :表示忽略大小寫的名稱匹配
-mtime -10/10/+10 :表示查找最近十天內/距離今天十天時/距離今天十天前修改過的文件;
-size -25k/25k/+25k :表示查找當前目錄下大小小于/等于/大于25k的文件
-a :邏輯與;-o :邏輯或
字符串搜索 :grep
基本格式 :grep [選項] [字符串] [文件名]
與find的區別 :
find :在系統中搜索符合條件的文件名,使用的是完全匹配
grep :在文件中搜索包含該字符串的行,使用正則表達式(包含匹配)
重定向
標準輸出重定向 :>
基本格式 :[命令] > [文件名]
特點 :
只會重定向標準輸出
默認從文件開頭部分開始改寫
可以用來清空文件或創建的一個新的空文件,比如這樣 :> [文件名]
如果想要從尾部追加內容,只需要把 > 換成 >> 即可
標準錯誤重定向 :2>
基本格式 :[命令] 2> [文件名]
特點 :
其實0、1、2分別對應的是標準輸入、標準輸出、標準錯誤文件啦
將標準輸出和標準錯誤重定向到同一個文件 :&>
基本格式 :[命令] &> [文件名]
處理不想要的輸出 :
重定向到 /dev/null 即可
/dev/null :這是一個稱為“位桶”的系統設備,能夠接收輸入但是不對輸入進行任何處理;一般可以用它來吞掉錯誤信息,從而使它們不會被顯示到任何地方
權限與用戶管理
文件屬性
示例 :-rw-rw-r--
文件屬性分類 :
第1位 :文件類型
2-4位 :所有者權限
5-7位 :組權限
8-10位 :其他用戶權限
文件類型符號說明 :
- :普通文件
d :目錄文件
l :符號鏈接。注意對于符號鏈接,剩下的文件屬性始終為rwxrwxrwx,它是一個偽屬性值;符號鏈接指向的文件的屬性才是真正的文件屬性。
權限屬性符號說明 :
r :文件可讀
w :文件可寫
x :文件可執行
更改文件模式 :chmod
八進制數字表示法 :
常用的比如說 :
7 :111 => rwx
6 :110 => rw-
5 :101 => r-x
4 :100 => r--
0 :000 => ---
符號表示法 :
指令分為三部分 :
更改會影響誰 :
u :即user,表示文件或目錄的所有者
g :即group,文件所屬群組
o :即others,表示其他所有用戶
a :即all,表示以上三種全部
要執行的操作是哪個 :
+ :添加一種權限
- :刪除一種權限
= :除指定權限為可用外,其他權限均被刪除
要設置的權限是那種 :
即 r/w/x
常用的比如說 :
u+x :為文件所有者添加可執行權限
u-x :刪除文件所有者的可執行權限
+x :等同于a+x
u+x, go=rx :為文件所有者添加可執行權限,同時設置所屬群組及其他所有用戶具有度權限和可執行權限;指定多種權限時,需要用逗號分隔
更改身份
su :以另一個身份運行shell
基本格式 :su [-[l]] [用戶名]
注意事項 :
如果包含-l選項,則該指定用戶的運行環境將被加載,且其工作目錄也將更改為該指定用戶的主目錄,而這也常常是我們所需要的
如果未指定用戶,則將默認假定為超級用戶root
-l 可簡寫為 - ,且這一形式常常被使用,如 su -
使用su進行身份切換時,需要輸入該用戶的密碼
sudo :以另一個身份(通常是超級用戶)執行命令
基本格式 :sudo [命令]
注意事項 :
不需要輸入超級用戶的密碼,只需要輸自己的密碼來進行驗證
chown :更改文件所有者和所屬群組
基本格式 :chown [新的所有者] [:新的所屬群組]
更改用戶密碼
基本格式 :passwd [用戶名]
注意事項 :
如果要更改的是自己的密碼,則不需要輸入用戶名
用戶管理
組與用戶的創建與刪除 :
添加新的組 :groupadd [選項] 組名
刪除一個組 :groupdel [選項] 組名
添加一個用戶 :useradd [選項] 用戶名
-m :自動建立用戶家目錄;創建用戶時最好加上這個
-g 組名 :指定用戶所在的組。否則會建立一個與用戶同名的組;如 useradd -m -g 組名 用戶名
刪除一個用戶 :userdel [選項] 用戶名
-r :把用戶家目錄一并刪除
組內成員變動 :gpasswd [選項] 用戶名 組名
-a 將用戶添加到組中
-d 將用戶從組中刪除
useradd 與 adduser :
使用useradd進行創建后,需要手動再去為這個用戶設置密碼,分配權限等等,仿佛創建的是一個”三無“用戶,實際操作起來會比較繁瑣;所以我們可以直接用adduser [用戶名]進行創建,它會在創建過程中就提示我們設置密碼,且創建成功后的用戶享有一般普通用戶的所有權限,使用起來會方便一些。
進程管理
查看進程的運行情況 :ps
常用的比如說 :
ps aux :顯示系統中所有進程并顯示進程用戶(如果在BSD風格選項前面加上"-",則會出現警示信息)
ps -ef :顯示進程詳細信息并顯示進程父子關系
ps -ef | grep java :篩選出所有特定進程,這里是java
pstree :顯示當前系統的進程樹
ps x :顯示所有進程,不以終端來區分
信號的發送(但其實多用來結束進程) :kill
一種是配合 ps -ef |grep xxx 使用 :
ps -ef | grep xxx 找出 xxx 所在進程的 pid
kill -s 9 pid 結束進程
注 :"9"表示傳遞給進程的信號是9,即強制、盡快終止進程
還可以直接使用 pkill 或 killall,通過進程名結束進程
pkill -9 xxx,給出進程名的一部分就可以終止相關的全部進程
killall -9 xxx,不過這個需要給出完成的進程名,否則會報錯
進程的前后臺切換
后臺運行 :&
在linux終端運行命令的時候,在命令末尾加上 & 符號,就可以讓程序在后臺運行
比如說 xlogo &,就可以讓這個窗口轉到后臺執行
切換正在運行的程序到后臺 :bg
如果程序正在前臺運行,可以使用Ctrl+Z把程序暫停
然后通過 bg %[作業編號] 將這個程序放到后臺運行
切換正在運行的程序到前臺 :fg
操作方式和 bg 基本一致
查看后臺運行的程序 :jobs -l
通過這個可以很方便地查到作業編號
網絡與通訊相關
網絡的檢查與監測
ping :向網絡主機發送特殊數據包,可以以此檢測網絡連接是否正常
traceroute :跟蹤網絡數據包的傳輸路徑
注 :其中,對于那些因為路由器配置、網絡堵塞或是防火墻等原因不提供身份信息的路由器,則直接用***表示
netstat :檢查網絡設置以及相關統計數據
netstat -ie :檢查系統中的網絡接口信息
與遠程主機的安全通信
登錄遠程計主機 :ssh
基本格式 :ssh 用戶名@IP地址 (-p 端口號)
linux -> linux 文件傳輸 :
本地 -> 遠程 :scp [本地路徑] [遠程用戶名]@[遠程IP地址]:/[存儲路徑]
遠程 -> 本地 :scp [遠程用戶名]@[遠程IP地址]:/[文件路徑] [本地存儲路徑]
注意如果要傳目錄的話,需要加上 -r
linux -> windows 文件傳輸 :
scp [inux下文件路徑] [用戶名]@[indows所在IP地址]:/[indows下文件的存儲路徑]
windows -> linux 文件傳輸 :
scp [用戶名]@[indows所在IP地址]:/[indows下文件路徑] [inux下文件的存儲路徑]
歸檔與備份
壓縮與解壓縮
zip文件 :
壓縮 :zip [壓縮文件名] [源文件]
注意壓縮目錄的話要加-r
壓縮后源文件將保留
解壓 :unzip [壓縮文件]
解壓目錄的時候直接解壓就好啦,不用加-r
解壓后源文件將保留
gz文件 :
壓縮 :gzip [源文件]
壓縮目錄需要加-r,但是加了也不會將目錄整個壓縮成一個文件,而是將目錄中的各個文件單獨壓縮
壓縮后源文件將消失
解壓 :gzip -d [壓縮文件]
也可以和zip一樣,用 gunzip [壓縮文件] 解壓
對目錄解壓的時候需要加-r
解壓后源文件將消失
bzip2文件 :
壓縮 :bzip2 [源文件]
如果需要保留源文件,可以加上 -k
bzip2命令不能壓縮目錄
該算法具有高質量的數據壓縮能力,但降低了壓縮速度
壓縮后的文件名以.bz2結尾
解壓 :bunzip2 / bzip2 -d [壓縮文件]
同樣,加上 -k 會保留源文件
tar-文件的歸檔 :
原理 :把目錄打包成.tar格式,再壓縮成 .gz/.bz2結尾
.tar.gz的壓縮與解壓縮 :
壓縮 :tar -zcvf [壓縮包名] [源文件]
解壓縮 :tar -zxvf [壓縮包名]
.tar.bz2的壓縮與解壓縮 :
壓縮 :tar -jcvf [壓縮包名] [源文件]
解壓縮 :tar -jxvf [壓縮包名]
存儲介質
磁盤的掛載與卸載
帶圖形界面的linux系統能夠實現U盤的自動掛載,但純命令行界面的就需要使用mount命令進行手動掛載。
掛載時首先使用 fdisk -l 查看系統的磁盤列表,然后插入U盤,再查看一下;多出來的那個磁盤就是我們要掛載的U盤,記住它的設備名;
建立一個目錄作為掛載點(一般會在 /mnt 下建立),然后就可以用mount進行掛載啦 :mount [設備名] [剛剛建立的目錄];
使用cd命令進入剛剛建立的那個目錄,然后輸入ls就可以查看U盤中的信息了。
U盤使用完畢之后,為了避免損壞U盤或丟失數據,需要使用 unmount [設備名] 進行卸載;記得卸載前要先退出掛載點所在的目錄。
其他的碰到了再補充
總結
以上是生活随笔為你收集整理的linux命令老是忘记,Linux可能会忘记的命令整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux if 判断文件数量,linu
- 下一篇: linux 其他常用命令