程序員看的極簡(jiǎn)的linux命令

linux的哲學(xué)思想:

  1. 一切皆文件(硬件設(shè)備亦如此),文本文件保存配置信息;
  2. 單一目的的小程序(由眾多目的單一的小程序組成)逮光,組合小程序完成復(fù)雜任務(wù);
  3. 盡量避免捕獲用戶接口墩划;
  4. 提供機(jī)制涕刚,而非策略。

1. 基本操作

基本流程:
進(jìn)入目錄(cd)-->查看文件是否存在(ls)-->查看文件內(nèi)容(cat)-->編輯文件(vim)

1. cd

cd 進(jìn)入指定的目錄

# cd ..  返回上一級(jí) 
# cd  /  絕對(duì)路徑
# cd ./  相對(duì)路徑

2. ls

ls 查看文件的屬性

# ls -l  == ll
# ll -h :以人類易讀的模式顯示文件的大小乙帮。Kb/Mb/G
# ls -Sl : 從大到小排序 
# ls -rSl : 從小到排序 

##小擴(kuò)展:
# ll | wc -l 
##wc 是統(tǒng)計(jì)行數(shù)杜漠,|是管道命令

3. cat

cat 查看文件內(nèi)容

cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Aug 17 07:38:21 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=976105f5-f402-456c-aadd-50de49ff88f9 /                       ext4    defaults        1 1

有時(shí)候文件太長(zhǎng),我們需要借助一下其他小工具察净。

  1. 按屏輸出內(nèi)容 less
  2. 通過關(guān)鍵字查找 grep
# cat /etc/fstab | less  或者 less /etc/fstab
# cat StatisticsController.phpbak | grep -n Api 

4. vim

如果我們需要修改文件驾茴,應(yīng)該使用linux下自帶的vim編輯器。
vim一共三種操作模式:

  1. 命令模式:使用一些命令對(duì)文本文件進(jìn)行一些復(fù)制氢卡,粘貼锈至,快速定位等操作
  2. 冒號(hào)模式:對(duì)文本進(jìn)行批量修改,查找等操作
  3. 插入模式:輸入字符

<p id="div-border-top-red">按照約定译秦,我們?cè)诜?wù)器上修改任何一個(gè)文件之前峡捡,均需要對(duì)其進(jìn)行備份操作。</p>

1.打開文件

vim + 文件名

直接使用vim + 文件名筑悴,此時(shí)進(jìn)入的是vim編輯器的命令模式们拙。不能直接輸入字符修改文件。
在這個(gè)模式下可以進(jìn)行一些編輯前的預(yù)備操作:

  1. 刪除不需要的行:
    dd 刪除光標(biāo)所在的整行阁吝;

dd 刪除光標(biāo)所在行及其下的#-1行睛竣,#表示數(shù)字。

粘貼刪除的行
p 命令求摇, dd 和 p 配合就實(shí)現(xiàn)了windows下的剪切操作射沟。

  1. 粘貼操作:
    yy 復(fù)制當(dāng)前行

yy 復(fù)制光標(biāo)所在行及其下的#-1行,#表示數(shù)字与境。

粘貼
p yy 和 p 配合實(shí)現(xiàn)了windows下的復(fù)制粘貼操作验夯。

  1. 調(diào)整光標(biāo)位置,快速定位到需要修改的行
    gg : 跳轉(zhuǎn)到文本的第一行
    G : 跳轉(zhuǎn)到文本的最好一行

gg : 快速跳轉(zhuǎn)到第#行

  1. 調(diào)整光標(biāo)位置摔刁,快速定位到行內(nèi)的某個(gè)字符
    # crtl + 左右箭頭 按照空格為界挥转,每次跳轉(zhuǎn)到對(duì)應(yīng)空格后字符的詞頭。
    Home 鍵跳轉(zhuǎn)到行頭部
    End 鍵跳轉(zhuǎn)到行尾部
2.修改文件

