20165330 預備做業3 Linux安裝及學習

虛擬機安裝

  • 在安裝VirtualBox時個人電腦一直打不開官網的下載地址,還好後面有能夠打開了,因而我順利的下載好了VirtualBox。而在運行出現瞭如下錯誤:
  • 錯誤1:點擊建立虛擬機時出現瞭如下提示
    image
  • 解決方法(對個人電腦是適用的):html

    (1) 對VirtualBox的圖標點擊右鍵->屬性->兼容性;

    (2) 把VirtualBox的兼容模式改成Win7之外便可,以下圖:
    image
    (3)點擊肯定後在運行就能夠了linux

  • 錯誤2:建立好虛擬電腦後點擊虛擬電腦出現
    image
  • 解決方法:shell

    我在百度上查找了好多,感受比較靠譜的是這兩個:"不能爲虛擬電腦打開一個新任務"解決方法Virtualbox中不能爲虛擬機打開一個新任務的緣由及解決方法,我嘗試了第二個連接的方法可是失敗了致使電腦黑屏。。我找了一個叔叔幫我修復,在修復過程當中感受方法跟第二個中的方法同樣,多是個人操做不當,最後個人電腦好了虛擬機也沒有了上面的問題。bash

  • 錯誤3:在安裝加強功能時輸完命令後出現
    image
  • 解決方法:iphone

    我在百度上搜查如何使用VirtualBox軟件加強功能安裝,找到了Ubuntu虛擬機怎麼使用VirtualBox軟件加強功能安裝,在此基礎上我又按照老師的步驟打開終端輸入命令下載成功。函數

Linux學習

第一節工具

  • Linux:是一個操做系統,主要是系統調用和內核兩層。
  • 操做系統在整個計算機系統中的角色
    image
  • 學習路徑:
    image

第二節oop

  • 終端:經過一個叫作 Shell 的中間程序來完成的,在圖形界面下爲了實現讓咱們在一個窗口中完成用戶輸入和顯示輸出。
  • 常見的終端模擬器:gnome-terminal,Konsole,xterm,rxvt,kvt,nxterm 和 eterm。
  • 快捷鍵:
按鍵 效果
Ctrl+d 鍵盤輸入結束或退出終端
Ctrl+s 暫停當前程序,暫停後按下任意鍵恢復運行
Ctrl+z 將當前程序放到後臺運行,恢復到前臺爲命令fg
Ctrl+a 將光標移至輸入行頭,至關於Home鍵
Ctrl+e 將光標移至輸入行末,至關於End鍵
Ctrl+k 刪除從光標所在位置到行末
Alt+Backspace 向前刪除一個單詞
Shift+PgUp 將終端顯示向上滾動
Shift+PgDn 將終端顯示向下滾動
Ctrl+c 中斷或結束命令
Tab 進行命令補全,補全目錄,補全命令參數等
Ctrl+Alt+F1~F6 切換用戶登陸
Ctrl+Alt+F7 切換回圖形界面
Shift+n 上一關鍵字所在處
  • 通配符:一種特殊語句,主要有星號(*)和問號(?),用來對字符串進行模糊匹配(好比文件名、參數名)。
字符 含義
* 匹配0或多個字符
匹配任意一個字符
[list] 匹配list中的任意單一字符
.... ...
  • man命令:NIX 或類 UNIX 操做系統中在線軟件文檔的一種廣泛的形式
  • 做業截圖:
    image

第三節學習

  • 查看用戶:打開終點輸入如下命令
    image
  • 建立用戶:使用sudo命令建立ui

    $ sudo adduser 用戶名

建立好使用下命令切換到新建立用戶
image
注意:Linux下密碼輸入是不顯示任何內容的

  • 用戶組查看方法:
    • group命令
      image
    • 查看/etc/group文件
      image
    • 將其它用戶加入 sudo 用戶組

      默認狀況下新建立的用戶是不具備 root 權限的,也不在 sudo 用戶組,可讓其加入 sudo 用戶組從而獲取 root 權限
      image

  • 刪除用戶:
    image
  • Linux文件權限
    • 查看文件權限命令及過程:

      $ ls -1
      image
      image

    • 變動文件全部者:
      若前面已經執行刪除lilei用戶的命令,這裏從新建立一下。
      假設目前是 lilei 用戶登陸,新建一個文件,命名爲 「 iphone6 」:

      $ touch iPhone6

    可見文件全部者是 lilei :
    image
    如今,換回到 shiyanlou用戶身份,使用如下命令變動文件全部者爲 shiyanlou :

    image

    如今查看,發現 文件全部者成功修改成 shiyanlou :
    image
  • 修改文件權限:

