亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 14036 | 回復: 15
打印 上一主題 下一主題

shell基礎第十三篇-登錄環(huán)境 [復制鏈接]

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-11-19 18:18 |只看該作者 |倒序瀏覽
承接wingger MM的,目前剛好在看那本書。抄的不好或者寫得不好的地方請拍磚。

什么是登錄環(huán)境?
登錄系統(tǒng)時,在進入命令提示符前,系統(tǒng)要做兩個工作。鍵入用戶名和密碼后,系統(tǒng)檢
查是否為有效用戶,為此需查詢/ e t c / p a s s w d文件。如果登錄名正確并且密碼有效,開始下一
步過程,即登錄環(huán)境。

其實平常我們使用telnet或者ssh或者直接在tty中登錄Linux主機的時候,系統(tǒng)會出現(xiàn)一個login畫面讓你輸入帳號,其接下來的過程可以分為以下三步:

1、先找出/etc/passwd里面是否有這個帳號?如果沒有則退出,如果有,將該帳號對應的UID(User ID)與GID(Group ID)讀出來,同時讀取shell設置和家目錄。

2、核對密碼表,查看對應的/etc/shadow文件的設置是否和輸入的密碼一致。

3、在上一步成功執(zhí)行的情況下,進入了shell控制階段了。


在進行下一步處理之前,先看看文件/ e t c / p a s s w d。這是一個文本文件,可以任意修改其中
的文本域,但要小心。此文本有7個域,并用冒號作分隔符,以下是其部分文件內(nèi)容列表。在
頂端加有列號,這樣各域標識得更加清晰。普通用戶用cat就可以查看/etc/passwd文件的內(nèi)容了。

root:0:0:root:/root:/bin/bash
bin:1:1:bin:/bin:/sbin/nologin
daemon:2:2:daemon:/sbin:/sbin/nologin
halt:7:0:halt:/sbin:/sbin/halt
mail:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:11:0perator:/root:/sbin/nologin

第一個域為帳號名稱,對應UID,這個不用多解釋,就是登錄的那個名字。
第二個是密碼,早期的UNIX系統(tǒng)的密碼字段,如上所說,任何用戶都可以用cat查看該文件的內(nèi)容,所以后來的系統(tǒng)中把該字段放到了/etc/shadow中。
而對/etc/shadow的讀取是需要root權限的。查看一下它的文件屬性就知道了。
  1. $ ls -al /etc/shadow
  2. -r--------. 1 root root 1086 2010-09-07 14:38 /etc/shadow
復制代碼
第三個是UID。Linux中,有一個UID的分配規(guī)則。0表示的是系統(tǒng)管理員,只要是UID為0的用戶,就是系統(tǒng)管理員,可以設置系統(tǒng)有多個管理員。1~499,保留給系統(tǒng)使用的UID。
500~65535,給一般的用戶使用。
第四個是GID,和文件/etc/group相關。
第五個是用戶信息說明欄。
第六個是家目錄的位置。
第七個是該用戶的登錄shell。

登錄消息顯示數(shù)據(jù):/etc/issue 和 /etc/motd
文件/etc/issue里面實現(xiàn)的內(nèi)容就是我們從tty中登錄(沒有登錄之前)的提示字符串。
提示:使用Ctrl+Alt+F1~F6進行不同的tty切換
  1. $ cat /etc/issue
  2. Fedora release 11 (Leonidas)
  3. Kernel \r on an \m (\l)
復制代碼
上面的例子中使用了幾個特殊的符號。\r相當于uname -r,然后\m相當于uname -m,\l指的是第幾個終端接口。
如果我使用命令Ctrl+Alt+F2,然后屏幕上就會顯示如下的信息,同時要你輸入用戶名和密碼登錄。
Fedora release 11 (Leonidas)
Kernel 2.6.29.4-167.fc11.i686.PAE on an i686 (tty2)

localhost login:


文件/etc/motd顯示的是我們登錄成功后,系統(tǒng)顯示的信息。這個比較簡單。里面有什么,就顯示什么。

論壇徽章:
0
2 [報告]
發(fā)表于 2010-11-19 18:30 |只看該作者
不錯,希望把這個傳承下去。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報告]
發(fā)表于 2010-11-19 19:09 |只看該作者
環(huán)境變量的系統(tǒng)設置:
下面列舉相關文件
/etc/sysconfig/i18n
  1. $ cat /etc/sysconfig/i18n
  2. LANG="en_US.UTF-8"
  3. SYSFONT="latarcyrheb-sun16"
復制代碼
我的是英文環(huán)境,所以整體語系是en_US.UTF-8,可以在修改相關的環(huán)境變量進行設定。
有人會納悶?為什么會是i18n呢?internationalization,不過這個單詞太長啦。所以把中間18個單詞用18來代替了。

/etc/profile
這個文件比較有統(tǒng)一性。幾乎所有版本的*NIX都會有。同時對所有的用戶都有效。里面設置了一些比較重要的環(huán)境變量。PATH,HOSTNAME,UID之類的。PAT H定位包含可執(zhí)行文件,庫文件及一般文本文件的目錄位置,便于用戶快速訪問。有了前面的十二篇的基礎,相信/etc/profile里面的簡單腳本難不倒你。同時/etc/profile.d目錄和文件/etc/inputrc也是由/etc/profile規(guī)劃出來的。

/etc/bashrc
這個文件里面有一個比較重要的就是PS1環(huán)境變量。決定命令提示符的顯示方式。

