前言,雖然工作中經常使用到linux到很少整理過使用到的指令,這裡加深印象就整理一下
一.檔案處理
linux系統中一切都為檔案,先看看關于檔案的
1.ls
ll 或 ls -l 下面各列所表示的含義 其他可選參數 -a 顯示所有檔案,包含隐藏檔案 -d 檢視目錄屬性 -h 人性化 -i 顯示inode
-rw-r--r--. 1 root root 291385040 Feb 7 18:59 my.log
- | rw- | r-- | r-- | . | 1 | root | root | 291385040 | Feb 7 18:59 | my.log |
檔案類型 -檔案 d目錄 l軟連接配接 塊裝置檔案等... | 所有者使用者權限 r 度 4 w 寫 2 x 執行 1 | 組權限 | 其他組使用者權限 | ACL權限 | 引用個數 | 擁有者 | 所在組 | 檔案大小 | 修改日期 | 檔案名 |
2.建立目錄
mkdir -p aa/bb遞歸建立
3.切換目錄
cd ./表示目前目錄 ../上級目錄 - 傳回上次的目錄 ~目前使用者的家目錄
4.顯示目前目錄
pwd
5.删除目錄
rmdir 隻能删除空目錄 rm -rf 遞歸強制删除 慎用 特别是rm -rf /
6.拷貝
cp 源檔案 目标檔案或目錄 -r 複制目錄 預設日期屬性會變換 -a 檔案屬性保持不變
7. 剪切或改名
mv 源檔案 目标檔案
8.常見目錄作用
boot 系統挂載目錄
9.連結指令
軟連結 硬連結 硬連結檔案引用計數會增加 inode節點一樣
ln 源檔案 目标檔案 建立硬連結 不能操作檔案夾
ln -s 源檔案 目标檔案 建立軟連結
二、檔案搜尋指令
1.locate指令
locate 檔案名 這個是基于資料庫搜尋的,但這個指令不一定有,需手動安裝sudo yum install mlocate
sudo updatedb 初始化資料庫
可自定義建立資料庫搜尋規則 /etc/updatedb.conf
2.whereis指令
搜尋系統指令的可執行的位置 which與whereis ,which看到指令的别名 ,linux指令是在PATH中搜尋
3.find指令
find [搜尋範圍] [搜尋條件]
linux中的通配符 *比對任意内容 ?比對任意一個字元 [] 比對任意一個中括号内對的字元
4.grep指令
在檔案中搜尋字元串
三、幫助指令
1.man 指令
2.指令本身 --help
3.help shell内部指令
4.info指令 巨大的幫助文檔
四、壓縮指令
zip 将生成的壓縮檔案名 源檔案或問價夾 -r 壓縮檔案夾 unzip 解壓 .zip
gzip 預設不保留源檔案 ,不能壓縮目錄 .gz
bzip2 預設不保留源檔案 ,不能壓縮目錄 .bz2
tar 打包 tar -cvf c 表示打包 v顯示過程 f 檔案名 x為解包 z為gz格式 j為bz2格式 -C指定解壓目錄
五、關機與重新開機指令
重新開機 reboot ,init 6 對于init可以用runlevel檢視目前init的level 配置檔案/etc/inittab,不過現在不用了
inittab is no longer used when using systemd
關機 init 0,powerof ,halt
重新開機與關機 shutdown -r now 重新開機 shutdown -c 取消上次關機 -h 關機 推薦的關機重新開機方式
退出登入 logout
六、挂載指令
挂載指令 mount 相關配置檔案/etc/fstab mount -a 将這個檔案中的配置都自動挂載 -t指定檔案格式
取消挂載 umout 加裝置名或挂載點
七、檢視使用者登入資訊
w 檢視所用使用者登入情況,包括cup占用情況等
who 簡要檢視所有使用者登入情況
last 所有使用者記錄
lastlog 所有使用者最後一次登入記錄
八、其他常用指令
ps -ef | grep xxxx| grep -v grep | awk '{print $2}' | xargs kill -9 殺掉某些程序
uname -a 檢視系統和發行版本
cat /proc/version 檢視系統和發行版本
cat /etc/os-release 檢視系統和發行版本
rpm -q centos-release (centos 用) 常看以安裝軟體的版本
make 手動編譯
make install 手動安裝
curl 測試通路的服務 例如
curl http://10.150.29.175:8322/team-data/followed -X POST -H "Content-type: application/json" -d '["222129130","222129131"]'
netstat -tnulp | grep xxx和ps aux | grep XXX 檢視端口的使用情況
df -lh 檢視磁盤使用情況
du -sh /xxx/xx 檢視某個檔案夾或檔案的大小
free -h 檢視記憶體使用情況
cat /etc/passwd 常看所有的使用者群組 依次為 使用者名:密碼:使用者id:組id:備注:使用者家目錄 shell指令所在的目錄
查找檔案指令 find which whereis
top 檢視程序記憶體使用情況
ps -ef | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9 批量殺死xxx相關的程序
解釋一下ps -ef 之後各清單示的含義
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4UDO0MjN1kDM1EzMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
列一 程序使用者id root
列二 程序id 12134
列三 父程序id 10651
列四 cpu調用情況,CPU用于計算執行優先級的因子 0
列五 程序的啟動時間 09:56
列六 啟動程序的終端名 pts/2
列七 程序共占用CPU的時間(TIME) 00:00:00
列八 啟動程序的指令 grep --color=auto mongo
建立檔案夾 多級 mkdir -p aaa/bbb/ccc
nohup java -jar app_data-0.0.1-SNAPSHOT.jar & nohup 即終端關閉也繼續執行,&終端不變的情況下背景運作,
檢視端口使用情況 netstat -tunlp |grep 8000
- -t (tcp) 僅顯示tcp相關選項
- -u (udp)僅顯示udp相關選項
- -n 拒絕顯示别名,能顯示數字的全部轉化為數字
- -l 僅列出在Listen(監聽)的服務狀态
- -p 顯示建立相關連結的程式名