我與大資料 - [Today is Linux] - [命令學習]
uname 顯示系統資訊
ifconfig 檢視網路配置資訊
date 檢視時間資訊
ps -ef 檢視系統程序資訊
ps -ef | grep java 檢視系統程序資訊並進行過濾 grep過濾 |管道線 由上一個命令產生的結果傳遞到後面的命令中去
top 檢視系統cpu 記憶體使用情況 swab 快取 mem記憶體
grep 過濾以及查詢操作 grep sshd 【路徑】 查詢指定路徑下的包含sshd的 grep -r sshd 【路徑】在路徑下遍歷查詢
ps -aux檢視使用者的所有程序
kill -9 強制殺死對應的程序
df 檢視系統磁碟使用的情況 -h列印人類能看懂的格式
du 【路徑】檢視磁碟使用的情況 相當於windows屬性看大小, -h 人類看得懂的格式 -s檢視總和
mount -t vfat/def/sdb1/media/umnt 掛載U盤磁碟
umount /media/umnt 解除安裝磁碟U盤
fsck 修復檔案系統
超級賬戶 root uid = 0 普通賬戶 root建立 uid >= 500 系統賬戶 uid = 1 - 499
/etc/passwd 儲存所有賬戶的資訊 /etc/shadow 儲存賬戶密碼資訊 /root root使用者的家目錄 /home/xxx 普通使用者xx家目錄
useradd 新增普通使用者 -G 組名 使用者名稱 建立使用者同時把使用者新增的到組
gpasswd -a xx groupname 將xx新增到組 -d為刪除
userdel 刪除使用者
groupadd 【組名】建立組
passwd 使用者名稱 修改密碼
su 切換賬戶
cd 進入到某個目錄的操作
makedir 建立目錄 ./表示當前目錄 -p 可以遞迴建立目錄
touch 建立一個空檔案 touch ./abc 表示在當前目錄下建立一個叫做abc的空檔案
vi 或者 vim 建立檔案並編輯
echo '1231212' >> ./gh 建立檔案gh並追加資料1231212 << 表示追加 < 表示重寫
ll ls lh檢視檔案 ls -a 檢視所有檔案包括隱藏檔案
cat 檢視檔案 -n 顯示行號
tail 檢視檔案末尾 文字 預設10行 -數字 從後往前 讀幾行 -f 動態監控檔案產生的變化 多用於日誌監控檢視動態
head 檢視檔案開頭 從前往後看 -數字 從前往後 看幾行
more 按照百分比檢視檔案 不能回看
less 可以回看
cp 【路徑1...】【路徑2】 從路徑1複製到路徑2 -r 遞迴複製 如果目錄中有檔案也會被一起復制過去 路徑1可以有多個
mv 移動檔案 重新命名檔案【路徑1...】【路徑2】 從路徑1移動到路徑2 路徑1可以有多個
rm 刪除 -r 遞迴刪除 每個檔案都會詢問 -rf強制遞迴刪除 不會詢問
tar 壓縮包 -z 壓縮 -c打包 -x解壓縮包 -f必寫項 -C指定解包位置 -v輸出資訊
which 查詢可執行命令所在的位置
whereis 查詢檔案安裝目錄
updatedb 更新linux自帶小型資料庫
find 直接查詢 【路徑】 -name 通過名字來查詢 不建議在伺服器上使用
locate 檔案查詢 效率很高
alias 檢視系統中設定的別名 oldname = newname 設定別名 設定只是臨時有效 重啟後無效
unalias newname 取消別名
vi ~/.bashrc 永久設定別名 設定完成後 source ~/.bashrc 別名就會永久有效
pwd 檢視當前目錄
~ 表示使用者home目錄
- 表示上一次所在的位置
.. 上一級目錄 cd ..
. 當前目錄
service iptables status 檢視防火牆當前狀態 stop 關閉 start開啟
chkconfig iptables --list 檢視系統以對應方式開啟時防火牆是否自動開啟
chkconfig iptables off 將所有方式啟動系統時都不開啟防火牆 on開啟
service network status 檢視當前網絡卡的狀態 start 啟動 restart 重啟 stop停止
visudo -f /etc/sudoers 給普通使用者新增root許可權讀寫檔案
vi /etc/profile linux下的環境變數在這裡面配置
source /etc/profile 修改完成環境變數後需要重新整理修改
rpm 安裝rpm安裝程式 -ql 查詢 -ivh 安裝 i 安裝 v 顯示資訊 h 用#號表示進度 -e 刪除
yum info 檢視應用的安裝資訊
yum list 檢視所有已經安裝的應用程式 +package 檢視這個應用的安裝情況
yum install 線上安裝 -y 不需要確認
yum groupinstall 線上安裝整個組的應用 -y 不需要確認
yum update/upgrade + package 升級指定包名的應用程式
yum clean 清除快取 yum makecache 構建yum快取 一般用在切換yum源的時候
yum remove 解除安裝應用程式 -y
使用原始碼安裝的時候 首先解壓原始碼包,然後找到原始碼包解壓後的路徑 之行configure 檢查環境 之後執行make 編譯原始碼 最後使用make install 安裝
網路配置 /etc/host 下新增ip 主機名 域名 /etc/sysconfig/network-scripts/ifcfg-eth0 相當於在桌面上配置eth0網絡卡資訊 連結公網需要增加dns
#! + 直譯器路徑 例如 #! /bin/bash 使用/bin/bash 作為shell的直譯器
執行shell 方式 chmod 744 ./shell 改變許可權執行shell /bin/bash ./shell 直譯器執行 這時候優先使用 這個直譯器
echo 輸出語句
獲取變數需要 使用$ $變數名 ${變數名}
在變數中使用expr 表示式 需要用 `` 包裹 expr 表示式 `expr 3 + 3`
readonly 識別符號 定義只讀變數
onset 識別符號 刪除變數
shell 中的單引號 不會識別轉義符 只會把字元原封不動的打印出來 雙引號會識別轉義字元
shell 中使用反引號 `` shell會認為被反引號括起來的內容是linux下的命令 例如 expr date 需要放在反引號中
拼接的時候不要用+號 ,號 直接拼接
{#變數名}獲取字串長度
{變數名:startindex:length}擷取字串 將變數名從startindex(包括startindex)開始擷取length個長度
(反引號)`expr index "$變數名" 要查詢的字串` 用於查詢字串第一次出現的位置 下標從1開始計算
建立陣列使用()包裹,不要求資料型別一致,有點像python的元組
獲取陣列 echo ${arr1[*]} *或者&號表示獲取所有的元素 下標從0開始 越界不會報錯 會返回空
獲取陣列長度 {#array[*]} 或者& 用來獲取陣列長度
乘法符號 * 直接用做乘法會報錯,需要在*前面加上轉義符反斜槓 \
-eq 檢測兩個數是否相等,相等返回true [$a -eq $b]
-ne 檢測兩個數是否不相等, 不相等返回true [$a -ne $b]
-gt 檢測左邊的數是否大於右邊的數 是返回true [$a -gt $b]
-lt 檢測左邊的數是否小於右邊的數,是返回true [$a -lt $b]
-ge 檢測左邊的數是否大於等於右邊的數,是返回true [$a -ge $b]
-le 檢測左邊的數是否小於等於右邊的數,是返回true [$a -le $b]
if then fi 為條件控制語句格式
-o 或者 相當於or
-a 並且 相當於and
字串的運算 = 等於 [$a = $b] != 不等於[$a != $b] -z 長度是否為0,為0返回true [ -z $b ] -n長度是否為0,不為0返回true [ -n $b] [$a] 檢查a是否為空,切記每個運算子都要有空格
檔案操作 -r 檔案是否可讀 [ -r $file ] -w 檔案是否可寫 -x 檔案是否可執行 -f 檔案是否是檔案 -d 檔案是否為目錄 -s 檔案是否為空 -e 檔案是否存在
流程控制語句:if [] then cmd fi if [] then cmd elif [] then cmd fi if [] then cmd else cmd fi 轉為1行 要使用;
迴圈語句:for i in 迴圈 do cmd done while condition do cmd done
反引號 `seq 1 20` 表示從1到20逐個輸出
read 表示等待接受控制檯的一個輸入 read 變數 變數來接受使用者的輸入的值
case 語句的結構 case $變數 in a) cmd ;; b) cmd ;; c) cmd ;; *) cmd ;; esac *表示其他
breake 和 continue 用法和其他語言一樣
求表示式的值也可以使用 $(( $a + $b )) 計算 a+b
shell 取有返回值函式的 方式為 在呼叫的下一行緊接著 使用 $? 來獲取
shell 傳引數給函式 直接在函式後面 空格 加 引數
shell中對有引數的函式 取函式值的方法為 $1 取第一個引數 $2 取第二個引數 超過10的需要${10}來取 $* 取所有引數 $# 取引數的個數
給shell指令碼傳引數和獲取引數的方式與函式一樣
shell 引入檔案 source 絕對路徑 或者 . 絕對路徑
sh -n 檔名 表示除錯shell指令碼定位到錯誤地方
sh -x 檔名 能展示每一句的輸出結果,詳細的除錯資訊
sleep 時間 表示睡眠幾秒
中斷除錯的方法,在關鍵位置增加sleep睡眠時間,在程式執行時 按 ctrl+z執行中斷,按下fg回車即可繼續執行
還有一種for迴圈的方式 for((i=0;i<max;i++))
使用bashdb 除錯shell程式碼 bashdb --debugger shell路徑 除錯時的命令: l列出當前行的上下各5行共10行 q退出 h幫助 /for/向後搜尋字串for ?for?向前搜尋字串for x 1+2計算表示式的值 !! ls -laRt執行shell命令 n執行下一條語句 s 4單步執行4次,如果遇到函式就進入函式裡面 b 4在行號4處設定斷點 del 4刪除行號為4的斷點 c 10一直執行到行號10處 R|run重新執行當前指令碼 finish執行到程式最後