日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bash Shell学习笔记二

發布時間:2023/12/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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学习笔记二的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。