Linux常用命令

Linux 常用命令

ls 顯示目錄

ls + 目錄/正則表達(dá)式
-l == ll 列表顯示
-a 顯示出隱藏文件
-h 顯示文件大小(不能單獨(dú)使用)

cd 切換目錄

. 當(dāng)前目錄
.. 上一級(jí)目錄
../.. 上上級(jí)目錄
- 上一次目錄
~ 用戶目錄

pwd 顯示當(dāng)前目錄絕對(duì)路徑

yum 安裝軟件包

-y 所有詢問都選擇yes

locale 系統(tǒng)字符集查詢

-a 查詢系統(tǒng)可用的所有字符集

將顯示在終端的內(nèi)容重定向到文件

> filename 文件不存在自動(dòng)新建,存在則清空后再寫入
>> filename 文件不存在自動(dòng)新建,存在則直接追加寫入

more 查看長文件

可用空格進(jìn)行翻頁,Enter向下翻一行
常配合'|'一起使用
eg: ls -alh | more

less 支持前后翻頁

pageup 向上翻一頁
pagedown或空格 向下翻一頁
Enter 向下翻一行
支持vim常用翻頁操作

head 從開頭顯示文件內(nèi)容

-n num filename 顯示文件開頭num行

tail 從尾部顯示多行

顯示指定行:tail -n num 文件
動(dòng)態(tài)顯示:tail -f 文件

touch 創(chuàng)建文件

mkdir 創(chuàng)建文件夾

-p 可以創(chuàng)建 A/B/C 這類文件夾

rmdir 刪除文件夾

rm 可以刪除文件和文件夾(刪除后恢復(fù)很難)

-r 遞歸刪除(刪除文件夾必須加)
-f 強(qiáng)制刪除
-i 交互式
+ 正則表達(dá)式

# 刪除當(dāng)前目錄下文件名含有2013的文件
find . -name *.exe -type f -exec rm -rf {} \;

su 切換為root用戶

- username 切換到username用戶家目錄

ln 創(chuàng)建連接文件

ln filename 創(chuàng)建硬鏈接

-------- <- 源文件
| 數(shù)據(jù) | <- ln1
-------- <- ln2

ln -s filename 創(chuàng)建軟連接

--------
| 數(shù)據(jù) | <- 源文件 <- ln1
--------

cat 查看文件

+ >/>> 將查看的內(nèi)容重定向
+ 文件1 + 文件2 順序查看文件(配合重定向合并文件)

grep 在文件中搜索

-n + '正則' + 文件名 顯示對(duì)應(yīng)的行號(hào)
-i 忽略大小寫
-v + '正則' 查找除了正則的內(nèi)容

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的權(quán)限
rw- 文件擁有者username對(duì)應(yīng)組groupname的權(quán)限
r-x 其他用戶的權(quán)限
4096 文件大小
10月 21 11:08 文件最后一次修改時(shí)間

'r' 讀
'w' 寫
'x' 執(zhí)行
'-' 沒有對(duì)應(yīng)權(quán)限

eg:chmod u/g/o/a +/-/= rwx 文件名
   u 文件擁有者
   g 文件擁有者同一組的用戶
   o 其他用戶
   a 所有用戶

   + 添加
   - 撤銷
   = 設(shè)定

數(shù)字法
4 -> r
2 -> w
1 -> x
eg: r--r--r-- -> 444
    rwxr----x -> 741

chmod 777 文件夾 不修改文件夾內(nèi)的文件
chmod 777 文件夾 -R 遞歸修改文件夾及其內(nèi)的所有文件

mv 移動(dòng)(剪切)/重命名

mv old_name new_name  重命名
-f 禁止交互式

gzip 壓縮

-d 解壓
-人壓縮有所子目錄

zip 壓縮

zip filename 沒有文件時(shí)自動(dòng)創(chuàng)建
unzip -d 路徑 filename.zip 解壓(路徑不存在可自動(dòng)生成)

tar 打包,壓縮

-c 打包
-v 顯示進(jìn)度
-f 制定文件名稱,f后面一定是tar所以放最后
-x 解包

eg:tar -cvf filename.tar */路徑 將所有當(dāng)前路徑/指定路徑下的全部文件打包到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 關(guān)閉ethname網(wǎng)卡
ifconfig ethname up 開啟ethname網(wǎng)卡
ifconfig ethname 查看ethname網(wǎng)卡信息

ping 測試網(wǎng)絡(luò)連接

ssh 遠(yuǎn)程登入

ssh username@host

who 查看當(dāng)前登入的用戶

whoami 查看當(dāng)前登錄