簡(jiǎn)單修改:
通過1的操作共屈,定位到想修改的位置绑谣,
i(insert) : 當(dāng)前光標(biāo)位置插入;
a(append): 光標(biāo)后插入拗引;
o(other):在光標(biāo)當(dāng)前行之下開啟新的一行借宵。

批量修改:
在命令模式下,直接輸入:符號(hào)矾削,進(jìn)入冒號(hào)模式壤玫;在冒號(hào)模式下我們可以使用簡(jiǎn)單的命令對(duì)文件進(jìn)行批量替換。
語(yǔ)法:

:[addr]s/源字符串/目的字符串/[option]
全局替換命令為:
:%s/源字符串/目的字符串/g

說明

  1. s/ / / 可以使用 s@ @ @ 或者 s# # # 替換,從而解決特殊情況哼凯;
  2. [addr]為指定要替換的行欲间,不指定默認(rèn)當(dāng)前行。 .:當(dāng)前行到尾行 断部, 1:全文 3,5: 第3到第5行猎贴;
  3. [option] g為全文所以,不知道表示只修改每行找到打第一個(gè)蝴光。

a. 用//注釋第10-20 行內(nèi)容:
:10,20s#^#//#g

b. 在10-20行刪除 //注釋
:10,20s#^//##g

c. 批量替換全文所以的單詞:
:1,$s/sup/good/g

批量替換參考

冒號(hào)模式下的其他命令:

  1. :set num , 每行添加行號(hào)她渴,方便跳轉(zhuǎn)
  2. :# , 快速定位到第#行,:1 首行 :$ 尾行
  3. :set ai! 設(shè)置自動(dòng)縮進(jìn)
  4. :syntax on 語(yǔ)法高亮 | off 關(guān)閉
3. 退出

修改完成后虱疏,退出編輯器惹骂。

  1. 保存退出,:wq
  2. 不保存退出做瞪,:!q

如果下次打開文件出現(xiàn)

E325: 注意
發(fā)現(xiàn)交換文件 ".Dockerfile.swp"
            所有者: root    日期: Fri Nov  9 14:51:09 2018
            文件名: ~root/Dockerfile
            修改過: 是
            用戶名: root      主機(jī)名: izpo45bh60h6bsz
           進(jìn)程 ID: 5313
正在打開文件 "Dockerfile"
              日期: Thu Nov  8 11:41:25 2018

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    如果是這樣对粪,請(qǐng)用 ":recover" 或 "vim -r Dockerfile"
    恢復(fù)修改的內(nèi)容 (請(qǐng)見 ":help recovery")。
    如果你已經(jīng)進(jìn)行了恢復(fù)装蓬,請(qǐng)刪除交換文件 ".Dockerfile.swp"
    以避免再看到此消息著拭。

交換文件 ".Dockerfile.swp" 已存在!
以只讀方式打開([O]), 直接編輯((E)), 恢復(fù)((R)), 刪除交換文件((D)), 退出((Q)), 中止((A)):

則說明異常退出牍帚,上次編輯文件后沒保存文件就被關(guān)閉了儡遮。
此時(shí)可以直接輸出D,刪除交換文件直接進(jìn)入暗赶。
或者直接刪除.Dockerfile.swp文件鄙币。

2. 一些技巧

1. history命令

history查看文件的執(zhí)行歷史
當(dāng)我們要反復(fù)執(zhí)行某個(gè)比較長(zhǎng)的命令時(shí)候肃叶。我們可以進(jìn)行如下三種操作:

  1. 重新輸入命令
  2. 鍵盤上下鍵翻滾
  3. 配合history命令,找到命令的id十嘿,然后!+id 重新執(zhí)行該行命令
    !! 代表上一個(gè)命令
    ! + 曾經(jīng)輸入過命令的前幾個(gè)字母因惭,可以直接重新執(zhí)行最近的那一條命令
    ! # 重新執(zhí)行history命令看到的第#條命令。

2. bash上的快捷鍵

crtl + e 跳轉(zhuǎn)到命令行行尾
crtl + a 跳轉(zhuǎn)到命令行行首
crtl + ——> :以單詞為單位移動(dòng)绩衷,向右
crtl + <—— :以單詞為單位移動(dòng)蹦魔,向左

