shell(11) shell其他.doc

來源:互聯網
上載者:User


基本概念

X
window

interoperate with display & video card

XFree86
and X.org

the open source version of X window

KDE/GNOME,

 

字元集

一組二進位命令,
linux
系統發送給監視器以顯示字元

ASCII

ISO-8859-x, Unicode(all iso-8xx included)

 

類比終端

類比老式的
UNIX
非智能終端,定義顯示緩衝、圖形向量、行字元數等終端參數,定義按鍵等

 

環境變數
TERM

定義所使用的類比終端

 

XTERM

終端模擬器包

 

主題:指令碼中的格式

變數賦值“
=
”兩邊無空格

if
條件判斷的
[]
內必須有空格,
if
與[之間也需要空格

變數引用,除賦值及
for
外都應使用
$

雙引號允許變數和命令替換

單引號避免特殊萬用字元被解釋,如
$ ? | < >

eg: echo '$abc' #$abc
不會被解釋成變數
abc

另一種變數引用法:

${variable}

bash
的轉義符,
/

 

Environment
values

printenv, show all evn values

global env values:
大寫,任何由定義變數的進程及其子進程中可見;

local env values:
小寫,只在定義它的本地進程中可見,如當前
shell

set, show all env values, global &
local included.

set env values, use "" or '' :
a="A B C"

export,
將本地
env
匯出為全域
env

delete env: unset xxx

 

一些預設環境變數:

PATH

HOME

TMOUT

,設定閑置多久後
bash
自動結束

DISPLAY

 

數學運算

expr 5 /* 2    
#
需要空格

var=$[ 5 * 2 ] 
#
無所謂空格,
bash
專有

var=$[$var*(2+$var)]

這樣也可以:

var=$(( 5 * 2 ))

 

指令碼退出

獲得退出狀態:
$?
最大值
255

退出命令
: exit 0           
#
是否可像函數一樣用
return

TBD

 

bash
變數數組

define

a=(1 2 3 4)
,空格分割,
()

echo ${a[1]}        
# use:   
index based on
0

echo ${a[*]}        
# show all members

a[1]=20     

     
# set a member

unset a     

       
# deleted

TBD

how to add members to the array?

 

bash
的三種啟動方式

1
,使用者登入時的預設登入
shell
,依次執行
/etc/profile

$HOME/.bash_profile,
$HOME/.bash_login, $HOME/.profile

2
,非登入的互動式
shell
,處理
~/.bashrc

3
,運行指令碼的非互動式
shell
,由
$BASH_ENV
指定要執行的啟動指令碼

 

/etc/profile  

第一次登陸時執行,最後從
/etc/profile.d
下的設定檔中收集
shell
設定資訊

~/.bash_profile      

在使用者登入時執行,將調用
~/.bashrc

~/.bashrc              

設定
alias
,並調用
/etc/bashrc

/etc/bashrc  
             

每次執行
/
開啟
bash
時執行,其內容可被
~/.bashrc
覆蓋

~/.bash_logout

 

/etc/profile,
讀取
/etc/profile.d
目錄下的設定檔,第一次登入時執行

~/.profile

~/.bash_login

~/.bash_profile

~/.bashrc
,添加環境變數和別名的最佳地點

~/.bash_logout

logout
時執行

 

其他

coreutils package, the core utilities of
linux from GNU

echo -n xxx,
不輸出換行

 

user manage

UID
小於
100
,各種非實際使用者的功能建立的使用者

/etc/passwd

user_name:pwd:UID:GID:comments:HOME_DIR:deault_shell

/etc/shadom

useradd -D #show default setting for adding
user. SKEL set a pattern for the HOME dir of the new user.

userdel, del
user, param -r is appended if u want to del
the HOME_DIR also

usermod, set user such as adding user to a
group

passwd, change password

finger root, show user info

 

group

/etc/group

name:pwd:GID:user_list

passwd of group:
用於臨時成為該群組成員

null user_list: /etc/passwd
中的預設組使用者可以不出現在
group
的使用者列表中

usermod -G group1 user1  
: add user to a group

groupadd

groupmod

id
命令,可以顯示使用者屬於的所有組

 

檔案許可權

umask, set the default value of the new
created file.

chmod 760 newfile

chmod +x newfile 
# +, -, =

chown chgrp

 

 

檔案屬性

set user id(SUID)
,檔案將在檔案所有者許可權下執行,而非檔案執行者許可權下,如檔案由
root
所有,則普通使用者也將以
root
許可權執行該程式

set group id(SGID)
,對於目錄,目錄中的建立檔案將使用目錄的使用者組作為預設使用者組;一種建立多使用者共用資料夾的方法;

粘著位:進程結束後,檔案仍然保留在記憶體中,作用(?)

chmod +s xxx
,設定
SGID

 

臨時檔案

mktemp abc.XXXXXX     
#6

X
將隨機產生,
X
數量要大於
3
,命令返回產生的檔案名稱(預設目前的目錄),
XX
必須在名稱最後

mktemp -t abc.XXX            
#

/tmp
下組建檔案

mktemp -d abc.xxx             
#
建立臨時目錄

 

字串處理

使用
## # % %%
進行字串截取

使用
expr
獲得字串長度、子串等,

expr substr STRING POS LENGTH

eg:

expr
substr abcd 1 100  
#pos


1

開始,
length

可大於實際長度

expr length
abcd

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.