來實驗室將近一個月,幾乎沒碰window,一直在ubuntu下開發,然後想總結一下最近常用的linux指令。 ...
來實驗室將近一個月,幾乎沒碰window,一直在ubuntu下開發,然後想總結一下最近常用的linux指令。
(0) su和sudo:得到root許可權
su 切換到root用戶 sudo command 切換到root用戶,執行command,然後切換回當前用戶 su liaohuqiang 切換回普通用戶
(1) apt:用於安裝軟體包
apt list 根據名稱列出軟體包 apt show 顯示軟體包細節 sudo apt install 安裝軟體包 sudo apt remove 卸載軟體包 sudo apt-get check 檢查依賴 sudo apt update 更新可用軟體包列表 sudo apt upgrade 通過安裝/升級軟體來更新系統
(2) pip:用於安裝python模塊(不是linux里的預設指令,需自行安裝sudo apt install pip)
pip install 安裝包 pip uninstall 卸載包 pip list 列出已安裝的包 pip show 展示已安裝包的信息 pip check 檢查依賴 pip --version 顯示pip版本和位置 pip help 查看幫助 pip help install 查看install指令的相關option介紹
(3) ssh和scp:主機間通信
ssh username@ip 登錄到遠程主機 scp local_file username@ip:remote_directory 複製本地文件到遠程主機 scp -r local_directory username@ip:remote_directory 複製本地文件夾到遠程主機
(4) 壓縮和解壓:zip, unzip, tar
zip -r target.zip . 把當前目錄以及目錄下的子文件夾全部壓縮 zip target.zip 壓縮當前目錄,如果有文件夾則不會壓縮進去(因為沒有加-r) unzip source.zip -d 'folder' 解壓到folder目錄下 unzip source.zip 解壓到當前目錄下 tar -zcvf target.tar.gz sorceFoler c代表打包,z代表用gzip來壓縮/解壓,v詳細報告處理信息,f必選並且後帶文件名 tar -zxvf source.tar.gz -C 'folder' 解壓到folder目錄下,,其中z代表gzip屬性的,x代表解壓,v代表解壓時輸出相關信息,f必須有並且放最後並且後帶文件名。 tar -xvf source.tar.gz 試了一下,少了個z也可以,效果同上
(5) 查看磁碟的存儲占用:du;查看文件系統的存儲占用:df。
du -s或--summarize 僅顯示總計,只列出最後加總的值。 du -h 以K,M,G為單位,提高信息的可讀性。 df -h 以K,M,G為單位,提高信息的可讀性。 df -T x顯示文件系統類型
(6) 查找命令
6.1 which 在PATH變數指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。
6.2 whereis 只能用於程式名的搜索,而且只搜索二進位文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。
6.3 locate 配合資料庫查看文件位置。linux會將系統內所有文件記錄在一個資料庫文件中,但是該資料庫並不是實時更新。
6.4 find 實際搜尋硬碟查詢文件名稱。
find . -name '*.conf' 當前目錄查找擴展名為.conf的文件 updatedb 更新資料庫 locate 字元串 快速查找系統資料庫中指定的內容
whereis python
which python
(7) 文件許可權
chmod [ugoa][+-=][rwx] 文件名或路徑 改變指定目錄或文件的許可權
u代表該文件所有者,g代表該文件所有者的同組用戶,o代表其它 +代表增加許可權,-代表取消許可權,=代表唯一設定許可權 r可讀,w可寫,x可執行 chmod u+x test 該文件所有者增加可執行的許可權 用數字表示,規定r=4, w=2, x=1, chmod 777 test 三種用戶都賦予可讀可寫可執行的許可權 chown 用戶名[:組名] 文件名或目錄 改變指定目錄或文件的所屬用戶
(8) 文件和文本操作
grep str /tmp/test 在文件/tmp/test中查找str grep ^str /tmp/test 在文件/tmp/test中查找以str開始的行 ls -ld */ 顯示當前目錄的所有目錄文件 ls -l | grep '^d' 顯示當前目錄的所有目錄文件 wc -l 統計文件行數 wc -w 統計單詞數量 ls -l | wc -l 統計當前目前的文件數量,註意要減去“總用量”那一行 cp -a dir1 dir2 複製目錄 mv dir1 dir2 移動/重命名目錄 mkdir -p /tmp/dir1/dir2 創建一個目錄樹 rm -f file1 刪除文件 rm -rf dir1 刪除目錄
(9) 進程
ps -e 顯示所有進程 ps -f 全格式顯示進程 ps -u 'liaohuqiang' | grep 'tmux' 顯示指定用戶執行的進程,並匹配出包含'tmux'的那一行進程 kill -2 pid 類似ctrl+C,在程式結束之前能夠保存相關數據,再退出 kill -9 pid 直接強制結束進程 top 動態顯示進程信息 top -i 不顯示任何閑置或無用的進程 k 殺死某進程 n 改變顯示的進程數量 u 顯示指定用戶 P 按CPU使用情況排序 q 退出
(10) 網路
netstat 顯示網路情況 netstat -a 列出所有埠 netstat -l 只顯示監聽埠 netstat -t 列出所有tcp埠 netstat -p 顯示使用該埠的pid和程式名稱 netstat -n 直接使用ip地址,不通過功能變數名稱伺服器 找出程式運行的埠:netstat -anp | grep ssh 找出運行在指定埠的進程:netstat -anp | grep ':80' ifconfig 查看網卡信息
(11) 其它
date 顯示時間 whoami 顯示當前用戶名 who 目前登錄系統的用戶信息
curl 'url' -O --progress 下載文件,-O代表保存文件(如果沒有則輸出到屏幕), --progress表示會顯示進度條
(curl不是linux的預設自行,需自行安裝apt install curl)
以上只是我最近常用到的一些指令。
最後推薦一個linux指令學習和速查的網站:http://man.linuxde.net/