方式一:二進制數字表示:
$ echo "echo "hello shiyanlou"" > iphone6
$ chmod 700 iphone6

方式二:加減賦值操做:
$ chmod go-rw iphone6
其中gou分別表示group、others和user,+-分別表示增長和去掉相應的權限,r爲可讀,w爲可寫。上面代碼表示去掉權限,其餘戶可讀可寫iPhone6這個文件。

第四節

  • Linux目錄結構
    • FHS標準:
      image
      FHS依據文件系統使用的頻繁與否以及是否容許用戶隨意改動,將目錄定義爲四種交互做用的形態,以下表所示:
      image
    • 目錄路經:
命令 做用
$ cd . 當前目錄
$ cd .. 進入上一級目錄
$ cd ~ 進入home目錄
$ pwd 獲取當前路徑
$ cd /usr/local/bin 絕對路徑
$ cd ../../usr/local/bin 相對路徑
  • Linux 文件的基本操做
命令 做用
$ touch 用戶名 建立空白文件
$ mkdir mydir 建立空目錄
$ mkdir -p father/son/grandson 建立多級目錄
$ cp test father/son/grandson 複製一個文件到指定目錄
$ cp -r father family 遞歸複製目錄
$ rm test 刪除一個文件
$ rm -f test 強制刪除文件
$ rm -r family 刪除一個目錄
$ mkdir Documents + $ mv file1 Documents 將文件「file1」移動到 「Documents」目錄
$ mv file1 myfile 將文件「 file1 」重命名爲「 myfile 」
$ cat passwd 查看「passwd」文件
$ cat -n passwd 可顯示文件行號
$ more passwd 打開「passwd」文件
$ tail /etc/passwd 查看「passwd」文件
$ tail -n 1 /etc/passwd 只看第幾行
$ file /bin/ls 查看文件類型

第五節

  • 環境變量
    • 變量:即 Shell變量,所謂變量就是計算機中用於記錄一個值(不必定是數值,也能夠是字符或字符串)的符號,而這些符號將用於不一樣的運算處理中。

      變量的做用域即變量的有效範圍(好比一個函數中、一個源文件中或者全局範圍),在該範圍內只能有一個同名變量。一旦離開則該變量無效,如同不存在這個變量通常。

命令 做用
$ declare 變量名 建立一個變量
$ tmp=shiyanlou 對tmp這個變量進行賦值
$ echo $tmp 讀取變量的值

注意:並非任何形式的變量名都是可用的,變量名只能是英文字母、數字或者下劃線,且不能以數字做爲開頭。

  • 環境變量:
    • 分類:
      1. 當前 Shell進程私有用戶自定義變量,如上面咱們建立的 tmp 變量,只在當前 Shell 中有效。
      2. Shell 自己內建的變量。
      3. 從自定義變量導出的環境變量。
    • Linux變量:
      1. 永久的:須要修改配置文件,變量永久生效;
      2. 臨時的:使用 export 命令行聲明便可,變量在關閉 shell 時失效。
  • 命令的查找路徑與順序:
命令 做用
$ echo $PATH 查看 PATH 環境變量的內容
$ gedit hello_shell.sh 建立一個Shell腳本文件
$ chmod 755 hello_shell.sh 爲文件添加可執行權限
$ ./hello_shell.sh 執行腳本
  • 添加自定義路徑到「PATH」環境變量:

    $ PATH=$PATH:/home/shiyanlou/mybin

  • 修改和刪除已有變量:
    • 修改:

      $ path=$PATH
      $ echo $path
      $ path=${path%/home/shiyanlou/mybin}# 或使用通配符,表示任意多個任意字符
      $ path=${path%
      /mybin}

    • 刪除:

      $ unset temp

  • 關於搜索文件
    與搜索相關的命令經常使用的有 whereis,which,find 和 locate 。

$whereis who

$ locate /etc/sh

