01 Linux介紹
- POSIX標準:統一Unix、Linux等。。。接口
- 類Unix
- Linux內核版本 & 發行版本
- GNU: GNU is Not Unix
02 目錄結構介紹
FHS標準:
- /:根目錄
- /bin:工具
- /home:用戶家目錄
- /lib /usr/lib /usr/local/lib:庫函數
- /usr/include: 頭文件
03 文件權限說明
文件分類
- 普通文件 -
- 目錄文件 d => directory
- 設備文件 b => block c => char??? /dev
- 鏈接文件 l
- 管道文件
文件權限
- /etc/group:用戶組id
- /ect/passwd:用戶id&組id
04 命令使用方式和技巧
查看幫助文檔
- –help
- man
- printf
- man printf == man 1 printf
- man 3 printf
- history
05 常用命令:ls
- ls -alh
- ls *.c
- ls ?.png
- ls [a-f].c
- touch *.c 更改所有.c文件的時間爲當前
- touch *.c
06 常用命令:重定向、more、管道
重定向
- ls > test.txt
- ls >> test.txt
more分屏顯示
- cat /usr/include/stdio.h
- more /usr/include.h => q退出
管道
- 一個命令的輸出作爲另一個命令的輸入
- cat stdio.h | more
- ls | grep std
07 常用命令:clear、cd、pwd
clear or ctrl + l
cd
- cd:切換到/home/username
- cd ~:切換到/home/username
- cd -:切換到上一個進入的目錄
- cd …:切換到上一級目錄
08 課堂答疑:管道、目錄
09 上午知識點回顧
- cd ~/share/cmd => /home/Yolanda/share/cmd
10 常用命令:mkdir、rmdir、rm
- mkdir -p 遞歸創建目錄
- rmdir 只能刪除空文件夾
- rm 刪除文件
- rm -r 刪除文件夾
- rm -f 忽略提示
- rm -i 交互式刪除,二次確認
11 ln
- 建立鏈接文件
- 鏈接文件分爲軟鏈接和硬鏈接
- 軟鏈接相當於Windows的快捷方式
硬鏈接:ln 源文件 鏈接文件
- ln 1.txt abc.txt
- 特點:兩個文件,改其中一個,同步更改另一個文件,均獨立佔內存,刪除其中一個文件,不會影響另一個文件
- 硬鏈接只能鏈接普通文件,不能鏈接目錄
軟鏈接:ln -s 源文件 鏈接文件
- ln -s 1.txt abc.txt
- ls -l第一個字符爲l,表示爲軟鏈接,-s表示soft
- 特點:軟鏈接文件大小固定,不隨源文件大小變化,軟鏈接依賴源文件存在
- 刪除源文件,軟鏈接文件打開爲空
- 普通文件&目錄都可以創建軟鏈接
12 grep
- cat 1.txt 查看文件內容
- cat 1.txt 2.txt 可顯示多個文件內容
- cat 1.txt 2.txt > abd.txt 將兩個文件寫入另一個文件
grep 搜索
- grep Yolanda test.txt 在文件中查找字符串
- grep Yolanda test.txt -n 查找結果顯示行號
- grep a test.txt -i 忽略大小寫
- grep a test.txt -v 反選,顯示不包含a的行
- grep “1 2 3” 查找關鍵字若包含空格,需使用單引號/雙引號,否則只接受一個關鍵字
grep搜索內容可以是正則表達式
- grep ^a test.txt -n: 查找以a開頭的行
- grep ke$ test.txt: 查找以ke結尾的行
- grep [0-9]abc[0-9] test.txt
- grep .abc. test.txt
13 find、cp、mv、file
find
find 路徑 -name 關鍵字:按文件名遞歸查找
- 支持通配符
- 支持正則表達式
find 查找路徑 -size +/-大小:按文件大小查找
- find /tmp -size 2M 等於2M
- find /tmp -size +12k -size -5M:查找大於12k小於5M的文件
find 路徑 -perm 0xxx:按權限查找
- find ./ -perm 0777
cp
- cp a.c c.c 拷貝文件
- cp -r abc/ cba 拷貝文件夾
- -v顯示進度
- -f不提示
- -i交互式
mv
- -v -i -f 同上
可用於重命名
- mv a.c c.c
- mv a.c /tmp/c.c
file 獲取文件類型
- file hello => executable / ASCII test / empty
14 tar、gzip
tar打包/解包不壓縮
打包
- tar -參數 打包文件名 需要打包的文件(支持通配符)
- -c: creat 創建壓縮包
- -v: 顯示進度
- -f: file
- cv順序無關,f必須在最後
- tar -cvf aaa.tar a.c b.c c.txt hello.py
- tar -cvf aaa.tar *
解包
- tar -參數 解包文件名 解包路徑(默認當前路徑)
- tar -xvf aaa.tar 解包到當前路徑
- tar -xvf test.tar -C …/cmd 解包到指定路徑
gzip 壓縮/解壓
- gzip [-r] test.tar => test.tar.gz
- gzip -d aaa.tar.gz => aaa.tar
打包壓縮/解壓解包
- tar -czvf xxx.tar.gz 所需文件(czv順序無關)
- tar -xzvf test.tar.gz
15 tar、bzip2
bzip2 壓縮/解壓
- bzip2 [-z] test.tar => test.tar.bz2
- bzip2 -d test.tar.bz2 => test.tar
打包壓縮/解壓解包
- tar -cjvf test.tar.bz2 所需文件
- tar -xjvf test.tar.bz2
16 zip、unzip
- zip -r 目標文件(不含擴展名) 源文件
- zip -r myzip .
- unzip [-d 解壓路徑] myzip.zip
17 which
- 查看命令位置
- which ls
- which sudo
- which gcc