傻白安裝Ubuntu的痛苦經(jīng)歷和學(xué)習(xí)過程


The First Task關(guān)于初入實(shí)驗(yàn)室

輪番的面試終于讓我這個(gè)菜鳥進(jìn)入了這個(gè)實(shí)驗(yàn)室,領(lǐng)到了自己的第一個(gè)任務(wù)還有點(diǎn)小興奮的。一個(gè)關(guān)于干預(yù)Windows10系統(tǒng)安裝Ubuntu系統(tǒng)成為雙系統(tǒng)的任務(wù)。興沖沖地跪領(lǐng)了學(xué)姐的安裝教程心想仔細(xì)研讀一番應(yīng)該不是什么難事。沒想到安裝過程曲折曲折還是曲折,還是求助了學(xué)長(zhǎng)。此處省略n個(gè)艱難的過程.

什么是Linux?

  • Unix:商業(yè),不對(duì)學(xué)生開源。1973年用C語(yǔ)言重寫,方便移植到其他硬盤上。
  • CNG:CNG is not Unix。在1984年發(fā)起,旨在構(gòu)建一個(gè)自由開放的操作系統(tǒng)。重新開發(fā)自由的工具軟件并推廣。開發(fā)gcc等其他基礎(chǔ)的軟件便于自由軟件的發(fā)展。開放軟件源碼,允許復(fù)制,傳播,修改。為防止自由軟件被其他人作為專利軟件,制定CPL授權(quán)。
  • Linux:1991年,芬蘭大學(xué)生Linus基于X86系統(tǒng)開發(fā)出的Linux內(nèi)核。

Linux文件目錄與管理


  • 文件系統(tǒng)架構(gòu)

    • Linux文件系統(tǒng)具有層級(jí)性

      • 文件或者目錄起始于根目錄“/”成為樹狀結(jié)構(gòu)
      • 由最頂層“/”開始
    • 文件與目錄名區(qū)分大小寫

    • 路徑通過“/”分隔開

    • “..”表示上層目錄?!?”表示當(dāng)前目錄

    • 隱藏目錄以“.”開頭

  • LS指令操作

    • ls列出當(dāng)前目錄內(nèi)容

    • ls/顯示根目錄,如:ls/home

    • ls-a顯示隱藏目錄與文件

    • ls-l顯示詳細(xì)內(nèi)容

    • ls-ld顯示目錄本身屬性


Ubuntu中的指令


  • pwd:顯示當(dāng)前工作目錄名
  • ls:列出當(dāng)前工作中的內(nèi)容
  • cd:進(jìn)入到某目錄。如cd/home/san/就到了桌面的工作目錄。"."表示當(dāng)前路徑,如果從/home/san/進(jìn)入/home/san/桌面,輸入cd ./桌面。./可以省略,則輸入 cd 桌面
  • cp:復(fù)制
    • " cp -r dir1 dir2 '' 把文件夾1復(fù)制一份并且命名為dir2
    • '' cp file1 file2'' 把文件1復(fù)制一份并命名為file2
  • mv:
    • 移動(dòng)文件目錄:
      • " mv dir1 file1 桌面/dir2'' 把文件夾1文件1移動(dòng)到桌面的dir2
    • 重命名文件目錄:
      • '' mv dir1 dir2'' 把dir1重命名為dir2
  • rm:刪除文件目錄
    • ''rm file1'' 刪除文件file1
    • "rm -r dir1" 刪除文件夾dir1

創(chuàng)建目錄的方法

  • mkdir dir 創(chuàng)建dir文件夾
  • touch file 創(chuàng)建一個(gè)名為file的文件
  • > file 創(chuàng)建一個(gè)名為file的文件
  • vim file 打開名為file的文件,可以寫入內(nèi)容,如果沒有file,則創(chuàng)建一個(gè)file

查看文件內(nèi)容的方法

  • "'cat file'' 查看file文件內(nèi)容
  • "less file" 有快捷鍵,可以看較長(zhǎng)的文件

查看文件類型file

  • "file dir1" 查看dir1 的文件類型
  • "file file2" 查看file2的文件類型

查看文件大小

  • "du -k file'' (KB)
  • "du -m file"(MB)

創(chuàng)建隱藏文件

  • "mkdir . dir2" 創(chuàng)建隱藏文件夾dir2
  • "touch .aa" 創(chuàng)建隱藏文件aa

查看隱藏文件

  • ''ls -a''

通配符

"*"日常命令操作就夠用了
例如:

$ ls
a.text b.text ccc.txt a.html hello.html
$ echo *.text
$ echo a*


解壓縮文件

  • unzip x.zip 解壓X.zip文件
  • zip -r x.zip x/ 壓縮文件
  • tar zxvf xxx.tar.gz(解壓)
  • tar zcvf xxx.tar.gz xxx/(壓縮)
  • tar jxvf xxx tar .bzz(解壓)
  • tar jcvf xxx tar.bzz xxx/(壓縮)

重定向(拐彎)

三個(gè)重要的文件

