Linux命令(長期)

語言: CN / TW / HK

常用命令

cd ~user1 進入個人的主目錄 
cd - 返回上次所在的目錄 
pwd 顯示工作路徑 
ls -F 檢視目錄中的檔案 
ls -l 顯示檔案和目錄的詳細資料 
ls -a 顯示隱藏檔案 
ls *[0-9]* 顯示包含數字的檔名和目錄名 
tree 顯示檔案和目錄由根目錄開始的樹形結構
lstree 顯示檔案和目錄由根目錄開始的樹形結構
mkdir -p /tmp/dir1/dir2 遞迴建立資料夾
rm -f file1 刪除一個叫做 'file1' 的檔案' 
rmdir dir1 刪除一個叫做 'dir1' 的目錄' 
rm -rf dir1 刪除一個叫做 'dir1' 的目錄並同時刪除其內容 
rm -rf dir1 dir2 同時刪除兩個目錄及它們的內容 
mv dir1 new_dir 重新命名/移動 一個目錄 
cp file1 file2 複製一個檔案 
cp dir/* . 複製一個目錄下的所有檔案到當前工作目錄 
cp -a /tmp/dir1 . 複製一個目錄到當前工作目錄 
cp -a dir1 dir2 複製一個目錄 
cp -r dir1 dir2 複製一個目錄及子目錄(遞迴)
ln -s 源連結 目標連結 建立一個指向檔案或目錄的軟連結 (不可以相對路徑)
ln file1 lnk1 建立一個指向檔案或目錄的物理連結 
find / -name file1 從 '/' 開始進入根檔案系統搜尋檔案和目錄 
whereis halt 顯示一個二進位制檔案、原始碼或man的位置 
which halt 顯示一個二進位制檔案或可執行檔案的完整路徑 
groupadd group_name 建立一個新使用者組 
groupdel group_name 刪除一個使用者組 
groupmod -n new_group_name old_group_name 重新命名一個使用者組 
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 建立一個屬於 "admin" 使用者組的使用者 
useradd user1 建立一個新使用者 
userdel -r user1 刪除一個使用者 ( '-r' 排除主目錄) 
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改使用者屬性 
passwd 修改口令 
passwd user1 修改一個使用者的口令 (只允許root執行) 
ls -lh 顯示許可權 
netstat -anp |grep 埠號  檢視某個埠是否被佔用
grep -rn "xxx" a/* b/* c/app.js  查詢資料夾下包含"xxx"的所有檔案記錄(*表示當前目錄所有檔案,也可以是某個檔名)

windows可適用--查詢端口占用

netstat -ano|findstr "80"
tasklist|findstr "4"
netsh http show servicestate

其他

  1. 檢視記憶體使用率
  • free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}'
  1. 防火牆
  • 開啟埠:firewall-cmd --permanent --zone=public --add-port=3306/tcp
  • 重新整理:firewall-cmd --reload
  1. lsattr filename(檢視許可權)
  2. chattr -i(+i)剔除限制

檢視所有的jobs的磁碟佔用情況。

  • du -ah --max-depth=1

檢視磁碟空間使用情況

  • df -hT

檢視是哪個檔案佔得空間比較大

  • du --max-depth=1 -h /

記錄一次錯誤:Insufficient space for shared memory file

  • 解決:臨時檔案目錄(/tmp)下的空間不夠了,df -h

檢視究竟是哪個檔案佔用太多

  • du --max-depth=1 -h /

Linux下使用curl命令訪問https

systemctl檢視當前已安裝服務(取代chkconfig)

命令 說明
systemctl 列出所有的系統服務
systemctl list-units 列出所有啟動unit
systemctl list-unit-files 列出所有啟動檔案
systemctl list-units –type=service –all 列出所有service型別的unit
systemctl list-units –type=service –all grep cpu 列出 cpu電源管理機制的服務
systemctl list-units –type=target –all 列出所有target
systemctl list-unit-files 列出所有的系統服務
systemctl is-active [unit type] 檢視服務是否執行
systemctl is-enable [unit type] 檢視服務是否設定為開機啟動
systemctl mask [unit type] 登出指定服務
systemctl unmask [unit type] 取消登出指定服務

buff/cache記憶體佔用過多(定時任務,指令碼)

  • 找一個目錄,然後建立指令碼檔案--touch cleanCache.sh
  • 用vi編輯--vi cleanCache.sh
  • 新增如下內容
#!/bin/bash
#每天0點清除一次快取
echo "開始清理快取"
sync;sync;sync #寫入硬碟,防止資料丟失
sleep 10 #延遲10秒
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
echo "清理結束"
  • 通過如下命令測試指令碼是否正常執行 chmod 777 cleanCache.sh ./cleanCache.sh
  • 下面開始設定自動定期清理,輸入如下命令,開啟配置檔案--crontab -e
  • 在末尾新增如下內容:(每天0點的時候執行一次,可以按需更改)
    • 0 * * * ./路徑/cleanCache.sh
  • 然後輸入如下指令可以檢視是否成功--crontab -l

阿里雲伺服器啟用虛擬記憶體

阿里雲伺服器預設沒有開啟虛擬記憶體,經常遇到軟體記憶體不足,執行崩潰的情況。 1、建立虛擬記憶體磁碟卷

# 大概count=2024288,2G左右,可以視磁碟大小和需求建立。
# 預設存放在/swap/swapadd,可以是自己的任何目錄。阿里雲伺服器預設沒有swap,需要自己mkdir /swap建立。
dd if=/dev/zero of=/swap/swapadd bs=1024 count=2024288

2、將磁碟卷轉為虛擬記憶體卷

mkswap /swap/swapadd

3、啟用虛擬記憶體服務

swapon /swap/swapadd
free -h

4、關閉虛擬記憶體服務

swapoff -v /swap/swapadd

5.移動虛擬記憶體空間

如果當前的虛存所在的磁碟空間不夠,可以首先關閉虛存服務,將其移動到別的磁碟,再啟用即可。
swapoff -v /swap/swapadd
mv /swap/swapadd /mnt/swap
swapon /swap/swapadd