esc + . 獲取最后一條命令的最末尾的參數(shù),并復(fù)制到當(dāng)前命令行上

3. table

table 是linux下常用的命令之一咳燕,作用是補(bǔ)全文件路徑(包括文件名稱)或者補(bǔ)全命令勿决。

TAB鍵的兩大作用:

  1. 只需輸入文件或目錄名的前幾個(gè)字符,然后按TAB鍵招盲,如無(wú)相重的低缩,完整的文件名立即自動(dòng)在命令行出現(xiàn);如有相重的宪肖,再按一下TAB鍵表制,系統(tǒng)會(huì)列出當(dāng)前目錄下所有以這幾個(gè)字符開頭的名字。
  2. 在命令行下控乾,只需輸入例如m么介,再連續(xù)按兩次TAB鍵,系統(tǒng)將列出所有以m開頭的命令蜕衡,(包括自定義的Bshell命令函數(shù))壤短,對(duì)查找某些記不清楚的命令特有用。例如輸入ftp慨仿,將查到ftp久脯,ftpcount,ftpwho镰吆,ftpshut等本不熟悉的命令帘撰。

3. 常用命令

1. cp

cp 復(fù)制
cp [options] source dest

使用指令"cp"將當(dāng)前目錄"test/"下的所有文件復(fù)制到新目錄"newtest"下,輸入如下命令:

cp –r test/ newtest

-r 遞歸復(fù)制

2. mv

mv 移動(dòng)
1, 把文件或者目錄移動(dòng)到另外一個(gè)目錄下
mv a /b

2, 重命名文件或者目錄
mv a b

a 可以為文件或者目錄万皿,但是b最好不要存在摧找。

3. rm

rm 刪除文件或者目錄
-f, --force 忽略不存在的文件,從不給出提示牢硅。
-r蹬耘, 遞歸,刪除文件夾

rm -rf ##linux 下最強(qiáng)勢(shì)且最簡(jiǎn)單的操作之一减余,強(qiáng)制刪除指定的文件
rm file #刪除一般的文件

4. touch && mkdir

touch 創(chuàng)建文本文件
mkdir 創(chuàng)建目錄
mkdir -pv /a/b/c #如果a和b不存在综苔,遞歸創(chuàng)建/a和/a/b目錄

4. 其他問題

1,當(dāng)需要在服務(wù)器上運(yùn)行長(zhǎng)時(shí)間占據(jù)終端的命令時(shí)候,我們需要在后臺(tái)運(yùn)行命令如筛。

兩種辦法:
1.screen命令
剝離當(dāng)前終端

開啟一個(gè)新的終端

screen -S Terminal_name #Terminal_name 終端名稱

查看當(dāng)前運(yùn)行的終端

screen -ls

進(jìn)入終端

screen -r # #是-ls 中查看到的id 或者 開啟時(shí)候的Terminal_name

置于后臺(tái)

crtl + a + d

2.將文件內(nèi)容重定向到文本中

| 管道
重定向符號(hào) >>

XXX >> /dev/null #輸出的文本沒用

/dev/null 是linux下的一個(gè)設(shè)備堡牡,又被稱為"黑洞"設(shè)備,所有輸入進(jìn)這個(gè)設(shè)備的文件均消失妙黍。

/dev/zero 是一個(gè)代表一個(gè)永遠(yuǎn)輸出 0的設(shè)備文件悴侵,使用它作輸入可以得到全為空的文件。

xxx >> /tmp/xxx.logs #輸出的文本有作用

2,如何解決服務(wù)器上不能crtl + c 終止的任務(wù)签赃?

比如: php /index.php Moo SydsdsaodsInfo 這個(gè)定時(shí)任務(wù)周偎。

查詢?cè)撊蝿?wù)的進(jìn)程id,使用kill命令結(jié)束該進(jìn)程

1孵运,查詢?cè)撊蝿?wù)的進(jìn)程id :

