總結一下常用的linux指令。
mark一個linux指令學習和速查的網站:http://man.linuxde.net/
(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 通過安裝/升級軟件來更新系統 dpkg -i xxx.deb 運行deb程序進行安裝 sudo apt-get -f install 修復依賴
(2) pip:用於安裝python模塊(不是linux里的默認指令,需自行安裝sudo apt install pip)
pip install 安裝包 pip uninstall 卸載包 pip search 搜索能安裝的包 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 復制本地文件夾到遠程主機 sudo ufw disable #關閉防火牆 sudo ufw enable #開啟防火牆 sudo apt-get install vsftpd # 安裝和啟動sftp service vsftpd start
(4) 壓縮和解壓:zip, unzip, tar, rar, unrar, 7z
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也可以,效果同上 tar -jxvf source.tar.bz2 rar a -r test.rar source/ 將source文件夾的內容壓縮到test.rar中 unrar x ../test.rar 解壓父目錄中的test.rar到當前目錄 apt-get install p7zip-full 7z x file
(5) 查看磁盤的存儲占用:du;查看文件系統的存儲占用:df。
du -s或--summarize 僅顯示總計,只列出最后加總的值。 du -c 除了顯示個別文件或目錄的大小外,還顯示一行目錄和文件的總和大小 du -h 以K,M,G為單位,提高信息的可讀性。 du --max-depth=1 查看當前目錄所有(一級)文件的大小 對於-c和-s稍微區分一下 du -sh *.mkv 顯示每個mkv文件的大小 du -csh *.mkv 除了顯示每個mkv文件的大小,還顯示總和,這里的s加不加都行,因為只顯示普通文件 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 -R 用戶名[:組名] 文件名或目錄 改變指定目錄或文件的所屬用戶,-R代表遞歸地改變目錄下的所有文件
(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 刪除目錄 ln -s /real_file /soft_link 創建軟鏈接
(9) 進程
ps -e 顯示所有進程 ps -f 全格式顯示進程 ps -u 'liaohuqiang' | grep 'tmux' 顯示指定用戶執行的進程,並匹配出包含'tmux'的那一行進程 ps -ef | grep 'python' | grep -v grep 把grep命令排除掉 ps -ef | grep 'python' | grep -v grep | awk '{print $2}' 提取進程號 kill -2 pid 類似ctrl+C,在程序結束之前能夠保存相關數據,再退出 kill -9 pid 直接強制結束進程 reboot 重啟 shutdown -r now 立刻重啟 shutdown -r 30 30分鍾后重啟 shutdown -r 23:00 晚上11點重啟 halt 立刻關機 poweroff 立刻關機 shutdown -h now 立刻關機 shutdown -h 30 30分鍾后關機 shutdown -c 取消shutdwon的重啟或關機
command & 使指令成為后台任務 nohup 不掛斷地運行命令,通常和&一起用,輸出將附加到目錄的nohup.out jobs -l 列出任務列表,l表示顯示進程號(只查看當前終端的,關閉終端后無法看到) fg 把最近一個job切換到前台 fg n 把某個job切換到前台 ctrl z 掛起某個前台進程 bg 把作業放到后台運行 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) 查看電腦配置
free -m # 查看內存使用情況 df # 查看磁盤使用情況 cat /proc/cpuinfo # 查看cpu信息 lspci | grep VGA # 查看顯卡 nvidia-smi # 查看英偉達系列顯卡的使用情況 nvidia-smi -L # 查看顯卡型號 watch -n 1 -d nvidia-smi # 實時監控nvidia-smi,每隔一秒刷新一次,d表示高亮 cat /proc/driver/nvidia/version # 查看顯卡驅動 cat /etc/issue # 查看ubuntu版本
(12) 其它
date 顯示時間 whoami 顯示當前用戶名 who 目前登錄系統的用戶信息 curl 'url' -O --progress 下載文件,-O代表保存文件(如果沒有則輸出到屏幕), --progress表示會顯示進度條 (curl不是linux的默認自行,需自行安裝apt install curl) echo $SHELL 查看系統使用的是哪種shell echo $PATH 查看環境變量 xdg-open filename 用默認應用程序打開文件 python run_generation.py | tee vggTrainResult 重定向到文件 cat /usr/local/cuda/version.txt 查看cuda版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 查看cudnn版本
