linux快捷键和指令记录
我學(xué)的是Ubuntu的教程,用的是centos7.15,不過(guò)還好大部分的指令都是能用的,centos7.15能用的指令和快捷鍵記錄在此,Ubuntu應(yīng)該也是能用的
快捷鍵:
ctrl+p 上一條指令
ctrl+n 下一條指令
ctrl+b 光標(biāo)向前移動(dòng)一格
ctrl+f 光標(biāo)向后移動(dòng)一格
這四個(gè)快捷鍵對(duì)應(yīng)了小鍵盤(pán)的上下左右
Shift + PageUp 向前翻頁(yè)
Shift + PageDown 向后翻頁(yè)
ctrl+a 光標(biāo)移動(dòng)到最前
ctrl+e 光標(biāo)移動(dòng)到末尾
ctrl+h 刪除,一般是直接按backspace就可以了- -,不用這么麻煩
ctrl+d 向后刪除
ctrl+l 清屏
指令:
(家目錄就是當(dāng)然用戶在home里面的同名文件夾,例如baiye用戶的家目錄就是/home/baiye/)
cd 返回家目錄
cd .. 返回上一級(jí)目錄
cd~ 返回家目錄
cd / 返回根目錄
pwd 查看當(dāng)前所在的位置(其實(shí)通過(guò)前面部分也能看出來(lái),例:位置轉(zhuǎn)到home里后,前面的~變?yōu)榱薶ome)
查詢:
ls 查看當(dāng)前目錄
ls ~ 查看家目錄
ls / 查看根目錄
參數(shù):
-a 輸出全部,包括隱藏的文件和文件夾(隱藏的文件或文件夾前面有個(gè). 例如.abc)
-l 輸出帶有詳細(xì)信息,不包括隱藏的文件和文件夾
新建:
touch XXX 在當(dāng)前位置新建一個(gè)XXX文件,如果XXX已存在,則修改文件的時(shí)間為現(xiàn)在
mkdir XXX 在當(dāng)前位置創(chuàng)建一個(gè)XXX目錄
參數(shù):
mkdir aa/bb/cc -p 在當(dāng)前位置創(chuàng)建一個(gè)多層的目錄,需要加-p參數(shù),參數(shù)放在最末端或mkdir后面都可以
刪除:
rmdir XXX 刪除當(dāng)前目錄下的XXX目錄,但該目錄必須為空才能刪除成功(不實(shí)用)
rm XXX 徹底刪除當(dāng)前目錄下的XXX文件
參數(shù):
rm XXX -r 徹底刪除當(dāng)前目錄下的XXX目錄,包括里面的所有東西,需要加-r參數(shù),參數(shù)位置前后都可(遞歸刪除)
rm XXX -i 提高安全性有一個(gè)確認(rèn)的警告,如果是多級(jí)目錄,系統(tǒng)會(huì)逐層的詢問(wèn)是否刪除該級(jí)目錄,不過(guò)刪除目錄的話還要加上r
復(fù)制:
cp a b 將當(dāng)前位置的a文件拷貝,并新建一個(gè)b,如果b已存在,則覆蓋
參數(shù):
cp adir bdir -r 將當(dāng)前位置的adir目錄拷貝,并新建bdir目錄,包括目錄下的所有內(nèi)容,如果bdir是已存在的目錄,則把a(bǔ)dir整個(gè)目錄復(fù)制到bdir的目錄里面
拷貝文件也是一樣,如果b是已存在的目錄,則將該a文件/目錄復(fù)制到b里面去,并且不改名字
打開(kāi) (都不實(shí)用,但是可以了解一下):
cat a 打開(kāi)當(dāng)前的a文件,適合短文本文件
more a 打開(kāi)當(dāng)前的a文件,可以打開(kāi)長(zhǎng)文本文件,打開(kāi)后,按回車(chē)是多看一行,空格是多翻一頁(yè)。但是注意more是無(wú)法看前面的內(nèi)容的,翻頁(yè)翻過(guò)了不能往回翻。如果看到一半想退出,就按q(ctrl+c也可以)
less a 打開(kāi)當(dāng)前的a文件,可以打開(kāi)長(zhǎng)文本文件,打開(kāi)后,按回車(chē)是多看一行,空格是多翻一頁(yè)。并且,ctrl+p是往前翻一行,ctrl+n是往后翻一行,ctrl+b是往前翻一頁(yè),ctrl+f是往后翻一頁(yè)。如果看到一半想退出,就按q
head a 默認(rèn)顯示文件前十行
tail a 默認(rèn)顯示文件后十行
head -x a 在中間添加參數(shù)(-行數(shù)),顯示文件前x行
tail -x a 在中間添加參數(shù)(-行數(shù)),顯示文件后x行
重命名或移動(dòng):
mv a b 將a重命名為b
注意如果b已存在,則覆蓋b。
如果b已存在并且是個(gè)目錄,則將a移動(dòng)到b目錄里
移動(dòng)到上一層的話是 /…(兩個(gè)點(diǎn))
快捷方式(軟鏈接):
ln -s ~/a/b.txt c 在指定位置創(chuàng)建b.txt文件的快捷方式c,注意的是這個(gè)路徑必須是絕對(duì)路徑,如果只是相對(duì)路徑,則該快捷方式只能在當(dāng)前位置使用換了位置后會(huì)失效。
ln -s ~/a/b/ c 在指定位置創(chuàng)建b目錄的快捷方式c
硬鏈接:
ln ~/a/b.txt c 去掉-s參數(shù),就是創(chuàng)建硬鏈接的方式,相對(duì)路徑也可以創(chuàng)建,目錄是無(wú)法創(chuàng)建硬鏈接的
硬鏈接不會(huì)占用磁盤(pán)空間,只是一個(gè)映射,指向i結(jié)點(diǎn)對(duì)應(yīng)的位置上的文件
每個(gè)文件都至少有一個(gè)硬鏈接,如果一個(gè)i結(jié)點(diǎn)沒(méi)有了硬鏈接,則創(chuàng)建新文件時(shí),新文件會(huì)覆蓋這個(gè)位置
大概意思是軟連接相當(dāng)于一個(gè)殘次品,它跟真的文件(硬鏈接)是比不了的,它只是一個(gè)快捷方式,它指向的也是硬鏈接所在目錄的位置。
如果有多個(gè)同樣文件不同位置的硬鏈接,那它們每個(gè)創(chuàng)建的快捷方式指向的位置都不同。但硬鏈接無(wú)論在哪里有幾個(gè),指向的地方都是相同的
也就是說(shuō)軟連接就是正品和模型的差別,軟連接只是個(gè)模型,它指向的是正品。但硬鏈接就像真假美猴王一樣,有多少個(gè),多少個(gè)就都是一樣的,刪掉哪個(gè)都無(wú)所謂,只要留一個(gè)就夠了。
ls -l命令可以查看當(dāng)前目錄下文件或目錄的詳細(xì)信息,可以看到硬鏈接數(shù)量
文件和目錄屬性(了解就行):
wc a.txt按順序獲取文本文件的以下屬性
1行數(shù) 2單詞數(shù)(空格分割為準(zhǔn)) 3字節(jié)數(shù) 4文本文件名字
od -t a打開(kāi)二進(jìn)制文件,-t參數(shù)是指定數(shù)據(jù)顯示格式:c是ASCII字符,d是有符號(hào)十進(jìn)制數(shù),f是浮點(diǎn)數(shù),o是八進(jìn)制數(shù),u是無(wú)符號(hào)十進(jìn)制數(shù),x是十六進(jìn)制數(shù),根據(jù)需求可在t后面加上不同參數(shù)
du -h 查看當(dāng)前位置的所有目錄大小和當(dāng)前目錄的大小,-h參數(shù)是格式化輸出
df -h 查看磁盤(pán)的使用情況,-h參數(shù)是格式化輸出
查看指定命令的位置:
wich xx 查看xx命令的位置,但是只能查外建命令,內(nèi)建命令是查不到的
查看修改文件權(quán)限:
whoami 查看當(dāng)前登錄用戶
修改文件的權(quán)限有兩種方式
1.文字設(shè)定法
chmod [who] [+|-|=] [mode] [文件名]
who:
所有人 a(不寫(xiě)who的話默認(rèn)為所有人)
文件所有者 u
文件所屬組 g
其他人 o
+:添加權(quán)限
-:減少權(quán)限
=:覆蓋原來(lái)的權(quán)限
mode:
讀 r
寫(xiě) w
執(zhí)行 x(目錄如果沒(méi)有這個(gè)權(quán)限將無(wú)法訪問(wèn))
例:chomod a+r b 修改b文件的所有人權(quán)限增加讀權(quán)限
2.數(shù)字設(shè)定法(常用,比較簡(jiǎn)單方便)
chmod [-|+|=][3個(gè)數(shù)字分別代表3個(gè)權(quán)限] [文件名]
+:添加權(quán)限
-:減少權(quán)限
=:覆蓋原來(lái)的權(quán)限(不寫(xiě)的話,默認(rèn)是覆蓋)
r:4
w:2
x:1
數(shù)字相加就是權(quán)限,三個(gè)數(shù)字按順序分別對(duì)應(yīng)文件所有者,文件所屬組,其他人
例:chmod 765 b 修改b文件的權(quán)限為:文件所有者rwx(7),文件所屬組rw(6),其他人rx(5)
chmod +001 b 給b文件的其他人權(quán)限加1:rx(5)=》rw(6),另外兩個(gè)權(quán)限加0不變
修改文件所有者和所屬組:
sudo chown baiye a 修改文件a的所有者為baiye,sudo是借用管理員權(quán)限
sudo chown baiye:hal a 修改文件a的所有者為baiye,所屬組為hal
sudo chgrp hal a 修改文件a的所屬組為hal
文件的查找
按文件名字查找find /home/baiye/ -name “a” 查找/home/baiye/路徑下名字為a的文件
引號(hào)內(nèi)可加通配符模糊查詢,*是一個(gè)或多個(gè),?是一個(gè)
按文件大小查找find /home/baiye/ -size +10k -size -10m查找/home/baiye/路徑下大于10k并小于10m的文件
按文件類(lèi)型查找find /home/baiye/ -type d 查找/home/baiye/路徑下的目錄
普通文件f,目錄d,鏈接符號(hào)l,塊設(shè)備b,字符設(shè)備c,socket套接字s,管道p
按文件內(nèi)容查找
grep -r “hello” ~ 在家目錄下查找內(nèi)容帶有hello的文件
壓縮管理
gzip *.txt:壓縮當(dāng)前目錄下全部的txt后綴文件,不保留源文件
gunzip *.gz 解壓縮當(dāng)前目錄下全部的gz后綴文件
bzip2 *txt:壓縮當(dāng)前目錄下全部的txt后綴文件,加參數(shù)-k可以保留源文件
bunzip2 *.bz2 解壓縮當(dāng)前目錄下全部的bz2后綴文件
上面兩個(gè)是用處不大的壓縮方式,它們都不能壓縮目錄,而且不會(huì)打包只是逐個(gè)壓縮
(centos7需要手動(dòng)安裝bzip2
yum search bzip2 //查詢安裝包
yum -y install bzip2.x86_64 )
tar
參數(shù):
c 創(chuàng)建
x 釋放
v 顯示提示信息
f 指定壓縮文件的名字
z 使用gzip方式壓縮文件.gz
j 使用bzip2方式壓縮文件.bz2
如果它不用z/j參數(shù),該命令只能對(duì)文件或目錄打包
tar只是完成了打包動(dòng)作,其核心還是倚靠z和j執(zhí)行的
壓縮:
tar zcvf 生成的壓縮包名字(xxx.tar.gz) 要壓縮的文件或目錄
tar jcvf 生成的壓縮包名字(xxx.tar.bz2) 要壓縮的文件或目錄
例子
tar zcvf alltxt.tar.gz *.txt 用gzip方式打包壓縮當(dāng)前目錄下所有的txt文件,命名為alltxt.tar.gz
tar jcvf animal.tar.bz2 animal/ *.txt 用bzip2方式壓縮整個(gè)animal目錄和當(dāng)前目錄下的所有txt文件,命名為animal.tar.bz2
解壓縮:
tar jxvf 壓縮包的名字(解壓到當(dāng)前目錄)如果后面加-C 參數(shù)可以指定解壓到哪里
例子
tar zxvf alltxt.tar.gz 解壓縮alltxt.tar.gz到當(dāng)前目錄下
tar jxvf animal.tar.bz2 -C test/解壓縮animal.tar.bzip2到test目錄下
rar(需先安裝,步驟https://blog.csdn.net/weixin_38958597/article/details/83424551)
參數(shù):
a 壓縮
x 解壓縮
壓縮
rar a 生成的壓縮文件的名字(temp) 壓縮的文件或目錄
rar我們不用自己寫(xiě)后綴了,它會(huì)智能補(bǔ)全
例子
rar a all *.txt 壓縮當(dāng)前目錄下所有的txt文件,命名為all.rar
rar a animal animal壓縮animal目錄,命名為animal.rar
解壓縮
rar x 壓縮文件名 (解壓縮目錄,不寫(xiě)的話默認(rèn)當(dāng)前目錄)
例子
rar x all.rar解壓縮all.rar到當(dāng)前目錄下
rar x animal.rar test解壓縮animal.rar到test目錄下
zip(我沒(méi)安裝jued)
壓縮
zip 壓縮包的名字 壓縮的文件,壓縮目錄需要加-r參數(shù)
例子
zip all *.txt 壓縮當(dāng)前目錄下所有的txt文件,命名為all.zip
zip -r animal animal壓縮animal目錄,命名為animal.zip
解壓縮
unzip 壓縮包的名字
unzip 壓縮包的名字 -d 解壓目錄
例子
unzip all.zip解壓縮all.zip到當(dāng)前目錄下
unzip animal.zip -d test/解壓縮animal.zip到test目錄下
進(jìn)程管理
who 查看當(dāng)前用戶狀態(tài)
ps aux顯示當(dāng)前用戶下的所有進(jìn)程
參數(shù):
a查看當(dāng)前操作系統(tǒng)下的所有用戶的信息
u查看進(jìn)程所有者及其他一些信息
x查看沒(méi)有控制終端的應(yīng)用程序(不能與用戶進(jìn)行交互的進(jìn)程,輸入輸出之類(lèi)的)
ps aux | grep xxx對(duì)顯示的進(jìn)程進(jìn)行過(guò)濾查找,這里grep是查找前面指令輸出的內(nèi)容里,帶有xxx的語(yǔ)句
(管道是|,它的作用是把前面指令的輸出作為后面指令的輸入完成指令)
kill -l 查看所有信號(hào)
kill -SIGKILL 5000或kill -9 5000 關(guān)掉進(jìn)程ID為5000的進(jìn)程
env查看當(dāng)前進(jìn)程下的所有環(huán)境變量設(shè)置
env | grep PATH 管道過(guò)濾只輸出環(huán)境變量中的PATH變量
top相當(dāng)于window里的任務(wù)管理器,按ctrl+c可以停止并退出
ifconfig 查看ip信息(centos7需要先安裝yum install net-tools)
ping xxx 測(cè)試與xxxip能不能通信,ctrl+c退出
加參數(shù)-c n可以只輸出n條就結(jié)束,-i n可以每隔n秒輸出一次
ping后面也可以加網(wǎng)站例如百度之類(lèi)的
nslookup www.xxx.com 可以輸出域名的ip
添加用戶
sudo adduser xxx 添加xxx新用戶,用腳本的方式
sudo useradd -s /bin/bash -g Group -d /home/xxx -m xxx 用命令的方式創(chuàng)建xxx用戶
-s參數(shù)后面指定命令解析器,-g指定所屬組,-d指定用戶目錄,-m如果家目錄下沒(méi)有指定目錄則創(chuàng)建
sudo groupadd Group 創(chuàng)建Group組
sudo passwd 用戶名 修改指定用戶的密碼,如果直接輸入passwd就是修改當(dāng)前用戶密碼
sudo passwd root 修改root用戶的密碼
su xxx 切換為xxx用戶
sudo userdel -r xxx 刪除xxx用戶
vi /etc/passwd 查看用戶是否創(chuàng)建成功,每添加一個(gè)用戶passwd就會(huì)添加一行
ftp服務(wù)器搭建(文件的上傳和下載)
安裝vsftpd
yum install -y vsftpd 先進(jìn)入root,然后安裝vsftpd,-y是可以在安裝過(guò)程中對(duì)系統(tǒng)的詢問(wèn)(y/n)自動(dòng)為y
服務(wù)器端配置
cd /etc 進(jìn)入etc目錄查看配置文件
ls -l vsftpd 可以看到vsftpd的相關(guān)文件
vi /vsftpd/vsftpd.conf 進(jìn)入vsftpd的配置文件進(jìn)行編輯
sudo service vsftpd restart 配置完畢后重啟服務(wù)
客戶端
ftp IP地址 連接服務(wù)器
vim(要先下載vim替換vi 命令:yum install vim-enhanced)
vi有三種模式:命令模式,文本模式,末行模式,默認(rèn)進(jìn)入的是命令模式
模式間的轉(zhuǎn)換:
命令>>文本:按aiosAIOS的任意一個(gè),八個(gè)字母都可以進(jìn)入,后面會(huì)講解他們8個(gè)的區(qū)別
文本>>命令:按ESC
命令>>末行:輸入一個(gè)冒號(hào)
末行>>命令:按兩下ESC退出,或輸入執(zhí)行一條語(yǔ)句
文本模式不能直接跟末行模式相互轉(zhuǎn)換
vim命令模式下光標(biāo)的移動(dòng)
h左移,j下移,k上移,l右移
shift+4移動(dòng)到行尾,0移動(dòng)到行首
按兩下g移動(dòng)到文件首,shift+g移動(dòng)到文件尾,xx加shift+g移動(dòng)到xx行
shift+x刪除光標(biāo)前面的一個(gè)字符,x刪除光標(biāo)后面的一個(gè)字符
dw叢當(dāng)前位置刪除后面單詞,d0叢當(dāng)前位置刪除到行首,d加shift+4叢當(dāng)前位置刪除到行尾,dd刪除當(dāng)前行,ndd從當(dāng)前位置刪除n行
u撤銷(xiāo),ctrl+r反撤銷(xiāo)
其實(shí)以上的刪除的實(shí)質(zhì)并不是刪除,而是剪切,不管是哪種方式的刪除,都可以粘貼出來(lái)
yy復(fù)制當(dāng)前行,nyy從當(dāng)前位置復(fù)制n行,p粘貼到光標(biāo)所在行的下一行,shift+p粘貼到光標(biāo)所在行
只復(fù)制片段的方法:在想要復(fù)制的頭位置按v切換到可視模式,再用方向鍵移動(dòng)到想要復(fù)制的尾位置,選中后按y復(fù)制或按d刪除,p粘貼到指定位置
查找片段
/xx 命令模式下反斜杠加上要查找的詞,文章里符合條件的片段會(huì)以高亮顯示,n鍵向上切換,N向下切換
?xx 有同樣的效果,它是向上查找的,/是向下查找的,不過(guò)它們都可以把所有內(nèi)容查出來(lái),區(qū)別只是它們最后光標(biāo)所在的位置而已
#號(hào)也可以查找,在想要查找的單詞上按#號(hào)鍵(shift+3),會(huì)自動(dòng)選中該文章所有出現(xiàn)的該單詞,但只是查找這個(gè)單詞,不代表查找這個(gè)片段,單詞的前后是有分隔的
不太重要的功能
替換單個(gè)字符,在該字符上按r,然后輸入想替換的字符,但僅限單個(gè)字符
縮進(jìn)當(dāng)前行:光標(biāo)所在行按<<向左縮進(jìn),>>向右縮進(jìn)
不知道文檔里某個(gè)函數(shù)的用法時(shí),選中該單詞按shift+k,就會(huì)跳轉(zhuǎn)到man文檔的有該函數(shù)的章節(jié),如果要在man文檔的指定章節(jié)查詢,就先按下想要查詢的章節(jié)數(shù)字再加上shift+k就會(huì)查找指定的章節(jié)
命令模式切換到文本模式
a 從當(dāng)前光標(biāo)位置的后面開(kāi)始編輯
i 從當(dāng)前光標(biāo)位置的前面開(kāi)始編輯
A 從當(dāng)前行尾開(kāi)始編輯
I 從當(dāng)前行首開(kāi)始編輯
o 從光標(biāo)所在行的下面開(kāi)辟一個(gè)新的行開(kāi)始編輯
O 從光標(biāo)所在行的上面開(kāi)辟一個(gè)新的行開(kāi)始編輯
s 刪除光標(biāo)所在位置的字符,并開(kāi)始編輯
S 刪除光標(biāo)所在位置的那一行,并開(kāi)始編輯
末行模式
進(jìn)入末行模式統(tǒng)一需要先輸入一個(gè)冒號(hào):
:n,跳轉(zhuǎn)到文檔的第n行
:s/abc/nn 替換光標(biāo)所在行的第一個(gè)abc字符串為nn
:s/abc/nn/g 替換光標(biāo)所在行的所有abc字符串為nn
:%s/abc/nn 替換當(dāng)前文件里所有行的第一個(gè)abc字符串為nn
:%s/abc/nn/g 替換當(dāng)前文件里所有abc字符串為nn
:20,30s/abc/nn/g 替換當(dāng)前文件里第20行到第30行中的所有abc字符串為nn
:w 保存文件
:q 退出文件
:q! 不保存退出
:wq 保存并退出(命令模式下摁兩次大寫(xiě)Z也一樣)
:x 跟wq是一樣的
分屏(按住ctrl加兩下w切換窗口)
:sq xxx 水平分屏,不輸入xxx文件名的話默認(rèn)再打開(kāi)一個(gè)當(dāng)前文檔
:vsp xxx 垂直分屏,不輸入xxx文件名的話默認(rèn)再打開(kāi)一個(gè)當(dāng)前文檔
如果想保存或退出其中一個(gè),就把光標(biāo)切換到那個(gè)文檔然后輸入前面的指令
:wall 保存所有
:qall 退出所有
gcc的編譯過(guò)程(需先安裝yum install gcc和yum install gcc-c++)
hello.c+預(yù)處理器(cpp,替換常量刪除注釋之類(lèi)的)=hello.i(c文件)
hello.i+編譯器(gcc)=hello.s(匯編文件)
hello.s+匯編器(as)=hello.o(二進(jìn)制文件)
hello.o+鏈接器(ld)=a.out(可執(zhí)行文件)
編譯器消耗時(shí)間最多
編譯執(zhí)行一個(gè)c程序的流程:
gcc -E sum.c -o sum.i 預(yù)編譯生成一個(gè)c文件
gcc -S sum.i -o sum.s 編譯生成一個(gè)匯編文件
gcc -c sum.s -o sum.o 鏈接器生成一個(gè)二進(jìn)制文件
gcc sum.o -o app生成一個(gè)可執(zhí)行文件
gcc sum.c -o myapp 也可以直接一步生成可執(zhí)行文件,但是它內(nèi)部也是一步一步調(diào)用了各個(gè)步驟的
-o參數(shù)確定生成文件的名字,如果不寫(xiě),默認(rèn)生成a.out
gcc sum.c -I ./include -o app
參數(shù)-I(大寫(xiě)的i)可以指定頭文件所在的位置,如果不寫(xiě),默認(rèn)在當(dāng)前目錄里找
gcc其他一些參數(shù):
-On 編譯優(yōu)化,n為0時(shí)優(yōu)化等級(jí)最低,n為3時(shí)優(yōu)化等級(jí)最高,可以去掉冗余代碼
-Wall 提示更多警告信息
-g 添加一些調(diào)試信息
總結(jié)
以上是生活随笔為你收集整理的linux快捷键和指令记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android 4.4.3和4.4.4,
- 下一篇: linux i2c dev.h freq