grep 后邊加的是可以識(shí)別這個(gè)定時(shí)任務(wù)的關(guān)鍵字。比如MemeSyn 也是可以的。
ps aux | grep SydsdsaodsInfo

運(yùn)行結(jié)果:

root     31933  0.6  0.2 438432 38020 pts/9    S+   11:35   0:00 php /index.php Moo SydsdsaodsInfo 
root     31981  0.0  0.0 112652   976 pts/8    S+   11:36   0:00 grep --color=auto SydsdsaodsInfo

##說明:上邊第一行的第二個(gè)字段就是這個(gè)進(jìn)程的pid

2, kill 該進(jìn)程
kill 31933

個(gè)人小站:www.mykernel.cn

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末怕品,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子巾遭,更是在濱河造成了極大的恐慌肉康,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,332評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灼舍,死亡現(xiàn)場(chǎng)離奇詭異吼和,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)骑素,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門炫乓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人献丑,你說我怎么就攤上這事末捣。” “怎么了创橄?”我有些...
    開封第一講書人閱讀 157,812評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵箩做,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我妥畏,道長(zhǎng)邦邦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,607評(píng)論 1 284
  • 正文 為了忘掉前任咖熟,我火速辦了婚禮圃酵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘馍管。我一直安慰自己郭赐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,728評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捌锭,像睡著了一般俘陷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上观谦,一...
    開封第一講書人閱讀 49,919評(píng)論 1 290
  • 那天拉盾,我揣著相機(jī)與錄音,去河邊找鬼豁状。 笑死捉偏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泻红。 我是一名探鬼主播夭禽,決...
    沈念sama閱讀 39,071評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谊路!你這毒婦竟也來(lái)了讹躯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,802評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缠劝,失蹤者是張志新(化名)和其女友劉穎潮梯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惨恭,經(jīng)...
    沈念sama閱讀 44,256評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秉馏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,576評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喉恋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沃饶。...
    茶點(diǎn)故事閱讀 38,712評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖轻黑,靈堂內(nèi)的尸體忽然破棺而出糊肤,到底是詐尸還是另有隱情,我是刑警寧澤氓鄙,帶...
    沈念sama閱讀 34,389評(píng)論 4 332
  • 正文 年R本政府宣布馆揉,位于F島的核電站,受9級(jí)特大地震影響抖拦,放射性物質(zhì)發(fā)生泄漏升酣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,032評(píng)論 3 316
  • 文/蒙蒙 一态罪、第九天 我趴在偏房一處隱蔽的房頂上張望噩茄。 院中可真熱鬧,春花似錦复颈、人聲如沸绩聘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凿菩。三九已至机杜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衅谷,已是汗流浹背椒拗。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留获黔,地道東北人蚀苛。 一個(gè)月前我還...
    沈念sama閱讀 46,473評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像玷氏,于是被迫代替她去往敵國(guó)和親枉阵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,606評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 一预茄、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,726評(píng)論 0 10
  • Ubuntu的發(fā)音 Ubuntu刨沦,源于非洲祖魯人和科薩人的語(yǔ)言诗宣,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,215評(píng)論 9 467
  • 系統(tǒng)管理與維護(hù)命令 date date(選項(xiàng))(參數(shù)) | 選項(xiàng) | 說明 | | :-------- | ...
    蓓蓓的萬(wàn)能男友閱讀 3,872評(píng)論 0 5
  • 1. 關(guān)于Vim vim是我最喜歡的編輯器想诅,也是linux下第二強(qiáng)大的編輯器召庞。 雖然emacs是公認(rèn)的世界第一,我...
    Dyworldhua閱讀 1,364評(píng)論 0 2
  • 習(xí)習(xí)涼風(fēng)陣陣香来破,嘈雜人家多繁忙篮灼。 身在塵世多紛擾,但喜夜間一片光徘禁。 一直很喜歡風(fēng)诅诱。小時(shí)候吹風(fēng)被迷住了,就一直想送朱,大...
    像鏡閱讀 328評(píng)論 0 0