linux下有個(gè)重要的傳統(tǒng),所有的東西都是文件,系統(tǒng)每打開一個(gè)文件會(huì)給這個(gè)文件分配文件描述符。
有三個(gè)文件是一直打開的,所以系統(tǒng)分配了三個(gè)固定的文件描述符:

  • "0"是標(biāo)準(zhǔn)輸入文件(stdin)[直接在鍵盤上輸入數(shù)據(jù)]
  • "1"是標(biāo)準(zhǔn)輸出文件(stdout)[數(shù)據(jù)不會(huì)保留在硬盤上,而是直接被顯示到屏幕之上]
  • "2"是標(biāo)準(zhǔn)錯(cuò)誤輸出文件(stderr)[同"1"]
一個(gè)程序執(zhí)行時(shí),流程如下:從"0"進(jìn)入,正確則從"1"輸出,錯(cuò)誤從"2"輸出,輸出也通過屏幕來顯示。但我們也可以動(dòng)手改變這三股數(shù)據(jù)流向,此稱為重定向。

拐彎的各種方式

  1. 輸出重定向">"(redirect stdout)
    特點(diǎn):每次重定向之前都把文件夾清空
    兩個(gè)文件的和有兩種方式:

    $ cat file1 >> file2
    $ cat file1 file2

  2. 重定向標(biāo)準(zhǔn)錯(cuò)誤輸出 " 2 >"(redirect stdout)
    3.重定向標(biāo)準(zhǔn)的輸入"<"(redirect stdin)
例如:
  • touch file1,給file1寫入“Hello World ”
    touch file2,給file2寫入“你好”
    執(zhí)行 cat file1 > file,這樣就把cat命令的數(shù)據(jù)流向,從stdout改為了流向文件file。如果 cat file2 > file,則我們又把file2的內(nèi)容 從cat該流向的stdout改為了流向file。但file的內(nèi)容會(huì)被覆蓋。但若執(zhí)行 cat file2 >> file 則不會(huì)。
  • cat file1 file2 > file 我們也可以把文件弄成一個(gè)文件(這里我認(rèn)為的是文件的和)
  • ls shit > output. txt shit 是個(gè)根本不存在的目錄,這樣錯(cuò)誤的信息會(huì)被打印到屏幕
    ls shit 2> output.txt 那么錯(cuò)誤信息就會(huì)被存到output.txt
    此時(shí)還能用到 cowsay程序輸出信息: cowsay < output.txt

管道線

更多時(shí)候我們希望把前一個(gè)程序的輸出,直接作為后一個(gè)程序的輸入來使用,這個(gè)時(shí)候就需要管道線“|”
  • 例如:

有一堆文件:cat file.txt d.txt a.txt c.html b.txt b.txt
現(xiàn)在我們要把這個(gè)文件處理一下,去除重復(fù)內(nèi)容(uniq命令),只保留txt文件(grep),按字母順序來排序(sort

cat file.txt | uniq | grep txt | sort > output.txt


權(quán)限

粗略地,用戶在自己主目錄下會(huì)擁有寫權(quán)限,主目錄之外一般只有讀權(quán)限

三種權(quán)限
  • reading -r
  • writing-w
  • executing-x
LInux為多用戶操作系統(tǒng),用戶可分為:owner, group, world

1.文件模式
例如:

$ ls -l a.txt
-rw-rw-r--1sansan 0 Aug 30 11:50 a.txt

(我將從從左到右依次編號(hào)解釋意思)
1.“—”表示文件類型,文件類型的表示有三種:
 "-"代表 file     "l"代表 symlink   "d"代表directory 
2."rw-rw-r--"     代表了文件模式:
   "rw-"描述owner對(duì)該文件的權(quán)限情況
   "rw-"描述group對(duì)該文件的權(quán)限情況
   "r--"描述world對(duì)該文件的權(quán)限情況。(r,w,x 則分別對(duì)應(yīng)三種權(quán)限,-則意思為"no perm"也就是無權(quán)限操作)
  • 對(duì)于目錄來說,寫權(quán)限可以是 creat/delete/rename file in it.執(zhí)行權(quán)限則是我們可以進(jìn)入這個(gè)目錄
  • 對(duì)于文件來說,有執(zhí)行權(quán)限則可以把它當(dāng)作一個(gè)程序來執(zhí)行,沒有權(quán)限則進(jìn)行不了
Chmod(修改文件權(quán)限)

例如:

$ ls -l a.txt
-rw-rw-r-- 1 san san 0 Aug30 11:50 a.txt

  • 修改world的操作權(quán)限:
    • $ chmod rw-rw-rw- a.txt (錯(cuò)誤)
    • $ chmod 110 110 110 a.txt (錯(cuò)誤)[二進(jìn)制表示,1表示可以執(zhí)行,0表示無權(quán)限執(zhí)行]
      這時(shí)我們可以通過八進(jìn)制來表示,八進(jìn)制為chmod的合法參數(shù)
    • $chmod 666 a.txt(正確)
      舉個(gè)例子:

$ vim san .sh
$ ./san,sh
Permission denied
$ chmod +x san.sh
$ ./san.sh
hello san

要去除剛剛加上的的執(zhí)行權(quán)限,可以:$ chmod -x san.sh

其他形式還有許多: $ chmod +w file $chmod -w file


進(jìn)程

用戶每次在系統(tǒng)上執(zhí)行一個(gè)新的程序,系統(tǒng)都會(huì)在底層開啟一個(gè)新的進(jìn)程。

如何獲取進(jìn)程號(hào)?

PID(process ID)進(jìn)程號(hào)。Linux系統(tǒng)上有一個(gè)命令叫PS

$ man ps

它的作用是:報(bào)告當(dāng)前的進(jìn)程狀態(tài)

$ ps aux

它的作用是:查看系統(tǒng)當(dāng)前的所有進(jìn)程
內(nèi)容較多時(shí)可以用less來做分頁(yè)器,從開頭查看

$ ps aux| less

敲/vim 可以查找到我們想要的vim這個(gè)進(jìn)程。當(dāng)我們那一部分代表進(jìn)程號(hào)之后,后面一般用管道線加grep來進(jìn)行查找

$ps aux |grep vim

拿到進(jìn)程號(hào)后,復(fù)制粘貼就可以對(duì)這個(gè)進(jìn)程進(jìn)行操作,比如可以結(jié)束這個(gè)進(jìn)程:

kill 7896(隨意寫的)


查找

Locate

例如:

locate pattern

這樣會(huì)找到系統(tǒng)上的任何路徑中包含 pattern的文件和目錄,用通配符表示就是*pattern*。但是locate不可能找到系統(tǒng)上新創(chuàng)建的文件,因?yàn)閘ocate不是搜索整個(gè)系統(tǒng)文件,而是從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),updated可以把文件系統(tǒng)中的命令存放在數(shù)據(jù)庫(kù)中,但每天只會(huì)進(jìn)行一次。
若非得采用locate來定位,則可加入:

