Linux指令 useradd + 添加用戶 + d 添加用戶路徑 + e 制定密碼有效時間 + G 指定用戶所屬組 passwd + 修改用戶密碼 su + 切換用戶 exit + 退出連接(ssh連接,screen) touch + 新建一個文件 mkdir + 新建一個文件夾 ls + 顯示當 ...
Linux指令
useradd
- 添加用戶
- -d 添加用戶路徑
- -e 制定密碼有效時間
- -G 指定用戶所屬組
passwd
- 修改用戶密碼
su
- 切換用戶
exit
- 退出連接(ssh連接,screen)
touch
- 新建一個文件
mkdir
- 新建一個文件夾
ls
- 顯示當前目錄
- -l顯示當前目錄的詳細信息等同於ll
pwd
- 當前位置的定位如
/home/demo
cd
進行位置移動
- 特殊移動
cd .. 退回上一層目錄; cd - 回到之前所在目錄; cd ~ 回到主目錄;
mv
- 文件移動
mv 文件名 文件夾名
- 文件重命名
mv 文件名 新的文件名
cp
- 複製文件
rm
- 刪除文件
- 刪除文件夾需要加-r
- 強制刪除加-rf
rmdir
- 刪除空白文件夾
chmod
- 改變文件許可權
- w 可寫
- r 可續
- x 可執行
chmod 777 文件名 #給與所有人該文件的可讀可寫可執行許可權
chown
- 改變文件所屬
chown 用戶名 文件名
cat
- 查看文件內容
head
- 從頭部開始獲取文件
head -5 #獲取前5行數據
tail
- 從尾部開始獲取文件
tail -5 #獲取後5行數據
sort
排序
sort -k1 #對第一列進行排序
sort -k1 -n #對第一列按數字進行排列
sort -k1 -r #降序排列
uniq
- 去除重覆數據
grep
- 抽出所匹配的數據
top
- 查看當前系統的運行情況(cpu、記憶體、負載等)
ps
- 查看當前運行的程式情況
- -ef查看更全面的運行信息
kill
- 殺死相關進程
kill pid #pid可以通過ps或者top進行查看
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
- 兩端要加空格