exit 登出

useradd 添加用戶

-m 自動(dòng)建主目錄
-d /home/username 指定用戶登錄的指定目錄(如果不使用,默認(rèn)為/home目錄下)
-g 用戶組 添加到某個(gè)用戶組

eg:useradd -m -d /home/username

userdel 刪除用戶

userdel username 刪除用戶但不刪除主目錄
userdel username -r 刪除用戶和其主目錄

passwd username 修改用戶的密碼

su 切換到root用戶

su - username 切換到username用戶

sudo 指令添加root權(quán)限

groups username 查看用戶所在的組

groupadd 添加組
groupdel 刪除組

usermod -g newgroups username 修改用戶的用戶組
usermod -a -G newgroups username 給用戶添加一個(gè)新的用戶組

給用戶添加sudo權(quán)限

sudo usermod -a -G adm username
sudo usermod -a -G sudo username

chown username filename 修改文件的擁有者
chgrp groupname filename 修改文件擁有者的用戶組

cal 查看當(dāng)前日歷

cal -y 顯示整年日歷
cal -y number 顯示number日歷

date 查看或設(shè)置時(shí)間

date [MMDDhhmm[[CC]YY][.SS]]
eg: date 011313142016.15 2016年1月13日13點(diǎn)14秒15分

data + format
    %Y(2016) = %y(16) 年
    %m                月
    %d                日
    %H                時(shí)
    %M                分
    %S                秒

eg: date '+%Y:%m:%d'  2017:9:1

jobs 查看當(dāng)前運(yùn)行的程序

Ctrl + Z stop程序
bg %num 切換到后臺(tái)運(yùn)行
fg %num 切換到前臺(tái)運(yùn)行

ps 查看進(jìn)程信息

-a 顯示終端上的所有進(jìn)程,包括其他用戶的進(jìn)程
-u 顯示進(jìn)程的詳細(xì)狀態(tài)
-x 顯示沒有控制終端的進(jìn)程
-w 顯示加寬,以便顯示更多的信息
-r 只顯示還在運(yùn)行的進(jìn)程

USER   PID    %CPU %MEN   VSZ RSS TTY STAT START TIME COMMAND
執(zhí)行者 進(jìn)程號(hào) CPU  內(nèi)存量                             命令/程序

top 動(dòng)態(tài)顯示進(jìn)程

M 按內(nèi)存使用量排序
P 根據(jù)CPU排序
T 按進(jìn)程運(yùn)行時(shí)間的長短排序
U 根據(jù)輸入的用戶名查找
K 根據(jù)輸入的PID來殺死進(jìn)程
q 退出
h 幫助

kill PID 殺死進(jìn)程號(hào)為PID的進(jìn)程

-9 在使用kill后沒有終止進(jìn)程時(shí),強(qiáng)制終止進(jìn)程

reboot 重啟

shutdown

-r now 重啟,會(huì)給別的用戶提示
-h now 關(guān)機(jī)
-r/-h 20:05 在20:05時(shí)重啟/關(guān)機(jī)
-r/-h +10 在分鐘后重啟/關(guān)機(jī)

init 0 關(guān)機(jī)
init 6 重啟

df 檢測磁盤空阿

-a 顯示所有文件系統(tǒng)
-m 以1024字節(jié)為單位
-t 顯示各指定文件系統(tǒng)的磁盤空間使用情況
-T 顯示文件系統(tǒng)

du 檢測當(dāng)前目錄磁盤存儲(chǔ)空間

-h 轉(zhuǎn)換單位
-a 遞歸顯示所有
-S 顯示指定文件或目錄占用的數(shù)據(jù)塊
-b 以字節(jié)為單位顯示磁盤占用情況
-l 計(jì)算所有文件大小,對(duì)硬鏈接多次計(jì)算

du -sh filename/目錄 顯示文件或目錄的大小

wc 統(tǒng)計(jì)指定文件中的字節(jié)數(shù)、數(shù)字、行數(shù),并將統(tǒng)計(jì)結(jié)果顯示輸出

-c 統(tǒng)計(jì)字節(jié)數(shù)
-l 統(tǒng)計(jì)行數(shù)
-m 統(tǒng)計(jì)字符數(shù),這個(gè)標(biāo)志不能與-c標(biāo)志一起使用
-w 統(tǒng)計(jì)字?jǐn)?shù),一個(gè)字被定義為空白、跳格或換行字符分隔的字符串
-L 打印最長行的長度

vim / vi

命令模式