$ sudo updated

此時(shí)運(yùn)用了超級(jí)用戶,此時(shí)可定位成功。

Find

find命令就是你給它指定一個(gè)目錄,它幫你翻個(gè)底朝天

只想看見文件: $ find. -type f
只想看見目錄: $ find. -type d

找到文件后,對(duì)其進(jìn)行操作,find支持exec
例如:

peter @dog:~/mydir$ find. -type f - exec(可輸入命令)'{}' ';'

(其中'{}'代表已找到的文件名)

  • 若要找到字符串 則在-exec后+ grep Hello
  • 若要打印出匹配項(xiàng)所在的文件在';'+** -print**
  • 若要打印出匹配項(xiàng)所在的行數(shù)在 grep + -n
  • 若讓grep在查找時(shí)忽略大小寫,在-n的基礎(chǔ)上加-ni

使用apt-get來安裝軟件

大部分常用軟件都可以直接去Ubuntu官方的apt倉(cāng)庫(kù)里直接下載。Ubuntu公司專門有人把源碼下載下來打造成一個(gè)deb包,然后上傳到工作的軟件倉(cāng)庫(kù)中,我們要做的就是敲出命令

$ sudo apt-get install git

那git這個(gè)軟件的deb包就被apt-get下載到本地,同時(shí)apt-get也包裹了dpkg命令,直接把安裝配置也完成。一個(gè)命令,git就可以直接用了

  • 查找需要安裝的軟件包包名:

$ apt-cache search ncurse
$sudo apt-get install libncurse<tab>

  • 卸載軟件包:

$ sudo apt-get remove git #保留配置文件
$ sudo apt-get purge git #連配置文件一起清除

學(xué)習(xí)總結(jié)

學(xué)習(xí)Ubuntu時(shí),不可避免存在許多問題,但是還是要感謝Peter提供的教程,視頻與文本的相結(jié)合讓我理解一些難點(diǎn)。

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

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

  • centos7 常用命令管理centos服務(wù)器的時(shí)候常會(huì)對(duì)文件進(jìn)行一些常規(guī)操作,除了ftp之外了解在ssh下必要的...
    小線亮亮閱讀 1,278評(píng)論 0 2
  • 初學(xué)Linux,記錄資料,以備留存,親手測(cè)試了一部分,有的正確,不正確的也改了,沒有全部測(cè)試,如有誤,望大神們不吝...
    世外大帝閱讀 5,684評(píng)論 1 32
  • 轉(zhuǎn)載自:http://www.shiyanbar.com/questions/980系統(tǒng)信息 arch 顯示機(jī)器的...
    systeminfo閱讀 2,659評(píng)論 0 0
  • 系統(tǒng)信息arch 顯示機(jī)器的處理器架構(gòu)(1)uname -m 顯示機(jī)器的處理器架構(gòu)(2)uname -r 顯示正在...
    sky_yang閱讀 329評(píng)論 0 0
  • 系統(tǒng)信息 arch 顯示機(jī)器的處理器架構(gòu)(1) uname -m 顯示機(jī)器的處理器架構(gòu)(2) uname -r 顯...
    黑夜的眸閱讀 442評(píng)論 0 0

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