$ locate /usr/share/*.jpg

$ which man

$ sudo find /etc/ -name interfaces

  • 做業截圖:
    image

第六節

  • 壓縮文件後綴
>文件後綴名 說明
*.zip zip程序打包壓縮的文件
*.rar rar程序壓縮的文件
*.7z 7zip程序壓縮的文件
*.tar tar程序打包,未壓縮的文件
*.gz gzip程序(GNU zip)壓縮的文件
*.xz xz程序壓縮的文件
*.bz2 bzip2程序壓縮的文件
*.tar.gz tar打包,gzip程序壓縮的文件
*.tar.xz tar打包,xz程序壓縮的文件
*.tar.bz2 tar打包,bzip2程序壓縮的文件
*.tar.7z tar打包,7z程序壓縮的文件
  • zip壓縮打包程序
    • 打包文件夾
      image
  • 設置壓縮級別及查看級別
    image
    • 建立加密壓縮包

      $ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou

  • 解壓縮zip文件
    • shiyanlou.zip解壓到當前目錄

      $ unzip shiyanlou.zip

    • 使用安靜模式,將文件解壓到指定目錄

      $ unzip -q shiyanlou.zip -d ziptest

    • 查看壓縮包的內容

      $ unzip -l shiyanlou.zip

  • rar打包壓縮命令
  1. 安裝 rar 和 unrar 工具

    $ sudo apt-get update
    $ sudo apt-get install rar unrar

  2. 從指定文件或目錄建立壓縮包或添加文件到壓縮包

    $ rm *.rar
    $ rar a shiyanlou.rar .

  3. 從指定壓縮包文件中刪除某個文件

    $ rar d shiyanlou.rar .zshrc

  4. 查看不解壓文件

    $ rar l shiyanlou.rar

  5. 使用 unrar 解壓 rar 文件

    $ unrar x shiyanlou.rar

  • tar工具
  1. 建立一個tar包

    $ tar -cf shiyanlou.tar ~

  2. 打包一個文件(-x 參數)到指定路徑的已存在目錄(-C 參數)

    $ du -h shiyanlou.tar

  3. 解包

    $ tar -zxvf something.tar

  • 做業截圖:
    image
    image

第七節

  • 查看磁盤和目錄的容量

    $ df
    經常使用參數:
    $ du -h #同--human-readable以K,M,G爲單位,提升信息的可讀性。
    $ du -a #同--all顯示目錄中全部文件的大小。
    $ du -s #同--summarize僅顯示總計,只列出最後加總的值。

  • 磁盤管理
  1. 使用 dd 命令建立虛擬鏡像文件

    $ dd if=/dev/zero of=virtual.img bs=1M count=256
    $ du -h virtual.img

  2. 使用 mkfs命令格式化磁盤(咱們這裏是本身建立的虛擬磁盤鏡像)

    $ sudo mkfs.ext4 virtual.img

  3. 使用 mount 命令掛載磁盤到目錄樹

    $ sudo mount

  4. 使用 umount 命令卸載已掛載磁盤

    命令格式 sudo umount 已掛載設備名或者掛載點,如:
    $ sudo umount /mnt

ps:因爲咱們環境的問題(環境中使用的 Linux 內核在編譯時沒有添加對 Loop device的支持),因此你將沒法掛載成功

  1. 使用 fdisk 爲磁盤分區

    $ sudo fdisk -l

  2. 進入磁盤分區模式

    $ sudo fdisk virtual.img

第八節

  • 內建命令

    內建命令其實是 shell 程序的一部分,其中包含的是一些比較簡單的 Linux 系統命令,這些命令是寫在bash源碼的builtins裏面的,並由 shell 程序識別並在 shell 程序內部完成運行,一般在 Linux 系統加載運行時 shell 就被加載並駐留在系統內存中。並且解析內部命令 shell 不須要建立子進程,所以其執行速度比外部命令快。好比:history、cd、exit 等等。

  • 外部命令

    外部命令是Linux系統中的實用程序部分,由於實用程序的功能一般都比較強大,因此其包含的程序量也會很大,在系統加載時並不隨系統一塊兒被加載到內存中,而是在須要時纔將其調用內存。雖然其不包含在shell中,可是其命令執行過程是由shell程序控制的。外部命令是在Bash以外額外安裝的,一般放在/bin,/usr/bin,/sbin,/usr/sbin等等。好比:ls、vi等。

  • type 命令來區分命令是內建的仍是外部的

    $ type 命令名
    xxx is a shell builtin //若是結果是這樣那麼這是內建命令
    xxx is /usr/sbin/xxx //若是結果是這樣那麼這是外建命令

  • 幫助命令
  1. help命令:zsh 中內置並無 help 命令,咱們能夠進入 bash 中,在 bash 中內置有該命令

    $ bash
    help ls //用於內建命令
    ls --help //用於外建命令

  2. man命令:無內建與外部命令的區分

    man ls

  3. info 命令:bash自帶有的命令

    info ls

相關文章
相關標籤/搜索