linux入門(mén)

貝爾實(shí)驗(yàn)室開(kāi)發(fā)操作系統(tǒng)unix慕嚷,實(shí)現(xiàn)tcp/ip協(xié)議棧圆米,成為早期工作站的操作系統(tǒng)吊输,
1990年蹦魔,unix商業(yè)化
1991年10月激率,Linus Torvalds(linus之父)
linux操作系統(tǒng)內(nèi)核
1969 年,Ken Thompson(C語(yǔ)言之父)利用匯編語(yǔ)言開(kāi)發(fā)了 File Server System(Unics勿决,即 UNIX 的原型)
1973 年乒躺,Dennis Ritchie 和 Ken Thompson 發(fā)明了 C 語(yǔ)言,而后寫(xiě)出了 UNIX 的內(nèi)核低缩;
1977 年嘉冒,Berkeley 大學(xué)的 Bill Joy 針對(duì)他的機(jī)器修改了 UNIX 源碼,稱(chēng)為BSD(Berkeley Software Distribution)
1984 年咆繁,因?yàn)?UNIX 規(guī)定“不能對(duì)學(xué)生提供源碼”讳推,Tanenbaum 老師自己編寫(xiě)兼容于 UNIX 的 Minix,用于教學(xué)玩般;
1984 年银觅,Stallman 開(kāi)始 GNU(GNU's Not Unix)項(xiàng)目,創(chuàng)辦 FSF(Free Software Foundation)基金會(huì)壤短;
<a target="_blank">Ubuntu</a>设拟,
<a target="_blank">CentOS</a>,
<a target="_blank">Fedora</a>久脯,
<a target="_blank">OpenSUSE</a>纳胧,
<a target="_blank">Debian</a>,
<a target="_blank">Mint</a>
終端本質(zhì)上是對(duì)應(yīng)著 Linux 上的 /dev/tty 設(shè)備帘撰,Linux 的多用戶(hù)登陸就是通過(guò)不同的 /dev/tty 設(shè)備完成的跑慕,Linux 默認(rèn)提供了 6 個(gè)純命令行界面的 “terminal”(準(zhǔn)確的說(shuō)這里應(yīng)該是 6 個(gè) virtual consoles)來(lái)讓用戶(hù)登錄。在物理機(jī)系統(tǒng)上你可以通過(guò)使用[Ctrl]+[Alt]+[F1]~[F6]進(jìn)行切換
有殼就有核摧找,這里的核就是指 UNIX/Linux 內(nèi)核核行,Shell 是指“提供給使用者使用界面”的軟件(命令解析器),類(lèi)似于 DOS 下的 command(命令行)和后來(lái)的 cmd.exe 蹬耘。普通意義上的 Shell 就是可以接受用戶(hù)輸入命令的程序芝雪。它之所以被稱(chēng)作 Shell 是因?yàn)樗[藏了操作系統(tǒng)底層的細(xì)節(jié)。
在 UNIX/Linux 中比較流行的常見(jiàn)的 Shell 有 bash综苔、zsh惩系、ksh位岔、csh 等等,Ubuntu 終端默認(rèn)使用的是 bash堡牡,默認(rèn)的桌面環(huán)境是 GNOME 或者 Unity(基于 GNOME)

命令行

輸入

touch file 創(chuàng)建一個(gè)名為file的文件
cd /etc/ 進(jìn)入etc目錄
pwd 查看當(dāng)前目錄
ls
ll
echo “hello world”

輸出

快捷鍵

tab 補(bǔ)全
ctrl+c 強(qiáng)行終止當(dāng)前任務(wù)
Ctrl+d 鍵盤(pán)輸入結(jié)束或退出終端
Ctrl+s 暫停當(dāng)前程序抒抬,暫停后按下任意鍵恢復(fù)運(yùn)行
Ctrl+z 將當(dāng)前程序放到后臺(tái)運(yùn)行,恢復(fù)到前臺(tái)為命令fg
Ctrl+a 將光標(biāo)移至輸入行頭晤柄,相當(dāng)于Home鍵
Ctrl+e 將光標(biāo)移至輸入行末擦剑,相當(dāng)于End鍵
Ctrl+k 刪除從光標(biāo)所在位置到行末
Alt+Backspace 向前刪除一個(gè)單詞
Shift+PgUp 將終端顯示向上滾動(dòng)
Shift+PgDn 將終端顯示向下滾動(dòng)

通配符

  • 匹配 0 或多個(gè)字符
    ? 匹配任意一個(gè)字符
    [list] 匹配 list 中的任意單一字符
    [!list] 匹配 除list 中的任意單一字符以外的字符
    [c1-c2] 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z]
    {string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
    {c1..c2} 匹配 c1-c2 中全部字符 如{1..10}

例子

$ touch adsfasd.txt wergjlkas.txt
$ ls *.txt
$ touch love_{1..10}_linux.txt

獲取幫助

如果你遇到困難,可以使用man命令芥颈,它是Manual pages的縮寫(xiě)惠勒。
Manual pages 是 UNIX 或類(lèi) UNIX 操作系統(tǒng)中在線軟件文檔的一種普遍的形式, 內(nèi)容包括計(jì)算機(jī)程序(包括庫(kù)和系統(tǒng)調(diào)用)浇借、正式的標(biāo)準(zhǔn)和慣例捉撮,甚至是抽象的概念。
$ man <command_name>
區(qū)段 說(shuō)明
1 一般命令
2 系統(tǒng)調(diào)用
3 庫(kù)函數(shù)妇垢,涵蓋了C標(biāo)準(zhǔn)函數(shù)庫(kù)
4 特殊文件(通常是/dev中的設(shè)備)和驅(qū)動(dòng)程序
5 文件格式和約定
6 游戲和屏保
7 雜項(xiàng)
8 系統(tǒng)管理命令和守護(hù)進(jìn)程
$ man 1 ls
man 中使用搜索/<你要搜索的關(guān)鍵字>巾遭,查找完畢后你可以使用n鍵切換到下一個(gè)關(guān)鍵字所在處,shift+n為上一個(gè)關(guān)鍵字所在處闯估。
Space(空格鍵)翻頁(yè)灼舍,
Enter(回車(chē)鍵)向下滾動(dòng)一行,
j,k(vim 編輯器的移動(dòng)鍵)進(jìn)行向前向后滾動(dòng)一行涨薪。
h鍵為顯示使用幫助(因?yàn)?man 使用 less 作為閱讀器骑素,實(shí)為less工具的幫助)
q退出。
$ ls --help

