1. 程式人生 > >20165236郭金濤 預備作業3 Linux安裝及學習

20165236郭金濤 預備作業3 Linux安裝及學習

linux命令 入行 打印 打包 當前 作用 重命名文件 spa 恢復

Linux安裝過程遇到的問題

1、Linux安裝過程中沒有Ubuntu(64-bit)選項(我的電腦是64位)

??解決辦法:原因是沒有開啟blos,每個電腦都有進入blos的方法,以惠普電腦為例,進入blos的方法是按電源鍵啟動電腦,在屏幕剛亮時,不停點擊f10按鍵,就可以進入blos界面,然後根據選項開啟blos就可以了。

  • 2、遇到圖2的問題

    技術分享圖片

??出現這種情況的原因之一是沒有開啟blos,原因之二可能是電腦上安裝的安全軟件禁止開啟虛擬化,解決辦法是退出安全軟件然後再試。

3、在安裝增強功能時遇到圖3的問題

技術分享圖片

??這是我們在安裝增強功能時在終端輸入相關命令時輸入錯誤後直接退出終端想重新安裝,結果出現圖3問題,因為你已經加載了光盤所以需要彈出光盤重新加載,彈出方法是在Linux桌面選中光盤的圖標左擊選擇彈出。

  • Linux學習

    ?第一章 Linux簡介

主要介紹了操作系統的基本概念, Linux 的歷史,Linux 與 Windows 的區別等入門知識。
技術分享圖片
在這一章,我看到Linux的整個發展過程是無數電腦天才們的不斷努力來推動的,具有很多的優勢。

對比Windows,它的優勢也是明顯的

免費使用

安全性高

效率高

可定制性

應用範疇廣

春節期間,我正好也去看了一部電影——唐人街探案2,其中一個片段更是將Linux系統吹得神乎其神,能夠學習Linux也是很開心。


第二章 基本概念及操作

以下整理的一些知識:

通常我們在使用 Linux 時,並不是直接與系統打交道,而是通過一個叫做 Shell 的中間程序來完成的。

Linux 操作系統下的 Shell 既是用戶交互的界面,也是控制系統的腳本語言。

Ubuntu 終端默認使用的是 bash。

創建文件touch file

進入目錄cd /etc/

查看當前目錄pwd

常用快捷鍵

按鍵作用
Tab 命令補全
Ctrl+c 強行終止當前程序
Ctrl+d 鍵盤輸入結束或退出終端
Ctrl+s 暫停當前程序,暫停後按下任意鍵恢復運行
Ctrl+z 將當前程序放到後臺運行,恢復到前臺為命令fg
Ctrl+a 將光標移至輸入行頭,相當於Home鍵
Ctrl+e 將光標移至輸入行末,相當於End鍵
Ctrl+k 刪除從光標所在位置到行末
Alt+Backspace 向前刪除一個單詞
Shift+PgUp 將終端顯示向上滾動
Shift+PgDn 將終端顯示向下滾動
歷史輸入命令

shell常用通配符

字符含義
* 匹配 0 或多個字符
? 匹配任意一個字符
[list] 匹配 list 中的任意單一字符
[!list] 匹配 除list 中的任意單一字符以外的字符
[c1-c2] 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z]

