您好,登錄后才能下訂單哦!
沈超:
微博:weibo.com/lampsc
一 shell簡介
1 概念
命令解釋器
2 常見shell
bash linux標準shell
附:她保存在/etc/bash里面,是一個二進制可執行文件,所以不能直接:
vim/bin/bash 會是亂碼
sh 早期shell,較簡單
csh(UNIX默認的Shell!) ksh tcsh unix shell
附:他們的大部分是相同的,但是也會有所區別,比如配置文件的保存位置
vi /etc/shells linux支持的shell
直接輸入csh并不報錯,因為他已經從bash切換到了csh
(返回exit)
3 shell腳本
附:創建文件夾/文件目錄:mkdirsh
Linxu并不區分擴展名,這點與Windows不同!
#!/bin/bash
例1:打印時間
#!/bin/bash
echo"hello world!"
腳本執行方式:
1) 賦予執行權限(慣用法)
如:chmod755 hello.sh
路徑執行 /root/shell/hello.sh#絕對路徑
./hello.sh #相對路徑
2) 不賦予執行權限
bash 腳本名
如:bashecho.sh
4 bash常見功能
1)歷史命令
默認保存1000條歷史命令:
vi /etc/profile 修改環境變量配置文件,要生效,必須注銷
HISTSIZE=1000 修改默認歷史命令條數
history 查詢系統歷史命令
歷史命令保存文件
~/.bash_history
history -w 把內存中命令歷史,保存入文件
history -c 清空所有的歷史命令
重復歷史命令
!n 重復第n條命令
!str 重復最后一個以str開頭的命令
上箭頭 調用上面的命令
2)別名
附:Linux默認使用ls之后會以藍色顯示文件夾
但是也可以使用:ls-- color=never 來取消顯示顏色
alias 查看系統中生效的別名
附:
alias ls='ls --color=never' 手工設定別名,臨時生效:相當與個人操作習慣
aliasls='ls –color=tty' #改回來了
vi ~/.bashrc 寫入別名,永久生效#第二個環境變量配置文件
5 輸入輸出重定向
標準輸入 /dev/stdin 0 鍵盤
標準輸出 /dev/stdout 1 顯示器
標準錯誤輸出 /dev/stderr 2 顯示器
#設備文件名 #文件描述符 #默認設備
1)輸出重定向
把應該輸出到屏幕的輸出,重定向到文件。
> 覆蓋
>> 追加
ls > aa 覆蓋到aa
ls >> aa 追加到aa
ls gdlslga 2>>aa 錯誤信息輸出到aa 強調:錯誤輸出,不能有空格
ls &>aa 錯誤和正確都輸入到aa
掌握(查看系統版本:uname -r)
ls >> aa 2>>bb 正確信息輸入aa,錯誤信息輸入bb
ls >> aa 2>&1 錯誤和正確都輸入到aa,可以追加
2>&1 把標準錯誤重定向到標準正確輸出
6 多命令順序執行
1)命令1 ; 命令2;命令3 命令123順序執行。之間沒有任何關系如:cd;ls ;date #date 用于打印當前系統時間
2)命令1 && 命令2 命令1正確執行后,命令2才會執行
3)命令1 || 命令2 命令1執行不正確,命令2才會執行,也就是說:如果第一個命令正確執行,那么第二個命令就不會執行了!
類test測試:
a)ls && echo "Yes" || echo "No"
b)ls skdjfkdj && echo "Yes" || echo "No"
lsaa && echo "cunzai" || echo "bu cunzai!" 執行ls aa,判斷如果正確,輸出“存在”。如果不存在,輸出“不存在”
7 管道符:兩個命令之間有聯系,
命令1 | 命令2 命令1的執行結果,作為命令2的執行條件
注意:第一條命令一定得有輸出
netstat-tlun | grep 80 查詢監聽的端口號,并查看80端口是否啟動。
附:
netstat-tlun列出監聽了多少個端口;
grep提取命令,如 grep80 #提取包含有80的行
80是Apache的端口
ls -l /etc/ | more 分屏顯示ls內容
ls-l /etc/ | grep vim
附:more分屏顯示文件內容
二 變量:Linux將所有的變量都識別程字符串型#應該是Shell吧?Idon‘t know!
設置變量的目的:像程序腳本中傳值。
1分類
本地變量
環境變量
位置參數變量
預定義變量
2本地變量
1)聲明 變量名=變量值 注意:=號左右不能有空格
aa=123
2)調用
echo $變量名
3)查看變量
set 查看所有變量,包括環境變量和本地變量
4)刪除
unset 變量名
3變量設定規則
1)變量以等號連接值,等號不能有空格
2)變量名由數字和字母和下劃線組成,不能以數字開頭
3)變量值中有空格,用引號括起來如:aa=”helloworld” #其中不能有符號!!!
4)雙引號內,有特殊字符。如$
5)單引號中特殊字符無含義
6)在變量值中,可以使用\轉義符
7)變量值可以直接調用系統命令。 `命令` $(命令)
如cc=`ls/dev` # ` 是反引號,Esc鍵下的那個
或者:cc=$(ls/dev) 作用相同,推薦!
調用:echo$cc
8)變量值可以累加 aa=123 aa="$aa"456 echo $aa --->123456
9)環境變量一定設為大寫
4環境變量:
附:pstree:查詢進程樹
一般不要聲明環境變量
1)聲明
export 變量名=變量值
export aa #變量已經存在的情況
2)查看
set 查看所有變量
env 或者export 只能查看環境變量,并且export能夠看清本質-_-
declare 聲明變量類型的,如果不特別聲明,所有變量為字符串型
-i 聲明為int
-x 聲明為環境變量
3)刪除
unset 變量名
4)常見環境變量
echo$PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
系統查找命令的路徑
PATH="$PATH":/root/shell 在系統默認路徑后,追加/root/shell目錄作為命令查找路徑
5)環境變量配置文件
/etc/bashrc 所有用戶生效
/etc/profile
~/.bashrc只對指定用戶生效
~/.bash_profile
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。