Shift + 2個(gè)z 保存并推出
k 光標(biāo)上
j 光標(biāo)下
H 光標(biāo)左
L 光標(biāo)右
M 光標(biāo)移到中間行
L 光標(biāo)移到尾行最后一行行首
umn + G 光標(biāo)移動(dòng)到指定行
num + yy 從所在行復(fù)制到num行
p 粘貼
num + dd 從所在行剪切到num行
u 撤銷
Ctrl + r 反撤銷
w 向后移動(dòng)一個(gè)字
b 向前移動(dòng)一個(gè)字
{ 按段向上移動(dòng)
} 按段向下移動(dòng)
Ctrl + d 向下翻半屏
Ctrl + u 向上翻半屏
Ctrl + f 向下翻一屏
Ctrl + b 向上翻一屏
gg 光標(biāo)到文件頭
G 光標(biāo)到文件末尾
Ctrl + n 自動(dòng)補(bǔ)全(編輯格式)
x 刪除后面一個(gè)字符
X 刪除前面一個(gè)字符
D 往后刪除全部到行末
do 往前刪除全部到行首
dw 刪一個(gè)單詞
>> 文本右縮進(jìn)
<< 文本左縮進(jìn)
. 執(zhí)行上命令
v + 上/下 進(jìn)行多選
r 替換
^ 移到行首
$ 移到行末

Home + d 刪除到行首
Shift + d 刪除到行尾

末行模式

w 保存
!強(qiáng)制
q 退出
q! 不保存退出
wq = x 保存并退出

set number 顯示行號(hào)
set nonumber 關(guān)閉行號(hào)
set fileencoding 查看文件編碼

/ + 搜索的內(nèi)容
    n 向下找
    N 向上找

noh 取消高亮

:%s/A/B/g 將所有的A替換為B

:1,10s/A/B/G 1到10行的A替換為B

:!'shell命令' 執(zhí)行對(duì)應(yīng)的shell命令

I/A/O/i/a/o 命令模式 -> 編輯模式
    I 從光標(biāo)所在行的行首開始編輯
    i 從光標(biāo)前開始編輯
    A 從光標(biāo)所在行的行末開始編輯
    a 從光標(biāo)后開始編輯
    O 從光標(biāo)上方開始編輯
    o 從光標(biāo)下方開始編輯

Shift + ; 命令模式 -> 末行模式

Esc 編輯模式 -> 命令模式

Esc 末行模式 -> 命令模式

fdisk 磁盤操作

fdisk -l 查看全部磁盤情況
fdisk disk_name 對(duì)磁盤分區(qū)
mkfs.ext3 new_disk 對(duì)分區(qū)格式化
mount -a 掛載所有分區(qū)

cp 復(fù)制

cp file 目錄
cp -r 目錄 新目錄

查看文件編碼

file --mime-encoding filename

!$ 選擇上一個(gè)命令最后一個(gè)參數(shù)

vim 配置 顯示行號(hào) tab配置

編輯 vimrc 添加
set nu
set ts=4
set expandtab
set autoindent

uniq 用于報(bào)告或忽略文件中的重復(fù)行,一般與sort命令結(jié)合使用

-c 或 ——count 在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù);
-d 或 --repeated 僅顯示重復(fù)出現(xiàn)的行列;
-f <欄位> 或--skip-fields=<欄位> 忽略比較指定的欄位;
-s <字符位置> 或 --skip-chars=<字符位置> 忽略比較指定的字符;
-u 或 ——unique:僅顯示出一次的行列;
-w <字符位置> 或 --check-chars=<字符位置> 指定要比較的字符。

netstat 用于顯示各種網(wǎng)絡(luò)相關(guān)信息

-a (all)顯示所有選項(xiàng),netstat默認(rèn)不顯示LISTEN相關(guān)
-t (tcp)僅顯示tcp相關(guān)選項(xiàng)
-u (udp)僅顯示udp相關(guān)選項(xiàng)
-n 拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化成數(shù)字。(重要)
-l 僅列出有在 Listen (監(jiān)聽) 的服務(wù)狀態(tài)
-p 顯示建立相關(guān)鏈接的程序名(macOS中表示協(xié)議 -p protocol)
-r 顯示路由信息,路由表
-e 顯示擴(kuò)展信息,例如uid等
-s 按各個(gè)協(xié)議進(jìn)行統(tǒng)計(jì) (重要)
-c 每隔一個(gè)固定時(shí)間,執(zhí)行該netstat命令

echo $? 查看上一個(gè)命令的執(zhí)行結(jié)果(原理是打印剛剛執(zhí)行完的進(jìn)程提供給系統(tǒng)內(nèi)核的退出碼)

返回0表示成功
放回0以外的值表示失敗
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容