Linux指令 useradd + 添加用戶 + d 添加用戶路徑 + e 制定密碼有效時間 + G 指定用戶所屬組 passwd + 修改用戶密碼 su + 切換用戶 exit + 退出連接(ssh連接,screen) touch + 新建一個文件 mkdir + 新建一個文件夾 ls + 顯示當 ...
Linux指令
useradd 添加用戶
- 添加用戶
- -d 添加用戶路徑
- -e 制定密碼有效時間
- -G -g 指定用戶所屬組
- -c 指定一段用戶描述
- -s Shell文件指定用戶的登錄Shell
- -u 指定用戶的用戶號 如果同時有-o選項 可以重覆使用別人的用戶號
usermod 修改賬號
- 修改賬號
- 與useradd有同樣的配置
userdel 刪除用戶
- 刪除用戶
passwd 修改密碼
- 修改用戶密碼
- -l 鎖定口令,即禁用賬號
- -u 口令解鎖
- -d 賬號無口令
- -f 強迫用戶下次登陸時修改口令
groupadd 添加用戶組
添加一個組
- -g 指定一個新用戶組的組織標示號(GID)
- -o 一般與-g同時使用,標示新用戶組的GID可以與系統已有用戶組的GID相同。
groupadd -g 101 group2
groupdel 刪除用戶組
- 刪除用戶組
groupmod 修改小組屬性
- 修改用戶組的屬性
- -g 修改GID
- -o 參考groupadd指令
- -n 新用戶組 將用戶組的名字改為這個
newgrp 切換小組
- 當用戶屬於多個小組時可以通過這個指令進行切換
su 切換用戶
- 切換用戶
exit 退出連接
- 退出連接(ssh連接,screen)
touch 新建文件
- 新建一個文件
mkdir 新建文件夾
- 新建一個文件夾
ls 顯示當前目錄
- 顯示當前目錄
- -l顯示當前目錄的詳細信息等同於ll
pwd 顯示當前位置
- 當前位置的定位如
/home/demo
cd 位置移動
進行位置移動
- 特殊移動
cd .. 退回上一層目錄; cd - 回到之前所在目錄; cd ~ 回到主目錄;
mv 文件移動/重命名
- 文件移動
mv 文件名 文件夾名
- 文件重命名
mv 文件名 新的文件名
cp 複製
- 複製文件
df 檢查磁碟空間占用
- 檢查文件系統的磁碟空間占用情況。
- -a 列出所有的文件系統,包括/proc等文件系統
- -k 以KBytes的熔煉顯示各文件系統
- -m 以MBytes的容量顯示各文件系統
- -h 以 GBytes,Mbytes,Kbytes等格式顯示
- -H 以1M=1000k取代1M=1024k的進位方式
- -T 顯示文件系統類型
- -i 不用自盤容量,而以inode的數量來顯示
df [指令] [目錄或文件名]
du 查看磁碟使用空間
- du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁碟使用的空間的查看
- -a :列出所有的文件與目錄容量,因為預設僅統計目錄底下的文件量而已。
- -h :以人們較易讀的容量格式 (G/M) 顯示;
- -s :列出總量而已,而不列出每個各別的目錄占用容量;
- -S :不包括子目錄下的總計,與 -s 有點差別。
- -k :以 KBytes 列出容量顯示;
- -m :以 MBytes 列出容量顯示;
fdisk 磁碟分區
- 是Linux的磁碟分區表操作工具
- -l :輸出後面接的裝置所有的分區內容。若僅有 fdisk -l 時, 則系統將會把整個系統內能夠搜尋到的裝置的分區均列出來。
fdisk [-l] 裝置名稱
mkfs 磁碟格式化
分區完成後要進行磁碟的格式化
- -t :可以接文件系統格式,例如 ext3, ext2, vfat 等(系統有支持才會生效)
mkfs [-t 文件系統格式] 裝置文件名
fsck 磁碟檢驗
用來檢查和維護不一致的文件系統。若系統掉電或磁碟發生問題,可利用fsck命令對文件系統進行檢查。
- -t : 給定檔案系統的型式,若在 /etc/fstab 中已有定義或 kernel 本身已支援的則不需加上此參數
- -s : 依序一個一個地執行 fsck 的指令來檢查
- -A : 對/etc/fstab 中所有列出來的 分區(partition)做檢查
- -C : 顯示完整的檢查進度
- -d : 列印出 e2fsck 的 debug 結果
- -p : 同時有 -A 條件時,同時有多個 fsck 的檢查一起執行
- -R : 同時有 -A 條件時,省略 / 不檢查
- -V : 詳細顯示模式
- -a : 如果檢查有錯則自動修複
- -r : 如果檢查有錯則由使用者回答是否修複
- -y : 選項指定檢測每個文件是自動輸入yes,在不確定那些是不正常的時候,可以執行 # fsck -y 全部檢查修複。
fsck [-t 文件系統] [-ACay] 裝置名稱
mount 磁碟掛載
- umount磁碟卸載
mount [-t 文件系統] [-L Label名] [-o 額外選項] [-n] 裝置文件名 掛載點
hostnamectl 修改伺服器名字
- 修改伺服器的名字
hostnamectl set-hostname <hostname>
shutdown 關機指令
- 關機指令
- -h 10 "10 mins shutdown" 提示信息十分鐘後關機
- -h now 現在關機
- -h 20:25 今天20:25關機
- -h +10 十分鐘後關機
- -r now 立刻重啟
reboot 系統重啟
- 系統重啟
halt 關閉系統
- 關閉系統
sync 數據寫入磁碟
- 將數據同步到硬碟中
- 關閉機器前要執行該指令
rm 刪除文件
- 刪除文件
- 刪除文件夾需要加-r
- 強制刪除加-rf
rmdir 刪除文件夾
- 刪除空白文件夾
chmod 改變文件許可權
- 改變文件許可權
- w 可寫
- r 可續
- x 可執行
chmod 777 文件名 #給與所有人該文件的可讀可寫可執行許可權
chown 改變文件所屬
- 改變文件所屬
chown [-cfhvR] [--help] [--version] user[:group] file...
- user 新的文件擁有者
- group 新的文件擁有者使用者組
- -c 顯示更改的部分信息
- -f 忽略錯誤信息
- -h 修複符號鏈接
- -v 顯示詳細的處理信息
- -R 處理指定目錄以及其子目錄下的所有文件
cat 查看文件內容
- 查看文件內容
head 從文件頭部開始獲取
- 從頭部開始獲取文件
head -5 #獲取前5行數據
tail 從文件尾部開始獲取
- 從尾部開始獲取文件
tail -5 #獲取後5行數據
sort 排序
排序
sort -k1 #對第一列進行排序
sort -k1 -n #對第一列按數字進行排列
sort -k1 -r #降序排列
uniq 去除重覆
- 去除重覆數據
grep 匹配
- 抽出所匹配的數據
top 資源管理器
- 查看當前系統的運行情況(cpu、記憶體、負載等)
ps 程式運行查看
- 查看當前運行的程式情況
- -ef查看更全面的運行信息
wall 全局發送廣播
- 伺服器全局發送信息
write 單體發送信息
- 單體發送信息
write root pts/1
kill 殺死進程
- 殺死相關進程
kill pid #pid可以通過ps或者top進行查看
pkill 進程終止命令
- -kill 結束進程
- -t 關閉遠程連接
scp 遠程拷貝文件
- 遠程拷貝文件
scp **.**.**.**:/**.txt ./
SMART指令
toh
- 行轉列
- -n 轉成多少行
- -k 加主鍵
- -l 把數據用l指定的連接起來
toh -n -k -l
tov
- 列轉行
- -n 轉成多少列
- -k 以指定列作為主鍵進行排列
tov -n -k [FILE]
selcol
- -c 獲取文件第幾行數據
delcol
- -c 刪除文件第幾行數據
rowc
- 獲取文件的行數
colc
- 獲取文件的列數
ssort
- -k 對第k行進行排序
fmtfixed
- 數據格式化
- -w格式化長度
- -c格式化哪一列
fmtfixed -w<N> -cCOL1[,COL2]...[FILE]
sumup
- 求和
- -n
- -k
- -c
subtotal
- -s -c s代表這一列是在求和的部分被隱藏,c代表求和的一列
- -k 代表取出一列與s列進行比較
total
- 對數據進行求和
- -s 忽略的數據
- -c求和的數據
kcount
- -k 查看第k列的數據出現次數
hsum
- -c 對被c選中的數據進行求和
- -v 反選被c選中的
insseq
- 給已有數據加上行號
- -k 標記給多少行加行號
insrank
- 數據相同的加同樣的行號
- -k 列
- -c 行
addup
- 累加計算
- -k
- -c
insratio
- -k -c 計算數據出現的頻率
- -s 計算頻率的小數位數[15位以下]
commano master tran #命令的使用方式
- 要求(master)
- 排好序的
- 唯一的
- 從第一個欄位開始的
- 要求(tran)不帶h開頭的
- 排好序的
- 要求(tran)帶h開頭的
- 無需排好序
- master文件儘量要小(因為要存放至記憶體中使用)
ejoin
- 抽出tran中在master中存在的數據
- -a 把不符合要求的數據作為錯誤數據輸出 2> 文件名 可以輸出出來
ejoin -v -k MASTER #v是反選 k是選中比較的列
ijoin
- 抽出匹配的欄位,同時會把master中後續欄位連接到tran的後續欄位中去
ijoin -k MASTER
rjoin
- 對數據進行連接 把MATER中匹配的數據填寫到tran中去
- -i 對master中不存在的欄位進行補足時符號的指定
rjoin -kCOL1[,COL2] RIGHT[LEFT]
hejoin
hijoin
hrjoin
- 用法與不帶h的指令相同只是要求不太一樣
crossjoin
- 什麼都不加就是把master中的每一條數據都添加tran數據(這個命令的master數據不唯一)
- -k 對主鍵進行連接
- -a 把不符合的數據通過error輸出
crossjoin -a -kCOL1[,COL2] LEFT[RIGHT]
ojoin
- 全連接可以連接多個文件k欄位全部保留 右邊的文件會依次放在左邊的文件後面
- -i 對其他文件中中不存在的欄位進行補足時符號的指定
- -k key對主鍵指定
- 當文件中的主鍵重覆時按不同數據來計算(最好主鍵不重覆)
ojoin -i<String> -k[,COL] FILE...
fstrow
- -k 輸出第一行符合k的數據 (重覆的數據中取出第一個)需要排好序
lstrow
- -k 輸出最後一行符合k的數據 需要排好序
shiftrow
- 把key的下一行放在當前行的後面(重覆數據整合)需要排好序
shiftrow -k1[,COL][FILE]
row2col
- 行列轉換
row2col [FILE]
stail
- 刪除文件的數據(行)
stail -n [FILE]
pivot
- 把重覆數據進行排列 要排好序
pivot -k1 [FILE]
1 | name | test |
---|---|---|
1 | name2 | test1 |
2 | sex | test2 |
2 | sex2 | test3 |
會變成
* | name | name2 | sex | sex2 |
---|---|---|---|---|
1 | test | test1 | 0 | 0 |
2 | 0 | 0 | test2 | test3 |
unpivot
- 上面表的邏輯倒過來
fsplit
- 對文件進行分割
- -a 追記要是我寫的文件名字已存在就把數據追加到改文件的最後
- -z 會把文件以gzip的壓縮形式保存 **.gz
- -d 會把文件中按key分割的key給刪除不再顯示
fsplit [-a] NEWPATH [FILE] #fsplit ./%1/%2 data1 ps:%1%2代表第一列和第二列
sdate
SMART版的date命令 對日期進行處理
- -d 顯示某年的第幾周
sdate -d 201903w #顯示2019年的第三個周
- -w 顯示對應日期是該年的第幾個周
sdate -w 20190327d #顯示03月27日是第幾周
- -y 顯示日期 是星期幾
sdate -y 20190327d
- -e 顯示指定日期之間的日期列印
sdate -e 20190101d 20190327d
sdate 20190327/+1 #計算3月27日的第二天
- -lwd 計算上一年的今天(比如特別的節日)是哪一天
- thisyobi
Shell
:set numble
- 給shell加行號
ERROR_EXIT
- 錯誤退出
${變數名} / $變數名
- 代表變數,獲取變數的值
${數組名[*]}
- 獲取數組長度
while迴圈
while [ $iRoot -lt $lenRoot ] ; do
中間處理
let iRoot++ ##別忘記改變判斷數據
done
if判斷
if [ 條件式 ] ; then
處理A
else
處理B
fi
for迴圈
for 變數名 in 引數① 引數② ... ; do
for((i=1;i<10;i++)) do<---雙括弧
相關操作
done
- continue 跳出本次迴圈
- break 結束迴圈
find
- 查找文件
find . -tpe f -name "*.DISPLAY" #查找文件尾碼名為DISPLAY的文件
變數
- $0 當前腳本的文件名
- $n 傳遞給腳本或函數的參數。n是一個數字,表示第幾個參數。例如,第一個參數是$1。
- $# 傳遞給腳本或函數的參數個數。
- $* 傳遞給腳本或函數的所有參數
- $@ 傳遞給腳本或函數的所有參數。
- $? 上個命令的退出狀態或函數的返回值.
- $$ 當前Shell進程ID。對於Shell腳本,就是這些腳本所在的進程ID。
變數名 = ${指令}
- 將指令處理的結果賦給變數
test
- 文件比較運算符
- -e filename 如果filename存在則為真
- -d filename 如果filename為目錄則為真
- -f filename如果filename為常規文件則為真
- -L filename如果filename為符號鏈接則為真
- -r filename 如果filename可讀則為真
- -w filename 如果filename可寫則為真
- -x filename 如果filename可執行則為真
- filename1 -nt filename2 如果filename1比filename2新則為真
- filename1 -ot filename2如果filename1比filename2舊則為真
- 字元串比較符
- -z string 如果string 長度為零則為真
- -n string 如果string 長度非零則為真
- string1 = string2 如果string1和string2相同則為真
- string1 != string2 如果string1和string2不相同則為真
- 算數比較運算符
- num1 -eq num2 等於
- num1 -ne num2 不等於
- num1 -lt num2 小於
- num1-le num2小於或等於
- num1 -gt num2 大於
- num1 -ge num2大於或等於
連接符
- && 且 AND
- || 或 OR
- 兩端要加空格