Linux 常用命令
ls 顯示目錄
ls + 目錄/正則表達式
-l == ll 列表顯示
-a 顯示出隱藏文件
-h 顯示文件大小(不能單獨使用)
cd 切換目錄
. 當前目錄
.. 上一級目錄
../.. 上上級目錄
- 上一次目錄
~ 用戶目錄
pwd 顯示當前目錄絕對路徑
yum 安裝軟件包
-y 所有詢問都選擇yes
locale 系統字符集查詢
-a 查詢系統可用的所有字符集
將顯示在終端的內容重定向到文件
> filename 文件不存在自動新建,存在則清空后再寫入
>> filename 文件不存在自動新建,存在則直接追加寫入
more 查看長文件
可用空格進行翻頁,Enter向下翻一行
常配合'|'一起使用
eg: ls -alh | more
less 支持前后翻頁
pageup 向上翻一頁
pagedown或空格 向下翻一頁
Enter 向下翻一行
支持vim常用翻頁操作
head 從開頭顯示文件內容
-n num filename 顯示文件開頭num行
tail 從尾部顯示多行
顯示指定行:tail -n num 文件
動態顯示:tail -f 文件
touch 創建文件
mkdir 創建文件夾
-p 可以創建 A/B/C 這類文件夾
rmdir 刪除文件夾
rm 可以刪除文件和文件夾(刪除后恢復很難)
-r 遞歸刪除(刪除文件夾必須加)
-f 強制刪除
-i 交互式
+ 正則表達式
# 刪除當前目錄下文件名含有2013的文件
find . -name *.exe -type f -exec rm -rf {} \;
su 切換為root用戶
- username 切換到username用戶家目錄
ln 創建連接文件
ln filename 創建硬鏈接
-------- <- 源文件
| 數據 | <- ln1
-------- <- ln2
ln -s filename 創建軟連接
--------
| 數據 | <- 源文件 <- ln1
--------
cat 查看文件
+ >/>> 將查看的內容重定向
+ 文件1 + 文件2 順序查看文件(配合重定向合并文件)
grep 在文件中搜索
-n + '正則' + 文件名 顯示對應的行號
-i 忽略大小寫
-v + '正則' 查找除了正則的內容
egrep 比 grep -E更適合使用正則
egrep '0{2}' = grep -E '0\{2\}'
man + commend_name 查看命令幫助信息
chmod 修改文件屬性
drwxrw-r-x username groupname 4096 10月 21 11:08 filename
d 文件類型
rwx 文件擁有者username的權限
rw- 文件擁有者username對應組groupname的權限
r-x 其他用戶的權限
4096 文件大小
10月 21 11:08 文件最后一次修改時間
'r' 讀
'w' 寫
'x' 執行
'-' 沒有對應權限
eg:chmod u/g/o/a +/-/= rwx 文件名
u 文件擁有者
g 文件擁有者同一組的用戶
o 其他用戶
a 所有用戶
+ 添加
- 撤銷
= 設定
數字法
4 -> r
2 -> w
1 -> x
eg: r--r--r-- -> 444
rwxr----x -> 741
chmod 777 文件夾 不修改文件夾內的文件
chmod 777 文件夾 -R 遞歸修改文件夾及其內的所有文件
mv 移動(剪切)/重命名
mv old_name new_name 重命名
-f 禁止交互式
gzip 壓縮
-d 解壓
-人壓縮有所子目錄
zip 壓縮
zip filename 沒有文件時自動創建
unzip -d 路徑 filename.zip 解壓(路徑不存在可自動生成)
tar 打包,壓縮
-c 打包
-v 顯示進度
-f 制定文件名稱,f后面一定是tar所以放最后
-x 解包
eg:tar -cvf filename.tar */路徑 將所有當前路徑/指定路徑下的全部文件打包到filename.tar
tar -zcvf filename.tar.gz * 打包并用gzip壓縮
tar -zxvf filename.tar.gz * 解包并用gzip解壓
tar -jcvf filename.tar.bz2 * 打包并用bzip2壓縮
tar -jxvf filename.tar.bz2 * 解包并用bzip2解壓
tar ... -C 路徑 解壓縮到指定路徑中
which 查看命令路徑
ifconfig 查看ip信息
ifconfig ethname down 關閉ethname網卡
ifconfig ethname up 開啟ethname網卡
ifconfig ethname 查看ethname網卡信息
ping 測試網絡連接
ssh 遠程登入
ssh username@host
who 查看當前登入的用戶
whoami 查看當前登錄
exit 登出
useradd 添加用戶
-m 自動建主目錄
-d /home/username 指定用戶登錄的指定目錄(如果不使用,默認為/home目錄下)
-g 用戶組 添加到某個用戶組
eg:useradd -m -d /home/username
userdel 刪除用戶
userdel username 刪除用戶但不刪除主目錄
userdel username -r 刪除用戶和其主目錄
passwd username 修改用戶的密碼
su 切換到root用戶
su - username 切換到username用戶
sudo 指令添加root權限
groups username 查看用戶所在的組
groupadd 添加組
groupdel 刪除組
usermod -g newgroups username 修改用戶的用戶組
usermod -a -G newgroups username 給用戶添加一個新的用戶組
給用戶添加sudo權限
sudo usermod -a -G adm username
sudo usermod -a -G sudo username
chown username filename 修改文件的擁有者
chgrp groupname filename 修改文件擁有者的用戶組
cal 查看當前日歷
cal -y 顯示整年日歷
cal -y number 顯示number日歷
date 查看或設置時間
date [MMDDhhmm[[CC]YY][.SS]]
eg: date 011313142016.15 2016年1月13日13點14秒15分
data + format
%Y(2016) = %y(16) 年
%m 月
%d 日
%H 時
%M 分
%S 秒
eg: date '+%Y:%m:%d' 2017:9:1
jobs 查看當前運行的程序
Ctrl + Z stop程序
bg %num 切換到后臺運行
fg %num 切換到前臺運行
ps 查看進程信息
-a 顯示終端上的所有進程,包括其他用戶的進程
-u 顯示進程的詳細狀態
-x 顯示沒有控制終端的進程
-w 顯示加寬,以便顯示更多的信息
-r 只顯示還在運行的進程
USER PID %CPU %MEN VSZ RSS TTY STAT START TIME COMMAND
執行者 進程號 CPU 內存量 命令/程序
top 動態顯示進程
M 按內存使用量排序
P 根據CPU排序
T 按進程運行時間的長短排序
U 根據輸入的用戶名查找
K 根據輸入的PID來殺死進程
q 退出
h 幫助
kill PID 殺死進程號為PID的進程
-9 在使用kill后沒有終止進程時,強制終止進程
reboot 重啟
shutdown
-r now 重啟,會給別的用戶提示
-h now 關機
-r/-h 20:05 在20:05時重啟/關機
-r/-h +10 在分鐘后重啟/關機
init 0 關機
init 6 重啟
df 檢測磁盤空阿
-a 顯示所有文件系統
-m 以1024字節為單位
-t 顯示各指定文件系統的磁盤空間使用情況
-T 顯示文件系統
du 檢測當前目錄磁盤存儲空間
-h 轉換單位
-a 遞歸顯示所有
-S 顯示指定文件或目錄占用的數據塊
-b 以字節為單位顯示磁盤占用情況
-l 計算所有文件大小,對硬鏈接多次計算
du -sh filename/目錄 顯示文件或目錄的大小
wc 統計指定文件中的字節數、數字、行數,并將統計結果顯示輸出
-c 統計字節數
-l 統計行數
-m 統計字符數,這個標志不能與-c標志一起使用
-w 統計字數,一個字被定義為空白、跳格或換行字符分隔的字符串
-L 打印最長行的長度
vim / vi
命令模式
Shift + 2個z 保存并推出
k 光標上
j 光標下
H 光標左
L 光標右
M 光標移到中間行
L 光標移到尾行最后一行行首
umn + G 光標移動到指定行
num + yy 從所在行復制到num行
p 粘貼
num + dd 從所在行剪切到num行
u 撤銷
Ctrl + r 反撤銷
w 向后移動一個字
b 向前移動一個字
{ 按段向上移動
} 按段向下移動
Ctrl + d 向下翻半屏
Ctrl + u 向上翻半屏
Ctrl + f 向下翻一屏
Ctrl + b 向上翻一屏
gg 光標到文件頭
G 光標到文件末尾
Ctrl + n 自動補全(編輯格式)
x 刪除后面一個字符
X 刪除前面一個字符
D 往后刪除全部到行末
do 往前刪除全部到行首
dw 刪一個單詞
>> 文本右縮進
<< 文本左縮進
. 執行上命令
v + 上/下 進行多選
r 替換
^ 移到行首
$ 移到行末
Home + d 刪除到行首
Shift + d 刪除到行尾
末行模式
w 保存
!強制
q 退出
q! 不保存退出
wq = x 保存并退出
set number 顯示行號
set nonumber 關閉行號
set fileencoding 查看文件編碼
/ + 搜索的內容
n 向下找
N 向上找
noh 取消高亮
:%s/A/B/g 將所有的A替換為B
:1,10s/A/B/G 1到10行的A替換為B
:!'shell命令' 執行對應的shell命令
I/A/O/i/a/o 命令模式 -> 編輯模式
I 從光標所在行的行首開始編輯
i 從光標前開始編輯
A 從光標所在行的行末開始編輯
a 從光標后開始編輯
O 從光標上方開始編輯
o 從光標下方開始編輯
Shift + ; 命令模式 -> 末行模式
Esc 編輯模式 -> 命令模式
Esc 末行模式 -> 命令模式
fdisk 磁盤操作
fdisk -l 查看全部磁盤情況
fdisk disk_name 對磁盤分區
mkfs.ext3 new_disk 對分區格式化
mount -a 掛載所有分區
cp 復制
cp file 目錄
cp -r 目錄 新目錄
查看文件編碼
file --mime-encoding filename
!$ 選擇上一個命令最后一個參數
vim 配置 顯示行號 tab配置
編輯 vimrc 添加
set nu
set ts=4
set expandtab
set autoindent
uniq 用于報告或忽略文件中的重復行,一般與sort命令結合使用
-c 或 ——count 在每列旁邊顯示該行重復出現的次數;
-d 或 --repeated 僅顯示重復出現的行列;
-f <欄位> 或--skip-fields=<欄位> 忽略比較指定的欄位;
-s <字符位置> 或 --skip-chars=<字符位置> 忽略比較指定的字符;
-u 或 ——unique:僅顯示出一次的行列;
-w <字符位置> 或 --check-chars=<字符位置> 指定要比較的字符。
netstat 用于顯示各種網絡相關信息
-a (all)顯示所有選項,netstat默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。(重要)
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程序名(macOS中表示協議 -p protocol)
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計 (重要)
-c 每隔一個固定時間,執行該netstat命令
echo $? 查看上一個命令的執行結果(原理是打印剛剛執行完的進程提供給系統內核的退出碼)
返回0表示成功
放回0以外的值表示失敗