/etc/profile.d/*.sh
這是一個目錄。針對bash以及C-shell規(guī)范了一些數(shù)據(jù)?梢宰孕性O計一些具有*.sh的文件名來書寫系統(tǒng)的設置值。

環(huán)境變量的個人設置:
~/.bash_profile ~/.bash_login ~/.profile
這三個文件只需要一個即可。一般默認是~/.bahs_profile。之所有有那么多的文件,是因為其他shell用戶轉(zhuǎn)過來的習慣。
bash啟動時(其他的shell不清楚),依次讀取的順序是~/.bash_profile,~/.bash_login,~/.profile

~/.bashrc
這個是最個性化的設置文件。shell登錄時候,最后讀取的。每次執(zhí)行shell腳本的時候都會讀取這個文件,所以是最全面,最新的。而剛剛那個文件~/.bash_profile只是在登錄的時候才讀取一次的。在我的文件中重新設置了一個更加好看的命令提示符。PS1
  1. export PS1='\[\e[01;32m\][\u@\[\e[01;33m\]\h \[\e[01;34m\]\W] `[[ -d .git ]] && echo -n -e "\[\e[01;33m\](branch:$(git branch | sed -e "/^ /d" -e "s/* \(.*\)/\1/"))\[\e[01;34m\]"`\$ \[\e[00m\]'
復制代碼
~/.bash_history
每次登錄bash后,bash會先讀取這個文件,將所有的歷史命令讀入內(nèi)存。和HISTSIZE環(huán)境變量的設置值有關系。

~/.bash_logout
注銷bash后,系統(tǒng)會給你干的事情。

對于剛才的幾個文件我們通常在改變之后用source命令或者.重新讀取一遍。

再談談登錄shell和非登錄shell
登錄shell指的是當用戶登錄linux系統(tǒng)時,所取得的那個shell,當?shù)卿浺院螅偃?zhí)行其他的shell,其他的shell就是非登錄shell了。
最常見的一種情況就是在X Window下,啟動終端,那些shell都是非登錄shell
還有一種情況是以一個用戶登錄有,使用命令bash切換到一個新的環(huán)境,這個也是非登錄shell了。
把握好登錄這兩個字就可以了。
還有它們讀取文件的區(qū)別。
登錄shell會讀取~/.bash_profile和~/.bashrc兩個文件
非登錄shell僅僅是讀取~/.bashrc文件

stty用法
s t t y用于設置終端特性。要查詢現(xiàn)在的s t t y選項,使用stty -a。
  1. $ stty -a
  2. speed 38400 baud; rows 24; columns 80; line = 0;
  3. intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
  4. swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
  5. lnext = ^V; flush = ^O; min = 1; time = 0;
  6. -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
  7. -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
  8. -iuclc ixany imaxbel iutf8
  9. opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
  10. isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
  11. echoctl echoke
復制代碼
上面中^C表示Ctrl+C的意思。其他的依次類推。下面列舉幾個參數(shù)代表的含義。更多的請參考man stty
eof:End Of File 文件結(jié)束的意思
erase: 向后刪除字符
kill: 刪除在當前命令行上的所有文字
quit: 給當前正在執(zhí)行的進程發(fā)送一個quit信號
stop: 停止當前屏幕的輸出
這些設置值,和我們?nèi)粘S玫腃trl+D,ctrl+U等操作相關。一般情況下沒有必要改動。
假如想要用ctrl+H進行字符從刪除,可以這么設置
# stty erase ^H

除了stty,bash還有自己的終端設置set,可以用來設置整個命令的輸入輸出的環(huán)境。
  1. # echo $-
  2. # 顯示set的所有設置
  3. # set -x
  4. # echo $HOME
  5. # 要輸出的命令都會屏幕上顯示,前面會多出一個+符號來
復制代碼
關于set的更多設置,更多地是寫入了/etc/inputrc文件當中
最后不建議修改tty的環(huán)境設置,因為bash的環(huán)境已經(jīng)設置很好了,不需要附加一些修改,否則產(chǎn)生不必要的麻煩。這里只是給大家展示以下終端是如何進行設置的。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
4 [報告]
發(fā)表于 2010-11-19 19:11 |只看該作者
本帖最后由 L_kernel 于 2010-11-19 19:33 編輯

登錄環(huán)境介紹完畢。END
本篇小結(jié):
可以定制用戶本身的.bashrc以滿足需求,本章講述了如何覆蓋系統(tǒng)設置以滿足用戶需求。
從顯示友好信息到終端特性設置,定制用戶環(huán)境可以有許多方式。

論壇徽章:
0
5 [報告]
發(fā)表于 2010-11-19 21:51 |只看該作者
樓主辛苦啦~~~

論壇徽章:
0
6 [報告]
發(fā)表于 2011-09-29 12:15 |只看該作者
不錯。。感謝,幫你頂一下

論壇徽章:
0
7 [報告]
發(fā)表于 2011-09-29 14:17 |只看該作者
不錯 謝謝

論壇徽章:
0
8 [報告]
發(fā)表于 2011-11-30 19:09 |只看該作者
不錯不錯學習了

論壇徽章:
0
9 [報告]
發(fā)表于 2012-01-06 17:43 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
1
巨蟹座
日期:2014-08-15 14:56:13
10 [報告]
發(fā)表于 2012-01-18 13:59 |只看該作者
支持,好東東,學習了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP