Shell编程常用命令
shell:簡單、易用、高效,是一個內置的腳本,不需下載
什么是腳本:一條一條命令的堆積
shell?是一個程序,一般都是放在/bin或者/user/bin目錄下,當前?Linux?系統可用的?Shell?都記錄在/etc/shells文件中。/etc/shells是一個純文本文件,你可以在圖形界面下打開它,也可以使用?cat?命令查看它。
在現代的?Linux?上,sh?已經被?bash?代替,/bin/sh往往是指向/bin/bash的符號鏈接。?所謂的符號鏈接就是軟連接。
如果你希望查看當前?Linux?的默認?Shell,那么可以輸出?SHELL?環境變量。
書寫shell腳本
vim 自定義(做到見名知意).sh#!/bin/bash 指定解釋器類型,如何查看解釋器類型,echo $SHELL命令命令執行shell腳本的三種方法
第一種:正規方式:添加可執行權,我們可以先查看我們編寫的shell腳本,它是沒有執行權的,那么我們要賦予它執行權
chmod +x 腳本然后執行shell腳本
./ 腳本如果不加./直接輸入腳本可不可以執行呢,是不可以的,因為root的路徑沒有寫入$PATH這個里面。
只要執行
vim /etc/profile.d/自定義名字.sh
export PATH=/root:$PATH
而后同步
source /etc/profile.d/自定義.sh再去直接執行腳本的名字即可成功
第二種
直接用bash解釋器去執行shell腳本。當前終端會新生成一個子?bash 去執行腳本。
第三種
source 腳本source filename 與 bash filename 及./filename執行腳本的區別
當shell腳本具有可執行權限時,用bash filename與./filename執行腳本是沒有區別得。
./filename是因為當前目錄沒有在PATH中,所以”.”是用來表示當前目錄的。
source filename這個命令其實只是簡單地讀取腳本里面的語句依次在當前shell里面執行,沒有建立新的子shell。那么腳本里面所有新建、改變變量的語句都會保存在當前shell里面。
bash filename重新建立一個子shell,在子shell中執行腳本里面的語句,該子shell繼承父shell的環境變量,但子shell新建的、改變的變量不會被帶回父shell。
什么是子shell:
利用pstree查看。
第一個bash就是父,第二個就是子,第三個也是子,第二對于第三個而言,是第三個的父。
shell編程常用命令
grep:過濾 結合 wc? -c? -w? -l??
表示不區分大小寫,將你填加的選項的大小寫都篩選出來
-i比如
echo “this is Is Sm”| grep –i "i"它將i的大寫小寫都用紅顏色標注了出來
你n后頭跟什么篩選的字符,那么含有此字符的所在行會被曬選出來,并顯示行號。
-n比如:我想查看/etc/passwd 這個文件含有數字7的是哪幾行
cat /etc/passwd | grep -n 7只打印匹配的內容
-o比如:我想查看/etc/passwd 這個文件含有的數字7。
cat /etc/passwd | grep –o 7只打印每個文件匹配的行數
-c比如:我想查看/etc/passwd 這個文件含有的數字7的有幾行。
cat /etc/passwd | grep –c 7打印匹配的前幾行
-B(before)打印匹配的后幾行
-A(after)打印匹配的前后幾行
-C打印不匹配的行
-v打印空白行
^$ 空格cut:cut 命令從文件的每一行剪切字節、字符和字段并將這些字節、字符和字段寫至標準輸出。
如果不指定 File 參數,cut?命令將讀取標準輸入。必須指定?-b、-c?或?-f?標志之一。
定點分割截取
-c比如說
echo "this is ken"| cut -c 4那么顯示的結果是s,意思是你使用-c后,后面數字跟幾,它就把這段話中的第幾個字符給你截取輸出到屏幕上來。也可以指定幾到幾,比如第一個到第四個。那就是this。
兩個結合使用,d為選參照物(選定的參照物),f為定點(以參照物開始的第幾列),兩者結合截取輸出
-d -f比如
echo "root/ok/pl/cd/ed"| cut -d "/" -f2意思是說,參照物選擇的是/,2是以第一個/開始的第二列
$RANDOM是生成隨機數
結合md5sum加密
$RANDOM | md5sum | cut 1-6sort:排序
可直接用來排序,它是從小到大排序。按照數字的第一個的大小排序。
sort根據數值大小進行排序
-n從數值的最大到最小排序
-runiq:去除重復的行(相鄰且相同,認定為重復)
在行首用數字表示該行出現了多少次
-c僅僅顯示那些沒有出現重復過的行
-utr:轉換或轉出文件中的字符
指定字符,并刪除
-d轉載于:https://www.cnblogs.com/shuaiyin/p/10916865.html
總結
以上是生活随笔為你收集整理的Shell编程常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 运维笔记--postgresql占用CP
- 下一篇: Android启动界面优化技巧-Spla