例子

$ sudo apt-get update
$ sudo apt-get install sysvbanner
$ banner jh2k15
$ printerbanner -w 50 A
-w參數(shù)指定打印寬度刚夺,因?yàn)槲覀兊沫h(huán)境在屏幕中顯示比較小献丑,必須要加上寬度限制。
還有兩個(gè)類(lèi)似的命令toilet,figlet

查看用戶(hù)

$ who am i
$ who mom likes
參數(shù) 說(shuō)明
-a 打印能打印的全部
-d 打印死掉的進(jìn)程
-m 同am i,mom likes
-q 打印當(dāng)前登錄用戶(hù)數(shù)及用戶(hù)名
-u 打印當(dāng)前登錄用戶(hù)登錄信息
-r 打印運(yùn)行等級(jí)

創(chuàng)建用戶(hù)

sudo

su <user> 可以切換到用戶(hù) user侠姑,執(zhí)行時(shí)需要輸入目標(biāo)用戶(hù)的密碼
sudo <cmd> 可以以特權(quán)級(jí)別運(yùn)行 cmd 命令创橄,需要當(dāng)前用戶(hù)屬于 sudo 組,且需要輸入當(dāng)前用戶(hù)的密碼
su - <user> 命令也是切換用戶(hù)莽红,同時(shí)環(huán)境變量也會(huì)跟著改變成目標(biāo)用戶(hù)的環(huán)境變量
$ sudo adduser lilei
$ ls /home
$ su -l lilei
用戶(hù)跟退出終端一樣可以使用 exit 命令或者使用快捷鍵 Ctrl+d

用戶(hù)組

$ groups shiyanlou

查看 /etc/group 文件

$ cat /etc/group | sort
cat 命令用于讀取指定文件的內(nèi)容并打印到終端輸出
| sort 表示將讀取的文本進(jìn)行一個(gè)字典排序再輸出妥畏,然后你將看到如下一堆輸出
$ cat /etc/group | grep -E "shiyanlou"
/etc/group 的內(nèi)容包括用戶(hù)組(Group)、用戶(hù)組口令安吁、GID 及該用戶(hù)組所包含的用戶(hù)(User)醉蚁,每個(gè)用戶(hù)組一條記錄。格式如下:

