20165211 預備作業3 Linux安裝與學習
20165211 預備作業3 Linux安裝與學習
1. Linux安裝
涉及軟件:VirtualBox,Ubuntu
參考教程:基於VirtualBox安裝Ubuntu圖文教程
安裝過程的問題
- 在安裝VirtualBox之後,創建虛擬機的過程中,類型為Linux,但在版本裏找不到64-bit的Ubuntu。
在網上查找了一些資料之後,我發現是自己的電腦沒有開啟虛擬化,應該要進入BIOS打開虛擬化。這裏真的要吐槽一下win10,我找了很多的方法教程,才終於找到了進入BIOS的方法。這應該也和各個電腦的設置有關系吧。
打開虛擬化之後,就可以順利的設置為64位的Ubuntu了。
- 在安裝Ubuntu時,按照教程中的鏈接,結果,這個下載鏈接是錯誤的,只要在百度裏找到正確的官網鏈接就可以了。
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
- 退出
exit
或Ctrl+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目錄的區別
- Linux以目錄為主,Windows以存儲介質為主
- FHS標準
- 目錄路徑
- 進入上一級目錄
$ cd ..
- 進入你的home目錄
$ cd ~
- 使用pwd獲取當前目錄
$ pwd
- 絕對路徑:以根" / "目錄為起點的完整路徑,以你所要到的目錄為終點
- 相對路徑:以當前目錄 . 為起點,以你所要到的目錄為終點
- Linux文件的基本操作
- 新建空白文檔
touch
命令 - 新建目錄
mkdir
命令,使用-p
同時創建父目錄,例$ mkdir -p father/son/grandson
- 復制文件
cp
命令,例$ cp test father/son/grandson
- 復制目錄,
cp
加上-r
或-R
,例$ cp -r father family
- 刪除文件:
rm
,強制刪除-f
- 刪除目錄:
rm
命令加上-r
或-R
移動文件:
mv
,例$ mkdir Documents $ mv file1 Documents
- 重命名文件:
$ mv file1 myfile
批量重命名:
# 使用通配符批量創建 5 個文件:
$ touch file{1..5}.txt
# 批量將這 5 個後綴為 .txt 的文本文件重命名為以 .c 為後綴的文件:
$ rename ‘s/\.txt/\.c/‘ *.txt
# 批量將這 5 個文件,文件名改為大寫:
$ rename ‘y/a-z/A-Z/‘ *.c
- 查看文件
cat
,tac
,nl
- 分頁查看文件
more
,less
- 查看文件類型,例
$ file /bin/ls
- 編輯文件,例
$ vimtutor
第五章 環境變量與文件查找
- 創建變量
$ declare tmp
- 給變量賦值
$ tmp=shiyanlou
- 讀取變量的值
$ echo $tmp
- 環境變量
與環境變量相關的命令:set
,env
,export
命 令 | 說 明 |
---|---|
set | 顯示當前 Shell 所有變量,包括其內建環境變量(與 Shell 外觀等相關),用戶自定義變量及導出的環境變量。 |
env | 顯示與當前用戶相關的環境變量,還可以讓命令在指定環境中運行。 |
export | 顯示從 Shell 中導出成環境變量的變量,也能通過它將自定義變量導出為環境變量。 |
- 永久生效
Linux變量分為,永久的和臨時的。
/etc/bashrc
存放shell變量
/etc/profile
環境變量,永久生效
- 命令的查找路徑和順序
- 查看path環境變量
$ echo $PATH
- 創建一個shell腳本文件
$ gedit hello_shell.sh
- 為文件添加可執行權限
$ chmod 755 hello_shell.sh
- 執行腳本
$ ./hello_shell.sh
- 創建一個C語言“hello world”程序
$ gedit hello_world.c
- 保存後使用 gcc 生成可執行文件
$ gcc -o hello_world hello_world.c
創建目錄並移動文件至其中,例:
$ mkdir mybin $ mv hello_shell.sh hello_world mybin/
- 添加自定義路徑到‘PATH‘環境變量
添加自定義路徑$ PATH=$PATH:/home/shiyanlou/mybin
添加內容 $ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
- 修改和刪除已有變量
- 變量修改
變量設置方式 說明 ${變量名#匹配字串} 從頭向後開始匹配,刪除符合匹配字串的最短數據 ${變量名##匹配字串} 從頭向後開始匹配,刪除符合匹配字串的最長數據 ${變量名%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最短數據 ${變量名%%匹配字串} 從尾向前開始匹配,刪除符合匹配字串的最長數據 ${變量名/舊的字串/新的字串} 將符合舊字串的第一個字串替換為新的字串 ${變量名//舊的字串/新的字串} 將符合舊字串的全部字串替換為新的字串 - 變量刪除
$ unset temp
- 如何讓環境變量立即生效
source
命令,例$ source .zshrc
source
命令的別名.
,例$ source .zshrc
- 搜索文件
whereis
簡單快捷,例$ whereis who
locate
快而全,例$ locate /etc/sh
、$ locate /usr/share/\*.jpg
which
小而精,例$ which man
find
精而細,例$ sudo find /etc/ -name interfaces
- 與時間相關的命令參數
參數 說明 -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
使用zip打包文件夾,例:
$ zip -r -q -o shiyanlou.zip /home/shiyanlou $ du -h shiyanlou.zip $ file shiyanlou.zip
設置壓縮級別打包,例:
$ 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
- 創建加密zip包
$ zip -r -l -e -o shiyanlou_encryption.zip /home/shiyanlou
- 解壓縮文件
$ unzip shiyanlou.zip
- 安靜模式解壓縮
$ unzip -q shiyanlou.zip -d ziptest
- 不解壓查看壓縮包內容
$ unzip -l shiyanlou.zi
指定編碼類型unzip -O GBK 中文壓縮文件.zip
- rar
- 安裝工具
$ sudo apt-get update
$ sudo apt-get install rar unrar
- 從指定文件或目錄創建壓縮包或添加文件到壓縮包
$ rm *.rar
$ rar a shiyanlou.rar .
- 刪除文件
$ rar d shiyanlou.rar .zshrc
- 查看不解壓文件
$ rar l shiyanlou.rar
- 全路徑解壓
$ unrar x shiyanlou.rar
- 去路徑解壓
$ mkdir tmp
$ unrar e shiyanlou.rar tmp/
- tar(最常用)
- 創建tar包
$ tar -cf shiyanlou.tar ~
- 解包一個文件到指定目錄
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir
- 只查看不解包文件
$ tar -tf shiyanlou.tar
- 保留文件屬性和跟隨鏈接
$ tar -cphf etc.tar /etc
- gzip壓縮文件
$ tar -czf shiyanlou.tar.gz ~
- 解壓*.tar.gz文件
$ tar -xzf shiyanlou.tar.gz
- 其他格式
壓縮文件格式 | 參數 |
---|---|
*.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
- 掛在磁盤到目錄樹
- 查看已經掛載的文件系統
$ sudo mount
- 掛載真正的磁盤到目錄樹
mount [options] [source] [directory]
- 常用操作
mount [-o [操作選項]] [-t 文件系統類型] [-w|--rw|--ro] [文件系統源] [掛載點]
- 例:
$ 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
- 為磁盤分區
- 查看硬盤分區表信息
$ sudo fdisk -l
- 進入磁盤分區模式
$ sudo fdisk virtual.img
p
查看結果
- 查看硬盤分區表信息
- 建立鏡像與回環設備的關聯
losetop
命令
步驟如下:
- 參看所有回環設備
$ sudo losetup /dev/loop0 virtual.img
- 解除設備關聯
$ sudo losetup -d /dev/loop0
安裝
kpartx
工具$ sudo apt-get install kpartx $ sudo kpartx -av /dev/loop0 # 取消映射 $ sudo kpartx -dv /dev/loop0
- 格式化
新建四個空目錄用於掛載虛擬磁盤:
$ 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
$ df -h
命令檢查結果
第八章 Linux下的幫助命令
- 內建命令與外部命令
- 內建命令:shell程序的一部分,包含一些簡單的Linux系統命令,不需要創建子進程,執行速度比外部命令快
- 外部命令:Linux系統中的實用程序部分,包含的程序量很大,命令執行過程由shell程序控制
用
type
命令區分內建命令和外部命令type exit type service
- help命令
- bash中內置有該命令
準備: - 內建命令
help ls
- 外部命令
ls --help
- bash中內置有該命令
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
20165211 預備作業3 Linux安裝與學習