black horse 2017 c++ day 01

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章