group_name:password:GID:user_list

$ su shiyanlou
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei

刪除用戶(hù)

$ sudo deluser lilei --remove-home

查看文件權(quán)限

$ ls -l
.(當(dāng)前目錄)和 ..(上一級(jí)目錄)之外的所有文件鬼店,包括隱藏文件(Linux 下以 . 開(kāi)頭的文件為隱藏文件)
$ ls -A

目錄結(jié)構(gòu)

/etc 應(yīng)該放置設(shè)置文件网棍,
/bin 與 /sbin 則應(yīng)該放置可執(zhí)行文件等等。
第二層則是針對(duì) /usr 及 /var 這兩個(gè)目錄的子目錄來(lái)定義
例如 /var/log 放置系統(tǒng)登錄文件妇智,/usr/share 放置共享數(shù)據(jù)
$ tree /
sudo apt-get update
sudo apt-get install tree
cd 命令可以切換目錄
ls -a 命令查看隱藏文件
~ 通常表示當(dāng)前用戶(hù)的 home 目錄
使用 pwd 命令可以獲取當(dāng)前所在路徑(絕對(duì)路徑)
$ cd ..
$ cd ~
$ pwd

新建空白文件

$ touch file

新建目錄

$ mkdir mydir
-p 參數(shù)滥玷,同時(shí)創(chuàng)建父目錄(如果不存在該父目錄)捌锭,如下我們同時(shí)創(chuàng)建一個(gè)多級(jí)目錄(這在安裝軟件、配置安裝路徑時(shí)非常有用):
$ mkdir -p father/son/grandson

復(fù)制

cp(copy)命令復(fù)制一個(gè)文件到指定目錄
$ cp test father/son/grandson

復(fù)制目錄

cp 命令復(fù)制一個(gè)目錄
目錄需要加上 -r 或者 -R 參數(shù)罗捎,表示遞歸復(fù)制,
$ cp -r father family

刪除文件

rm(remove files or directories)命令刪除一個(gè)文件
$ rm test
想忽略這提示拉盾,直接刪除文件桨菜,可以使用 -f 參數(shù)強(qiáng)制刪除:
$ rm -f test

刪除目錄

$ rm -r family

移動(dòng)文件與文件重命名

移動(dòng)文件

使用 mv(move or rename files)命令移動(dòng)文件(剪切)。將文件“ file1 ”移動(dòng)到 Documents 目錄:
$ mv file1 Documents

重命名文件

將文件“ file1 ”重命名為“ myfile ”:
$ mv file1 myfile

批量重命名

要實(shí)現(xiàn)批量重命名捉偏,mv 命令就有點(diǎn)力不從心了倒得,我們可以使用一個(gè)看起來(lái)更專(zhuān)業(yè)的命令 rename 來(lái)實(shí)現(xiàn)。不過(guò)它要用 perl 正則表達(dá)式來(lái)作為參數(shù)夭禽,關(guān)于正則表達(dá)式我們要在后面才會(huì)介紹到霞掺,這里只做演示,你只要記得這個(gè) rename 命令可以批量重命名就好了讹躯,以后再重新學(xué)習(xí)也不會(huì)有任何問(wèn)題菩彬,畢竟你已經(jīng)掌握了一個(gè)更常用的 mv 命令。

使用通配符批量創(chuàng)建 5 個(gè)文件:

$ touch file{1..5}.txt

批量將這 5 個(gè)后綴為 .txt 的文本文件重命名為以 .c 為后綴的文件:

$ rename 's/.txt/.c/' *.txt

批量將這 5 個(gè)文件潮梯,文件名改為大寫(xiě):

