Linux平臺常用命令

用戶和權限管理

  • 普通用戶切換到超級用戶 sudo su
  • 超級用戶切換到普通用戶 su userName
  • 修改用戶密碼 sudo passwd userName
  • 刪除用戶 userdel userName
  • 查看所有用戶 cat /usr/passwd

  • 添加用戶 useradd -m test
  • 刪除用戶並刪除目錄 userdel -r test
  • 查看當前系統用戶 who
  • 設置用戶密碼 passwd test

  • 創建用戶組 groupadd adm
  • 刪除用戶組 groupdel adm
  • 查看用戶組 cat /etc/group

  • 添加用戶A並屬於用戶組A useradd -d /home/A A -m
  • 添加用戶B並屬於用戶組C useradd -d /home/B B -g C -m
  • 修改用戶所在組 usermod -g groupName userName
  • 查看用戶所在的組 groups userName
  • 爲新創建的用戶添加sudo權限
- sudo usermod -a -G adm userName
- sudo usermod -G sudo userName

目錄和文件操作

  • 顯示當前目錄文件 ls
  • 顯示當前目錄所有文件詳情 ls -alh
  • 顯示當前路徑 pwd
  • 進入根目錄 cd /
  • 進入家目錄 cd ~
  • 回退 cd ..

  • 創建目錄 mkdir dirName
  • 刪除目錄 rm -rf fileName
  • 複製目錄或文件 cp -a fileName fileName1
  • 剪切目錄或文件 mv -i fileName path
  • 重命名目錄或文件 mv oldName newName

  • 創建文件 touch fileName
  • 編輯文件vi fileName
  • 查看文件 cat fileName
  • 合併文件 cat file1 file2 > file

  • 查看文件權限 ls -l fileName
  • 查看文件夾權限 ls -ld folderName
  • 修改文件及文件夾權限 sudo chmod -(代表類型)×××(所有者)×××(組用戶)×××(其他用戶)
  • sudo chmod 600 file(只有所有者有讀和寫的權限)
  • sudo chmod 644 file (所有者有讀和寫的權限,組用戶只有讀的權限)
  • sudo chmod 700 file (只有所有者有讀和寫以及執行的權限)
  • sudo chmod 666 file (每個人都有讀和寫的權限)
  • sudo chmod 777 file (每個人都有讀和寫以及執行的權限)
  • sudo chown username fileName (修改文件所有者)
  • sudo chgrp userName fileName (修改文件所屬組)

  • 創建軟連接 ln -s rootLocation targetLocation
  • 解壓文件(tar格式) tar -zxvf file.tar -C /usr/local/bin或者tar -xvf file.tar
  • 壓縮文件(tar格式) tar -zcvf afterName.tar beforeName
  • 解壓文件(tar.gz格式) tar -zxvf file.tar.gz -C /usr/local/bin或者tar -xvf file.tar.gz
  • 壓縮文件(tar.gz格式) tar -zcvf afterName.tar.gz beforeName

  • 在文件中搜索文本: grep -n '^a' test.txt(在test.txt中搜索以a開頭的文本)
  • 在文件中搜索文本: grep -n 'b$' test.txt(在test.txt中搜索以b結尾的文本)
  • 在文件中搜索文本: grep -n '.c.' test.txt(在test.txt中搜索包含c的文本)
  • 在目錄中查找文件或目錄: find ./ -name '*.png'(在當前目錄查找所有的png格式的文件)
  • 在目錄中查找文件或目錄: find /tmp -size +4M -size -5M '*.png'(在tmp目錄下查找大於4M小於5M的文件)
  • 在目錄中查找文件或目錄: find ./ -perm 0777 (在當前目錄下查找權限爲777的文件)

系統相關

  • top:查看內存、cup、進程
// 參數
d:指定更新的間隔,以秒計算。
q:沒有任何延遲的更新。如果使用者有超級用戶,則top命令將會以最高的優先序執行。
c:顯示進程完整的路徑與名稱。
S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。
s:安全模式。
i:不顯示任何閒置(Idle)或無用(Zombie)的行程。
n:顯示更新的次數,完成後將會退出to
// 顯示參數含義:
PID(Process ID):進程標示號。
USER:進程所有者的用戶名。
PR:進程的優先級別。
NI:進程的優先級別數值。
VIRT:進程佔用的虛擬內存值。
RES:進程佔用的物理內存值。
SHR:進程使用的共享內存值。
S:進程的狀態,其中S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值是負數。
%CPU:該進程佔用的CPU使用率。
%MEM:該進程佔用的物理內存和總內存的百分比。
TIME+:該進程啓動後佔用的總的CPU時間。
Command:進程啓動的啓動命令名稱,如果這一行顯示不下,進程會有一個完整的命令行。
// 後續指令:
空格:立刻刷新。
P:根據CPU使用大小進行排序。
T:根據時間、累計時間排序。
q:退出top命令。
m:切換顯示內存信息。
t:切換顯示進程和CPU狀態信息。
c:切換顯示命令名稱和完整命令行。
M:根據使用內存大小進行排序。
W:將當前設置寫入~/.toprc文件中。這是寫top配置文件的推薦方法。
  • free:顯示內存使用情況
  • uptime:系統開機到現在使用的時間
  • vmstat:磁盤和cup活動情況
  • iostat:統計CPU的使用情況及tty設備、硬盤和CD-ROM的I/O量

  • 查看端口占用情況:lsof -i:3000
  • 殺進程:kill -9 進程pid
  • 開放某一端口訪問權限:sudo ufw allow 3306

