bash shell 命令 - linux

參考書籍《Linux命令行與shell腳本編程大全》

複製文件

cp 1.sh -i 13.sh

cp -i 在覆蓋前詢問用戶

cp -v 告訴用戶正在做什麼

 

 

創建目錄

mkdir 

創建多級目錄

mkdir -p New_Dir/Sub_Dir/Under_Dir

 

刪除文件夾

rmdir (只能刪除空目錄)

 

 

查看文件類型

file

file 【文件名】

[newcs@dsszbyz-etl-inf7 day]$ file *

exec_bbzx_agent_work_operate_dd.sh:      Bourne-Again shell script, UTF-8 Unicode text executable

exec_bbzx_daducha_day.sh:                Bourne-Again shell script, UTF-8 Unicode text executable, with very long lines

 

查看文件內容

cat 

cat -n 【文件名】 空行也有行號


 

cat -b 【文件名】 只給有效行加行號

[newcs@dsszbyz-etl-inf7 day]$ cat -b exec_bbzx_agent_work_operate_dd.sh

     1    #!/bin/bash

     2    #功能: 循環跑數據

     3    #參數:

     4    ##輸入日期,格式:20190101,不帶參數默認前一天

     5    cd /home/newcs/kfyy/rpt_src/bash/hour

     6    if [ ! -n "$1" ] ;then

     7      v_day=`date -d "-1 day" "+%Y-%m-%d"`

     8    else

     9      inday="$1"

    10      v_day="${inday:0:4}-${inday:4:2}-${inday:6:2}"

    11    fi

 

    12    gap=3600  #間隔1800秒

 

more 分頁顯示文件內容

 

less 功能比moer 更強大("less is moer")

 

tail 指定顯示最後多行

tail -n 50  【文件名】 顯示末尾50行 (簡寫tail-20)

tail -f 【文件名】 實時顯示文件中的新增內容(多用於實時監測系統日誌)

        ctrl +c  退出

 

head 顯示開頭多行

head -n 20 【文件名】 顯示開頭50行   (簡寫head -20)

 

查看進程

ps

單獨的ps命令,只會顯示運行在當前控制檯下的屬於當前用戶的進程

[newcs@dsszbyz-etl-inf7 ~]$ ps

  PID TTY          TIME CMD

4285 pts/66   00:00:00 bash

10616 pts/66   00:00:00 ps

 

[newcs@dsszbyz-etl-inf7 ~]$ ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0  2018 ?        00:35:21 /usr/lib/systemd/systemd --switched-root --system --deserialize 21

root         2     0  0  2018 ?        00:00:12 [kthreadd]

root         3     2  0  2018 ?        00:00:05 [ksoftirqd/0]

 UID:啓動這些進程的用戶。

 PID:進程的進程ID。

 PPID:父進程的進程號(如果該進程是由另一個進程啓動的)。

 C:進程生命週期中的CPU利用率。

 STIME:進程啓動時的系統時間。

 TTY:進程啓動時的終端設備。

 TIME:運行進程需要的累計CPU時間。

 CMD:啓動的程序名稱。

ps -l  參數 l ,會顯示更多的列。如下

 F:內核分配給進程的系統標記。

 S:進程的狀態(O代表正在運行;S代表在休眠;R代表可運行,正等待運行;Z代表僵

化,進程已結束但父進程已不存在;T代表停止)。

 PRI:進程的優先級(越大的數字代表越低的優先級)。

 NI:謙讓度值用來參與決定優先級。

 ADDR:進程的內存地址。

 SZ:假如進程被換出,所需交換空間的大致大小。

 WCHAN:進程休眠的內核函數的地址。

 

Unix 風格: -ef

BSD 風格: f

GUN長參數 風格:-forest

 

顯示層級父子關係

 

 

掛載、移除其他存儲設備

mount  掛載到某個文件路徑下

umount    卸載移動存儲設備

 

 

查看設備上的磁盤剩餘空間

df

 

df -h  以M、G爲單位顯示剩餘空間

 

 設備的設備文件位置;

 能容納多少個1024字節大小的塊;

 已用了多少個1024字節大小的塊;

 還有多少個1024字節大小的塊可用;

 已用空間所佔的比例;

 設備掛載到了哪個掛載點上。

 

du

顯示文件夾目錄、文件夾大小、文件大小

-a   #顯示目錄中文件的大小  單位 KB 。

-b  #顯示目錄中文件的大小,以字節byte爲單位。

-c  #顯示目錄中文件的大小,同時也顯示總和;單位KB。

-k 、 -m  、#顯示目錄中文件的大小,-k 單位KB,-m 單位MB.

-s  #僅顯示目錄的總值,單位KB。

-h

 

顯示文件夾大小

 

排序    sort

默認按照字符串排序

 

管道命令 “|”

 將du命令的輸出傳給 sort 命令

 

搜索數據

grep 自動模糊匹配

-v 反向搜索

-n 顯示匹配模式的行所在的行號

-c 有多少行含有匹配

-e 指定多個條件,可用正則表達式代替

 

例:查詢 包含t 或 f的文件

 

壓縮文件(.bz2    .Z    .gz    .zip)

 

gzip

 gzip:用來壓縮文件。

 gzcat:用來查看壓縮過的文本文件的內容。

 gunzip:用來解壓文件

 

歸檔數據 tar(較壓縮更常用),

 

通常文件以'*.tgz' 結尾        '*.tar.gz'

 

tar  【文件名】.tar.gz

    

 


 

外部命令(文件系統命令)    

並不是shell程序的一部分,例如:ps

找到命令路徑 

[newcs@dsszbyz-etl-inf7 hour]$ type -a ps

ps is /bin/ps

ps is /usr/bin/ps

