Bash Shell学习笔记二
1.||、&& 和&、|的區別
?
||和&&的執行是從左到右,而&和|的執行是兩邊到中間的(未實際測試,只能確認它不是按順序執行的)
||和&&的執行時,只要結果確定就停止,而&和|的執行是計算所有值后才停止
||一般用來判斷條件滿足則執行。例如 [[ $UID == 0 ]] || mkdir /test? ---只有root用戶才執行mkdir /test
?
2.設置用戶新文件或文件夾的默認權限
umask
umask其實是一個掩碼。
也有umask這樣一個命令,它是對用戶建立的文件的默認屬性的定義。
該定義為:
假設umask為022.
則對于一個文件夾的話,它的默認屬性為 777-022=755,這也就是我們平時建立文件夾的權限。
而對于一般的文件的話,則是用 666-022=644.
例如,在.bashrc 或者 .bash_profile中設置 ?umask 066
這樣用戶登錄后建立新文件夾的權限是 rwx--x--x-,新文件的權限為 rwx------
?
3.設置用戶新文件或文件夾的默認組
vi /etc/passwd 或者 vi passwd
修改用戶的組ID為默認的組,
如:
修改linfengfeiye:x:1009:1001::/home/user/liukejian:/bin/bash
將 1001改為100,則默認組從1001對應的組變為100對應的組
?
4.1>&2,2>&1,1>dev/null,2>/dev/null的意義
?
在Linux中,shell命令一共有3個標準輸入輸出,stdin,stdout,stderr,其中stdin默認為鍵盤,其他的默認為顯示器。
其中 stdin對應為0,stdout對應為1,stderr對應為2
1>/dev/null表示輸出關閉,2>/dev/null表示輸入關閉
1>&2,表示將輸出合并到錯誤輸出,2>&1表示將錯誤輸出合并到標準輸出
?
5.Linux計算表達式的方法
?
方法一 ? :A=$[ 1 + 2 ]
方法二 ? :A=$((1+2))
方法三 ? :A = 'expr 1 + 2' 注意:A='expr 3 /* 4'?
方法四 ? :let A=1+2
?
6.修改Linux shell提示符
?
在.bashrc中導出PS1
例如:export PS1='/u@/h:/w /$ ' 顯示為?linfengfeiye@node2:~ $?
其中以/開始的字符的意義如下:
?
/d :代表日期,格式為weekday month date,例如:"Mon Aug 1"?
/H :完整的主機名稱。例如:我的機器名稱為:fc4.linux,則這個名稱就是fc4.linux?
/h :僅取主機的第一個名字,如上例,則為fc4,.linux則被省略?
/t :顯示時間為24小時格式,如:HH:MM:SS?
/T :顯示時間為12小時格式?
/A :顯示時間為24小時格式:HH:MM?
/u :當前用戶的賬號名稱?
/v :BASH的版本信息?
/w :完整的工作目錄名稱。家目錄會以 ~代替?
/W :利用basename取得工作目錄名稱,所以只會列出最后一個目錄?
/# :下達的第幾個命令?
/$ :提示字符,如果是root時,提示符為:# ,普通用戶則為:$
?
7.bash中 $#,$0,$1....$@ 的意義
?
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
?
$#:表示參數個數
$0:表示命令本身
$1:表示命令的第一個參數
$2:表示命令的第二個參數 .... $@:表示參數列表8.同時執行多個命令 第一種:用;來分隔命令,如 ls /home;echo "hello" 第二種:用&&或者&來分隔命令,對于&&,如果前面返回真才執行后面,對于&,多個命令不會按照順序執行。 第三種:用||來分隔,如果前面返回真則不會執行后面命令。
9.Linux shell中 如何引用 變量的變量 例如 i=dest dest=hello
那么如何由i得到hello的應用呢,顯然不能直接用$$i. 經過測試和查閱,在SUSE Linux中,下面的是最終結果。
方法如下: eval echo "$"$i 也可以用eval echo /$$i,但是此方法只能在shell中輸入,如果在文件中引用則會沒有出現預期的結果。
10. Linux中fuser的使用
fuser -c 目錄路徑-----顯示目前使用這個目錄的進程號 fuser -v 目錄路徑-----顯示目前使用的目錄的進程號,用戶,用戶ID,命令 fuser -k 目錄路徑-----kill掉所有訪問或是使用該目錄的進程
總結
以上是生活随笔為你收集整理的Bash Shell学习笔记二的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直播带货更赚钱?新东方在线正式更名为东方
- 下一篇: torque安装笔记