{string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
{c1..c2}| 匹配 c1-c2 中全部字符 如{1..10}

banner主要程序

安裝

$ sudo apt-get update
$ sudo apt-get install sysvbanner

打印

$ banner shiyanlou

字體改變

$ printerbanner -w 50 A

本章作業:
技術分享圖片


第三章 用戶及文件權限管理

  • 查看用戶
    $ who am i
    $ who mom likes
  • who命令
參數說明
-a 打印能打印的全部
-d 打印死掉的進程
-m 同am i,mom likes
-q 打印當前登錄用戶數及用戶名
-u 打印當前登錄用戶登錄信息
-r 打印運行等級
  • 新建用戶$ sudo adduser lilei
  • 切換登錄用戶$ su -l lilei
  • 退出 exitCtrl+d
  • 查看自己屬於哪些用戶組

    1.groups命令$ groups shiyanlou

    2.查看/etc/group/文件$ cat /etc/group | sort
    過濾信息$ cat /etc/group | grep -E "shiyanlou"

  • 將其他用戶加入sudo用戶組

$ su shiyanlou 
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei
  • 刪除用戶 $ sudo deluser lilei --remove-home
  • 變更文件所有者

    $ cd /home/lilei
    $ ls iphone6
    $ sudo chown shiyanlou iphone6
  • 修改文件權限
    $ chmod 700 iphone6
    $ chmod go-rw iphone6

本章作業
技術分享圖片

技術分享圖片


第四章 Linux目錄結構及文件基本操作

  • Linux目錄與Windows目錄的區別
  1. Linux以目錄為主,Windows以存儲介質為主
  • FHS標準
    技術分享圖片
  • 目錄路徑
  1. 進入上一級目錄 $ cd ..
  2. 進入你的home目錄 $ cd ~
  3. 使用pwd獲取當前目錄 $ pwd
  • 絕對路徑:以根" / "目錄為起點的完整路徑,以你所要到的目錄為終點
  • 相對路徑:以當前目錄 . 為起點,以你所要到的目錄為終點
  • Linux文件的基本操作
  1. 新建空白文檔 touch命令
  2. 新建目錄 mkdir命令,使用-p同時創建父目錄,例$ mkdir -p father/son/grandson
  3. 復制文件 cp命令,例$ cp test father/son/grandson
  4. 復制目錄,cp加上-r-R,例$ cp -r father family
  5. 刪除文件:rm,強制刪除-f
  6. 刪除目錄:rm命令加上-r-R
  7. 移動文件:mv,例

    $ mkdir Documents
    $ mv file1 Documents
  8. 重命名文件:$ mv file1 myfile
  9. 批量重命名:

# 使用通配符批量創建 5 個文件:
$ touch file{1..5}.txt

# 批量將這 5 個後綴為 .txt 的文本文件重命名為以 .c 為後綴的文件:
$ rename ‘s/\.txt/\.c/‘ *.txt

# 批量將這 5 個文件,文件名改為大寫:
$ rename ‘y/a-z/A-Z/‘ *.c
  1. 查看文件cat,tac,nl
  2. 分頁查看文件more,less
  3. 查看文件類型,例$ file /bin/ls
  4. 編輯文件,例$ vimtutor

本章作業
技術分享圖片


第五章 環境變量與文件查找

  • 創建變量$ declare tmp
  • 給變量賦值 $ tmp=shiyanlou
  • 讀取變量的值 $ echo $tmp
  • 環境變量

技術分享圖片

與環境變量相關的命令:setenvexport

命 令說 明
set 顯示當前 Shell 所有變量,包括其內建環境變量(與 Shell 外觀等相關),用戶自定義變量及導出的環境變量。
env 顯示與當前用戶相關的環境變量,還可以讓命令在指定環境中運行。
export 顯示從 Shell 中導出成環境變量的變量,也能通過它將自定義變量導出為環境變量。

技術分享圖片

  • 永久生效

Linux變量分為,永久的和臨時的。
/etc/bashrc 存放shell變量

/etc/profile 環境變量,永久生效

  • 命令的查找路徑和順序
  1. 查看path環境變量 $ echo $PATH
  2. 創建一個shell腳本文件$ gedit hello_shell.sh
  3. 為文件添加可執行權限$ chmod 755 hello_shell.sh
  4. 執行腳本$ ./hello_shell.sh
  5. 創建一個C語言“hello world”程序$ gedit hello_world.c
  6. 保存後使用 gcc 生成可執行文件$ gcc -o hello_world hello_world.c
  7. 創建目錄並移動文件至其中,例:

    $ mkdir mybin
    $ mv hello_shell.sh hello_world mybin/
  • 添加自定義路徑到‘PATH‘環境變量

添加自定義路徑$ PATH=$PATH:/home/shiyanlou/mybin
添加內容 $ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc

  • 修改和刪除已有變量
    1. 變量修改
    變量設置方式說明
    ${變量名#匹配字串} 從頭向後開始匹配,刪除符合匹配字串的最短數據
    ${變量名##匹配字串} 從頭向後開始匹配,刪除符合匹配字串的最長數據
    ${變量名%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最短數據
    ${變量名%%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最長數據
    ${變量名/舊的字串/新的字串} 將符合舊字串的第一個字串替換為新的字串
    ${變量名//舊的字串/新的字串} 將符合舊字串的全部字串替換為新的字串
    1. 變量刪除 $ unset temp
  • 如何讓環境變量立即生效
    1. source命令,例 $ source .zshrc
    2. source命令的別名.,例 $ source .zshrc
  • 搜索文件
    1. whereis簡單快捷,例 $ whereis who
    2. locate快而全,例 $ locate /etc/sh$ locate /usr/share/\*.jpg
    3. which小而精,例 $ which man
    4. find精而細,例 $ sudo find /etc/ -name interfaces
    5. 與時間相關的命令參數
    參數說明
    -atime 最後訪問時間
    -ctime 最後修改文件內容的時間
    -mtime 最後修改文件屬性的時間

本章作業
技術分享圖片


第六章 文件打包和壓縮

  • 常用壓縮包文件格式
文件後綴名說明
*.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
  1. 使用zip打包文件夾,例:

    $ zip -r -q -o shiyanlou.zip /home/shiyanlou
    $ du -h shiyanlou.zip
    $ file shiyanlou.zip
  2. 設置壓縮級別打包,例:

$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip
$ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/*.zip

查看壓縮文件信息$ du -h -d 0 *.zip ~ | sort

  1. 創建加密zip包
$ zip -r -l -e -o shiyanlou_encryption.zip /home/shiyanlou
  1. 解壓縮文件$ unzip shiyanlou.zip
  2. 安靜模式解壓縮$ unzip -q shiyanlou.zip -d ziptest
  3. 不解壓查看壓縮包內容$ unzip -l shiyanlou.zi

指定編碼類型unzip -O GBK 中文壓縮文件.zip

  • rar
  1. 安裝工具
$ sudo apt-get update
$ sudo apt-get install rar unrar
  1. 從指定文件或目錄創建壓縮包或添加文件到壓縮包
$ rm *.rar
$ rar a shiyanlou.rar .
  1. 刪除文件
$ rar d shiyanlou.rar .zshrc
  1. 查看不解壓文件
$ rar l shiyanlou.rar
  1. 全路徑解壓
$ unrar x shiyanlou.rar
  1. 去路徑解壓
$ mkdir tmp
$ unrar e shiyanlou.rar tmp/
  • tar(最常用)
  1. 創建tar包
$ tar -cf shiyanlou.tar ~
  1. 解包一個文件到指定目錄
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir
  1. 只查看不解包文件
$ tar -tf shiyanlou.tar
  1. 保留文件屬性和跟隨鏈接
$ tar -cphf etc.tar /etc
  1. gzip壓縮文件
$ tar -czf shiyanlou.tar.gz ~
  1. 解壓*.tar.gz文件
$ tar -xzf shiyanlou.tar.gz
  1. 其他格式
壓縮文件格式參數
*.tar.gz -z
*.tar.xz -J
*tar.bz2 -j

第七章 文件系統操作和磁盤管理

  • 查看磁盤和目錄的容量df命令,加上-h更易讀
  • du命令查看目錄容量
參數作用
du -h 同--human-readable 以K,M,G為單位,提高信息的可讀性。
$ du -h -d 指定查看目錄的深度
du -a 同--all 顯示目錄中所有文件的大小。
du -s 同--summarize 僅顯示總計,只列出最後加總的值。
  • 創建虛擬磁盤

  • 創建虛擬鏡像文件

$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img
  • 格式化磁盤
$ sudo mkfs.ext4 virtual.img
  • 掛在磁盤到目錄樹
  1. 查看已經掛載的文件系統$ sudo mount
  2. 掛載真正的磁盤到目錄樹mount [options] [source] [directory]
  3. 常用操作mount [-o [操作選項]] [-t 文件系統類型] [-w|--rw|--ro] [文件系統源] [掛載點]
  4. 例:
$ mount -o loop -t ext4 virtual.img /mnt 
# 也可以省略掛載類型,很多時候 mount 會自動識別

# 以只讀方式掛載
$ mount -o loop --ro virtual.img /mnt
# 或者mount -o loop,ro virtual.img /mnt
  • 卸載已掛載磁盤$ sudo umount /mnt
  • 為磁盤分區
    1. 查看硬盤分區表信息$ sudo fdisk -l
    2. 進入磁盤分區模式$ sudo fdisk virtual.img
      技術分享圖片
    3. p查看結果
  • 建立鏡像與回環設備的關聯losetop命令
    步驟如下:
  1. 參看所有回環設備$ sudo losetup /dev/loop0 virtual.img
  2. 解除設備關聯$ sudo losetup -d /dev/loop0
  3. 安裝kpartx工具

    $ sudo apt-get install kpartx
    $ sudo kpartx -av /dev/loop0
    # 取消映射
    $ sudo kpartx -dv /dev/loop0
  4. 格式化
  5. 新建四個空目錄用於掛載虛擬磁盤:

$ mkdir -p /media/virtualdisk_{1..3}
# 掛載磁盤分區
$ sudo mount /dev/mapper/loop0p1 /media/virtualdisk_1
$ sudo mount /dev/mapper/loop0p5 /media/virtualdisk_2
$ sudo mount /dev/mapper/loop0p6 /media/virtualdisk_3
# 卸載磁盤分區
$ sudo umount /dev/mapper/loop0p1
$ sudo umount /dev/mapper/loop0p5
$ sudo umount /dev/mapper/loop0p6
  1. $ df -h命令檢查結果

本章作業
技術分享圖片


第八章 Linux下的幫助命令

    • 內建命令與外部命令
      1. 內建命令:shell程序的一部分,包含一些簡單的Linux系統命令,不需要創建子進程,執行速度比外部命令快
      2. 外部命令:Linux系統中的實用程序部分,包含的程序量很大,命令執行過程由shell程序控制
      3. type命令區分內建命令和外部命令

        type exit
        type service
        技術分享圖片
    • help命令
      1. bash中內置有該命令
        準備:技術分享圖片
      2. 內建命令help ls
      3. 外部命令ls --help
    • man命令(沒有內建與外部命令的區分)——man ls

20165236郭金濤 預備作業3 Linux安裝及學習