作業系統
作業系統的分類
- 桌面作業系統
- 伺服器作業系統
- 嵌入式作業系統
- 移動裝置作業系統
桌面作業系統
伺服器作業系統
嵌入式作業系統
Linux分類
- 商業版 Redhat
- 穩定版 6.4 6.6 6.8 7.0(偶數)
- 開發板 6.5 5.7 6.9 (奇數)
- 免費版 CentOS
- 穩定版6.4 6.6 6.8 7.0
- 開發板 6.5 5.7 6.9
介面最好的
國內的
Linux 系統需要記住的目錄
- /etc: 系統設定,啟動程式
- /home:普通使用者的家,目錄預設資料存放目錄
- /mnt:臨時掛載儲存裝置的掛載點,u盤插入光碟機無法使用,需要掛載然後使用
- /opt:額外的應用軟體包
- /root:Linux超級許可權使用者root的家目錄
- /tmp:臨時檔案目錄,這個目錄被當作回收站使用
資料夾的增刪改查
- 新增:mkdir 資料夾名
mkdir –p 資料夾名 - 刪除:rm –rf 資料夾路徑
- 修改:mv 要修改的資料夾路徑(名) 修改後的資料夾路徑 (名)
- 查詢:ll [-a]
ls [-a] [-l] - 複製:cp [-a/-r] 原資料夾 目標資料夾
檔案的增刪改查
-
新增:touch 空文字
echo ‘內容’ > 或 >> 文字
-
刪除:rm –rf 檔案路徑(名)
-
修改:mv 修改前檔案路徑(名) 修改後檔案路徑(名)
-
查詢:ll [-a]
ls [-a] [-l]
-
檢視內容
前10行:head 檔名
head -10 檔名
後10行:tail -10 檔名
後n行:tail -n 檔名
-
檢視所有
cat 檔名
-
資料過濾
grep [引數] 關鍵字 檔名
-
編輯:vi 或者 vim
其他
- 當前所在的目錄:pwd
- 清空螢幕:clear
- 軟連線:ln -s 目標檔案絕對路徑 快捷方式路徑
- 幫助檔案:命令+ --help
- &&:前面的命令執行成功再執行後面的。
- ||:前面的命令執行失敗再執行後面的。
Vi編輯器的常用命令
VI編輯器的三種模式
末行模式
- 儲存並退出 :wq 或者 x!
- 不儲存強制退出 :q!
行內移動
- 以單詞為單位向後移動 w
- 以單詞為單位向前移動 b
- 遊標移動到行首 0 或者 ^
- 遊標移動到行尾 $
行數移動
- 移動到首行 gg
- 移動到尾行 G
- 定位到某一行 數位gg 或者 數位G 或者 :數位
段落
復原
刪除文字
- 刪除多行 數位dd
- 刪除一行 dd
- 在遊標所在的位置刪除至行尾 D
- 在遊標所在的位置刪除至行首 d0 或者 d^
- 剪下 x
複製
替換的命令
- 替換的是遊標所在的位置以及後面的資料 R
- 只替換遊標右側的第一個字元 r
資料夾內查詢
- 通過檔名指定路徑查詢 find 路徑 -name *.txt
- 通過檔名在當前路徑查詢 find -name *.txt
檔案內查詢
檔案內替換
壓縮命令
- gzip
壓縮檔案 tar zcvf 壓縮檔名.tar.gz 被壓縮的檔案/資料夾
解壓壓縮檔案 tar zxvf 壓縮的檔名.tar.gz -C 路徑 - bzip2
壓縮檔案 tar jcvf 壓縮檔名.tar.bz2 被壓縮的檔案/資料夾
解壓壓縮檔案 tar jxvf 壓縮的檔名.tar.bz2 -C 路徑
關機
重新啟動
使用者許可權
使用者和組的新增
-
組的操作
-
-
-
-
-
使用者的操作
-
- 新增使用者同時指定組 useradd -g 組名 使用者名稱
-
- 新增使用者 useradd 使用者名稱 【未指定組時,建立一個與使用者名稱相同的組】
-
- 刪除使用者(刪除家目錄):userdel –r 使用者名稱
-
-
使用者切換
- Su 使用者名稱
- Root使用者 切換到普通使用者無需密碼,普通使用者之間切換需要密碼
- 退出使用者 exit
- 普通使用者臨時借用root許可權使用sudo 命令【普通使用者已經新增到/etc/sudoers檔案中】
修改許可權
- chmod [-R] 777 檔名/資料夾名
- chmod +/- rwx 檔名|目錄名
- chmod -R u=rwx,g=rwx,o=rwx 檔名|目錄名
修改檔案所屬的組
- chown -R 新使用者:新使用者的組 檔名/資料夾名
其他命令
- 獲取當前日期:date
- 更新當前日期:date -s 「yyyy-MM-dd HH:mm:ss」
- 檢視磁碟空間:df -h
- 檢視某一目錄所佔空間大小:du -h
- 檢視程序詳細資訊:ps aux
- 檢視cpu記憶體等使用情況:top
- 殺死某一程序:kill [-9] 程序號
- 檢視記憶體使用率:free –h [-m/-g]
Cut
- 按照字元提取 head -2 1.txt | cut -c 5
- 指定分隔符 head -2 1.txt | cut -d ‘:’ -f 1,2
Sort
- 文字排序 sort 檔名
- 文字排序反轉 sort -r 檔名
- 文字排序去重 sort -u 檔名
- 數值按大小排序 sort -n 檔名
- 指定分隔符、指定排序列 sort -t ‘分隔符’ -k2nr 檔名
Wc
- 檢視檔案基本資訊 wc 檔名
- 檢視檔案行數 wc – l 檔名
- 檢視檔案單詞數 wc -w 檔名
- 檢視檔案位元組 wc -c 檔名
- 檢視多個檔案資訊 wc 檔案1 檔案2 檔案3
Uniq
- 與sort連用
- 排序、去重 cat 5.txt | sort | uniq
- 排序、去重計算總數 cat 5.txt | sort | uniq -c
Tee
- 資料定位到多個檔案 cat 5.txt | tee a.txt b.txt c.txt
Tr
- 小寫i 替換成 echo 「itheima」 | tr ‘i’ ‘I’
- 把 HELLO 轉成 小寫 echo 「HELLO」 |tr ‘[A-Z]’ ‘[a-z]’
- 刪除數位 echo ‘abc1d4e5f’ | tr -d ‘[0-9]’
Split
- 按照檔案大小切分 split -b 10k 被切分的檔案
- 按照行數進行切分 split -l 1000 被切分的檔案
Awk
- 模糊查詢 awk ‘/條件/’ 文字名
- 按照分隔符拆分,根據角標顯示
awk -F ‘,’ ‘{print $1, $2, $3}’ 1.txt
- 按照分隔符拆分,根據角標顯示並指定分隔符
awk -F ‘,’ ’ {OFS="==="}{print $1, $2, $3}’ 1.txt - 支援函數
awk -F ‘,’ '{print toupper($2),$3100}’ 1.txt
If判斷語句
- awk -F ‘,’ ‘{if($4>60) print $1, $4, 「及格」; else print $1, $4, 「不及格」}’ score.txt
Shell程式設計
Shell 指令碼的直譯器
- /bin/sh
- /bin/bash
- /sbin/nologin
- /bin/dash
- /bin/tcsh
- /bin/csh
指令碼的編寫規範
執行指令碼的三種方式
- bash 指令碼名稱 指令碼引數
- sh 指令碼名稱 指令碼引數
- /指令碼名稱 指令碼引數【./指令碼名稱之間沒有空格】【chmod 777 指令碼名稱】
變數的宣告
- 變數名=」值」【中間不能有空格】
- 變數名要求 字母或下劃線或數位(開頭不能是數位)構成
變數的參照
- 使用$ 或 ${}參照變數
- 刪除變數 唯讀變數
- 刪除 unset 變數名
- 唯讀 readonly 變數名
字串使用
- 雙引號(」」):內部可以使用變數
- 單引號(‘’):內部所有的原樣輸出
- 反引號(``):表示可執行
字串長度及擷取
- 長度: echo ${#skill}
- 擷取: echo ${str:2:2} 【在第二個字元開始擷取擷取兩位】
指令碼引數傳遞
- bash 指令碼名 引數1 引數2 引數3 。。。。。。
- 指令碼內
- $0 指令碼名稱
- $1 引數1
- $2 引數2
- $n 引數n
- $* 所有引數
- $# 引數的個數
算數運運算元
- 加法計算
expr 2 + 2
- 乘法計算
expr 2 \* 2
流程控制if
- if [ $a -gt 10 ];then
程式碼1
elif [ $a -lt 10 ];then
程式碼2
else
程式碼3
fi
關係運算子
- 大於:-gt
- 小於:-lt
- 大於等於:-ge
- 小於等於 :-le
- 小於:-eq
- 不等於 :-ne
迴圈
- For 迴圈:
For aa in XXXX
do
迴圈體
done - While迴圈:
While 條件 ;
do
迴圈體
done
跳出迴圈
- 跳出所有迴圈:break
- 跳出當前迴圈,進入下一次迴圈:continue
case ()
- case 值 in
結果1)
結果1對應的操作;;
結果2)
結果2對應的操作;;
結果3)
結果3對應的操作;;
esac
接收控制檯資料
函數的使用
- 函數宣告:
[function] 函數名(){
函數體
$引數1
$引數2
$引數3
}
函數呼叫
陣列
- 陣列宣告: 陣列名稱=(元素1 元素2 元素3 元素4)
陣列的使用
- 單個使用 echo 陣列名[角標] 【角標從0開始】
- 遍歷陣列
for var in ${my_arr[*]}
do
echo $var
done
檔案載入
- 在檔案中新增 . 指令碼名稱 或者 source 指令碼名稱
#!/bin/bash - source ./test1.sh :載入test1.sh 的檔案內容