$ rename 'y/a-z/A-Z/' *.c
簡(jiǎn)單解釋一下上面的命令骗灶,rename 是先使用第二個(gè)參數(shù)的通配符匹配所有后綴為 .txt 的文件,然后使用第一個(gè)參數(shù)提供的正則表達(dá)式將匹配的這些文件的 .txt 后綴替換為 .c秉馏,這一點(diǎn)在我們后面學(xué)習(xí)了 sed 命令后耙旦,相信你會(huì)更好地理解。

  1. 查看文件
    使用 cat萝究,tac 和 nl 命令查看文件
    前兩個(gè)命令都是用來(lái)打印文件內(nèi)容到標(biāo)準(zhǔn)輸出(終端)免都,其中 cat 為正序顯示,tac 為倒序顯示帆竹。
    標(biāo)準(zhǔn)輸入輸出:當(dāng)我們執(zhí)行一個(gè) shell 命令行時(shí)通常會(huì)自動(dòng)打開(kāi)三個(gè)標(biāo)準(zhǔn)文件绕娘,即標(biāo)準(zhǔn)輸入文件(stdin),默認(rèn)對(duì)應(yīng)終端的鍵盤(pán)馆揉、標(biāo)準(zhǔn)輸出文件(stdout)和標(biāo)準(zhǔn)錯(cuò)誤輸出文件(stderr)业舍,后兩個(gè)文件都對(duì)應(yīng)被重定向到終端的屏幕,以便我們能直接看到輸出內(nèi)容升酣。進(jìn)程將從標(biāo)準(zhǔn)輸入文件中得到輸入數(shù)據(jù)舷暮,將正常輸出數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出文件,而將錯(cuò)誤信息送到標(biāo)準(zhǔn)錯(cuò)誤文件中噩茄。
    比如我們要查看之前從 /etc 目錄下拷貝來(lái)的 passwd 文件:
    $ cat passwd
    可以加上 -n 參數(shù)顯示行號(hào):
    $ cat -n passwd
    nl 命令下面,添加行號(hào)并打印,這是個(gè)比 cat -n 更專(zhuān)業(yè)的行號(hào)打印命令绩聘。
    這里簡(jiǎn)單列舉它的常用的幾個(gè)參數(shù):
    -b : 指定添加行號(hào)的方式沥割,主要有兩種:
    -b a:表示無(wú)論是否為空行耗啦,同樣列出行號(hào)("cat -n"就是這種方式)
    -b t:只列出非空行的編號(hào)并列出(默認(rèn)為這種方式)
    -n : 設(shè)置行號(hào)的樣式,主要有三種:
    -n ln:在行號(hào)字段最左端顯示
    -n rn:在行號(hào)字段最右邊顯示机杜,且不加 0
    -n rz:在行號(hào)字段最右邊顯示帜讲,且加 0
    -w : 行號(hào)字段占用的位數(shù)(默認(rèn)為 6 位)
    你會(huì)發(fā)現(xiàn)使用這幾個(gè)命令,默認(rèn)的終端窗口大小椒拗,一屏顯示不完文本的內(nèi)容似将,得用鼠標(biāo)拖動(dòng)滾動(dòng)條或者滑動(dòng)滾輪才能繼續(xù)往下翻頁(yè),要是可以直接使用鍵盤(pán)操作翻頁(yè)就好了蚀苛,那么你就可以使用下面要介紹的命令在验。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市堵未,隨后出現(xiàn)的幾起案子腋舌,更是在濱河造成了極大的恐慌,老刑警劉巖渗蟹,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件块饺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡雌芽,警方通過(guò)查閱死者的電腦和手機(jī)刨沦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)膘怕,“玉大人想诅,你說(shuō)我怎么就攤上這事〉盒模” “怎么了来破?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)忘古。 經(jīng)常有香客問(wèn)我徘禁,道長(zhǎng),這世上最難降的妖魔是什么髓堪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任送朱,我火速辦了婚禮,結(jié)果婚禮上干旁,老公的妹妹穿的比我還像新娘驶沼。我一直安慰自己,他們只是感情好争群,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布回怜。 她就那樣靜靜地躺著,像睡著了一般换薄。 火紅的嫁衣襯著肌膚如雪玉雾。 梳的紋絲不亂的頭發(fā)上翔试,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音复旬,去河邊找鬼垦缅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛驹碍,可吹牛的內(nèi)容都是我干的失都。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼幸冻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了咳焚?” 一聲冷哼從身側(cè)響起洽损,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎革半,沒(méi)想到半個(gè)月后碑定,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡又官,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年延刘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片六敬。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碘赖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出外构,到底是詐尸還是另有隱情普泡,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布审编,位于F島的核電站撼班,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏垒酬。R本人自食惡果不足惜砰嘁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勘究。 院中可真熱鬧矮湘,春花似錦、人聲如沸口糕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)走净。三九已至券时,卻和暖如春孤里,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背橘洞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工捌袜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炸枣。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓虏等,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親适肠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霍衫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

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