安裝、卸載、更新

1.安裝

  • 查詢所有版本:apt-cache madison packageName
  • 安裝特定版本:apt-get install packageName=version
  • 查詢所有源的軟件版本(詳細信息):apt-cache policy packageName
  • 搜索包顯示相關信息:apt-cache search packageName
  • 獲取包相關信息:apt-cache show packageName

2.更新

  • 更新源:sudo apt-get update
  • 更新已安裝的包:sudo apt-get upgrade

3.卸載

  • 卸載並且刪除相關配置:apt-get purge packageName
  • 卸載但不刪除配置:apt-get remove packageName
  • 刪除包:sudo apt-get remove packageName

4.其他

  • 安裝特定版本的nodejs
    1. curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    2. apt-get install nodejs
  • 將ubuntu圖標移動到底部
    • gsettings set com.canonical.Unity.Launcher launcher-position Bottom
  • npm 安裝不同版本的包
    npm install sax@latest
    npm install [email protected]
    npm install sax@">=0.1.0 <0.2.0"
    

上傳

1. 上傳文件到服務器

  • 上傳文件
# scp 本地文件 用戶名@ip:服務器目錄
scp /root/demo/index.html [email protected] /root/opt
  • 上傳文件夾
# scp -r 本地目錄 用戶名@ip服務器目錄
scp -r /root/demo [email protected] /root/opt

vi編輯器相關

1.進入輸入模式

  • i:在當前光標所在處前插入文本;
  • I:將光標移動到當前行的行首,並在行首前插入文本;
  • a:在當前光標所在處之後插入文本;
  • A:將光標移動到當前行的行末,並在行末之後插入文本;
  • o:在光標所在行的下面新插入一行,並將光標移動到新行的行首插入文本;
  • O:在光標所在行的上面新插入一行,並將光標移動到新行的行首插入文本;

2.光標移動

  • h或者左方向鍵:將光標向左移動一格;
  • j或者下方向鍵:將光標向下移動一格;
  • k或者上方向鍵:將光標向上移動一格;
  • l或者右方向鍵:將光標向右移動一格;
  • $:移動光標到當前行的行末;
  • 數字0:移動光標到當前行的行首;
  • w:移動光標到下個字的開頭;
  • e:移動光標到下個字的字尾;
  • b:移動光標回上個字的開頭;
  • nl:在當前行中往右移動n個字符,如:2l、34l;
  • crtl+b:屏幕往上翻一頁;
  • crtl+f:屏幕往下翻一頁;
  • crtl+u:屏幕往上翻半頁;
  • crtl+d:屏幕往下翻半頁;
  • lG:移動光標到文件的第一行;
  • G:移動光標到文件的最後一行。
  • gg:移動光標到第一行

3.文本編輯

  • r:替換光標所在處的字符;
  • R:替換光標所到之處的字符,直到按ESC鍵爲止;
  • J:把光標所在行的下一行內容接到當前行的行末;
  • x:刪除光標所在位置的字符;
  • nx:刪除光標所在位置開始的n個字符,如3x刪除3個字符;
  • X:刪除光標所在位置的前一個字符;
  • nX:刪除光標所在位置的前n個字符;
  • dw:刪除光標所處位置的單詞;
  • ndw:刪除由光標所處位置之前的n個單詞;
  • db:刪除光標所處位置之前的一個單詞;
  • ndb:刪除光標所處位置之前的n個單詞;
  • dd:刪除光標所在的行;
  • ndd:刪除光標所在行開始的n行;
  • d0:刪除由光標所在行的第一個字符到光標所在位置的前一個字符之間的內容;
  • d$:刪除由光標所在位置到光標所在行的最後一個字符之間的內容;
  • dlG:刪除由文件第一行到光標所在行之間的內容;
  • dG:刪除由光標所在行到文件最後一行之間的內容;
  • u:撤銷更改的內容;
  • ctrl+u:撤銷在輸入模式下輸入的內容。

4.複製粘貼

  • yw:複製光標所在位置到單詞末尾之間的字符;
  • nyw:複製光標所在位置之後的n個單詞;
  • yy:複製光標所在行;
  • nyy:複製由光標所在行開始的n行;
  • p:將複製的內容粘貼到光標所在位置。

5.查找與替換

  • /str:從光標位置開始往文件末尾查找str,按n查找下一個,按N返回上一個;
  • ?str:從光標位置開始往文件開頭查找str,按n查找下一個,按N返回上一個;
  • :s/p1/p2/g:將光標所處行中所有p1均用p2替代;
  • :n1,n2s/p1/p2/g:將第n1到n2行中所有p1均用p2替代;
  • :g/p1/s//p2/g:將文件中所有p1均用p2替換

6.末行模式命令

  • w:保存當前文件;
  • w!:強制保存;
  • w file:將當前編輯的內容寫到文件file中;
  • q:退出vi;
  • q!:不保存文件退出vi;
  • e file:打開並編輯文件file,如果文件不存在則創建一個新文件;
  • r file:把文件file的內容添加到當前編輯的文件中;
  • n:移動光標到第n行;
  • !command:執行Shell命令command
  • r!command:將命令command的輸出結果添加到當前行。
  • ZZ:保存修改並退出vi

7.其它

  • :set nu指設置行號;
  • :set nonu指取消行號;
  • :n指移動光標到第n行;
  • :n1,n2d指刪除指定範圍的行;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章