1. 程式人生 > >我與大資料 - [Today is Linux] - [命令學習]

我與大資料 - [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執行到程式最後