[newcs@dsszbyz-etl-inf7 hour]$ which ps

/bin/ps

 

當外部命令執行時,會創建出一個子進程。這種操作被稱爲衍生(forking)

[newcs@dsszbyz-etl-inf7 hour]$ ps --forest

  PID TTY          TIME CMD

10083 pts/117     00:00:00 bash

2658 pts/117      00:00:00  \_ ps

 

內建命令(不用創建子進程)

有些命令有多種實現方式(內建、外部命令)例如:pwd 、 echo

[newcs@dsszbyz-etl-inf7 day]$ type -a pwd

pwd is a shell builtin

pwd is /bin/pwd

pwd is /usr/bin/pwd

[newcs@dsszbyz-etl-inf7 day]$ which pwd

/bin/pwd

type  

which    查找文件的(會在環境變量$PATH設置的目錄裏查找符合條件的文件

 

內建命令history(最近使用的命令列表)

 

 


環境變量

env    printenv

顯示變量

 

打印 echo $【變量名】 例:echo $JAVA_HOME

直接顯示環境變量,對應的文件夾內容

[newcs@dsszbyz-etl-inf7 day]$ ll $JAVA_HOME

total 25928

drwxr-xr-x 2 root root     4096 Mar 16  2018 bin

-rw-r--r-- 1 root root     3244 Dec 20  2017 COPYRIGHT

drwxr-xr-x 4 root root      147 Mar 16  2018 db

drwxr-xr-x 3 root root     4096 Mar 16  2018 include

-rw-r--r-- 1 root root  5202881 Dec 20  2017 javafx-src.zip

drwxr-xr-x 5 root root     4096 Mar 16  2018 jre

drwxr-xr-x 5 root root     4096 Mar 16  2018 lib

-rw-r--r-- 1 root root       40 Dec 20  2017 LICENSE

drwxr-xr-x 4 root root       60 Mar 16  2018 man

-rw-r--r-- 1 root root      159 Dec 20  2017 README.html

-rw-r--r-- 1 root root      424 Dec 20  2017 release

-rw-r--r-- 1 root root 21095860 Dec 20  2017 src.zip

-rw-r--r-- 1 root root    63933 Dec 20  2017 THIRDPARTYLICENSEREADME-JAVAFX.txt

-rw-r--r-- 1 root root   145180 Dec 20  2017 THIRDPARTYLICENSEREADME.txt

 

設置局部用戶定義變量

[newcs@dsszbyz-etl-inf7 ~]$ myParm="parm1"    //定義變量

[newcs@dsszbyz-etl-inf7 ~]$ echo $myParm

parm1

[newcs@dsszbyz-etl-inf7 ~]$ unset myParm            //刪除變量

[newcs@dsszbyz-etl-inf7 ~]$ echo $myParm

 

[newcs@dsszbyz-etl-inf7 ~]$

定義數組

mytest=("one" "two" "three" "four"  "five")

${mytest[1]}  //two

 

//打印數組所有值

echo ${mytest[*]}

 

parm1=("day_id" "${v_dayid}")

parm2=("hour_id" "${v_hourid}")

parmlist=(${parm1} ${parm2})

 

 

 

追加環境變量 PATH

環境變量的本質是方便運行程序命令。  

例如,運行java。沒有配置PATH時會報找不到的錯誤,必須要使用全路徑才能找到。

多個路徑是用“:”分割,追加在末尾時。

PATH = $PATH:【路徑】

PATH變量的修改只能持續到退出或重啓系統

 

環境變量持久化

/etc/profile.d目錄中創建一個以.sh結尾的文件。把所有新的或修改過的全局環境變

量設置放在這個文件中。

在大多數發行版中,存儲個人用戶永久性bash shell變量的地方是$HOME/.bashrc文件。這一

點適用於所有類型的shell進程。

但如果設置了BASH_ENV變量,那麼記住,除非它指向的是$HOME/.bashrc,否則你應該將非交互式shell的用戶變量放在別的地方

 


 

系統權限設置

 

查看用戶賬號文件

 登錄用戶名

 用戶密碼

 用戶賬戶的UID(數字形式)

 用戶賬戶的組ID(GID)(數字形式)

 用戶賬戶的文本描述(稱爲備註字段)

 用戶HOME目錄的位置

 用戶的默認shell

[newcs@dsszbyz-etl-inf7 ~]$ cat /etc/passwd | grep newcs

newcs:x:2007:2007::/home/newcs:/bin/bash

 

文件權限碼

權限問題,實際應用 java https://www.cnblogs.com/hihtml5/p/6483783.html

 

 

改變權限

chmod

 

 


安裝軟件

 

處理損壞的包依賴關係

有時在安裝多個軟件包時,某個包的軟件依賴關係可能會被另一個包的安裝覆蓋掉。這叫作

損壞的包依賴關係(broken dependency)。

如果系統出現了這個問題,先試試下面的命令:

yum clean all

然後試着用yum命令的update選項。有時,只要清理了放錯位置的文件就可以了。

如果這還解決不了問題,試試下面的命令:

yum deplist package_name

這個命令顯示了所有包的庫依賴關係以及什麼軟件可以提供這些庫依賴關係。

 

在vi 、vim編輯器中,向下翻頁 (ctrl+f) 向上翻頁 (ctrl+b) 

     查找字符串 斜杆“/”,再輸入查找內容。  “n”下一個。

 

wc 統計文本

[newcs@dsszbyz-etl-inf7 half_hour]$ wc exec_hlw_agent_call_condition_fh-2.sh

  92  417 5850 exec_hlw_agent_call_condition_fh-2.sh

 文本的行數

 文本的詞數

 文本的字節數

 

 

重定向

 

"<" 、">"、 "<<"

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章