20165211 預備做業3 Linux安裝與學習

20165211 預備做業3 Linux安裝與學習

1. Linux安裝

涉及軟件:VirtualBox,Ubuntu
參考教程:基於VirtualBox安裝Ubuntu圖文教程
安裝過程的問題
  1. 在安裝VirtualBox以後,建立虛擬機的過程當中,類型爲Linux,但在版本里找不到64-bit的Ubuntu。html

    在網上查找了一些資料以後,我發現是本身的電腦沒有開啓虛擬化,應該要進入BIOS打開虛擬化。這裏真的要吐槽一下win10,我找了不少的方法教程,才終於找到了進入BIOS的方法。這應該也和各個電腦的設置有關係吧。linux

    打開虛擬化以後,就能夠順利的設置爲64位的Ubuntu了。
    shell

  2. 在安裝Ubuntu時,按照教程中的連接,結果,這個下載連接是錯誤的,只要在百度裏找到正確的官網連接就能夠了。
    ubuntu

Linux學習

第一章 Linux簡介

主要介紹了操做系統的基本概念, Linux 的歷史,Linux 與 Windows 的區別等入門知識。
image
在這一章,我看到Linux的整個發展過程是無數電腦天才們的不斷努力來推進的,具備不少的優點。vim

對比Windows,它的優點也是明顯的安全

無償使用bash

安全性高app

效率高less

可定製性iphone

應用範疇廣

春節期間,我正好也去看了一部電影——唐人街探案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標準
    image
  • 目錄路徑
    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
    1. 重命名文件:$ mv file1 myfile
    2. 批量重命名:
# 使用通配符批量建立 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
  • 環境變量

image

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

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

image

  • 永久生效

    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
  1. 設置壓縮級別打包,例:
$ 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
      image
    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
  1. 格式化
  2. 新建四個空目錄用於掛載虛擬磁盤:
$ 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
    image
  • help命令
    1. bash中內置有該命令
      準備:image
    2. 內建命令help ls
    3. 外部命令ls --help
  • man命令(沒有內建與外部命令的區分)——man ls

    章節數 說明
    1 Standard commands (標準命令)
    2 System calls (系統調用)
    3 Library functions (庫函數)
    4 Special devices (設備說明)
    5 File formats (文件格式)
    6 Games and toys (遊戲和娛樂)
    7 Miscellaneous (雜項)
    8 Administrative Commands (管理員命令)
    9 其餘(Linux特定的), 用來存放內核例行程序的文檔。
  • info命令(更爲全面)——info ls

相關文章
相關標籤/搜索