Unix & Linux 大學教程 第八章

第8章

8.1在系統(tǒng)中查找程序which 、type慎王、whence
#which的目的就是讓shell回答下述問題:
#如果我準備輸入一條具體的命令吃度,那么將會運行哪個程序
which date
which date less vi emacs

#type針對bash
type date
type date less vi emacs
type which
which type
type type
which which

#Korn shell
whence date
8.2 如何停止程序

eof:<Ctrl + D>
intr:^C

8.3 顯示時間和日期:date
date
date -u #UTC時間
8.4 顯示日歷:cal
cal 
cal 1991
cal 4 1991

#這一天是一年找那個的第幾天
cal -j  #Julian 儒略歷:由儒略.凱撒 于公元前46年制定
8.5 Unix提醒服務:calendar

顯示今天和明天的提醒,如果是星期五,顯示未來3天的提示擦俐。
創(chuàng)建一個calendar文件檬嘀,calendar程序?qū)⒃跈n期目錄中查找這個文件
日期和提示消息之間是制表符:<TAB>槽驶,不是空格

$ vim calendar
------------------------------
October 21      xiaochao's ss
November 20     xixihaha
June 12 xiaochao's birthday
June 11 xixi haha
June 13 nihaoya
------------------------------

$ calendar
 6 11*  xixi haha
 6 12*  xiaochao's birthday
8.6 查看系統(tǒng)信息:uptime、hostname鸳兽、uname
  1. uptime:顯示系統(tǒng)已經(jīng)運行了多長時間
$ uptime
# 當前時間  |  up了多長時間  |  當前登錄用戶數(shù)  |
#  一直等待執(zhí)行的程序數(shù)量(前1分鐘掂铐,前5分鐘,前15分鐘)
 9:26  up 10 mins, 3 users, load averages: 1.14 4.52 4.76
  1. hostname 查看計算機名
  2. uname查看操作系統(tǒng)的名稱 (-a)
8.7 顯示自己信息:whoami 揍异、quota
  1. whoami:顯示登錄使用的用戶標識
  2. who am i
  3. quota:查看共享系統(tǒng)上系統(tǒng)管理員限制每個用戶使用多少磁盤空間
8.8 顯示其他用戶信息:users全陨、who、w
#1. users顯示當前登錄系統(tǒng)的所有用戶標識
$ users
everjiankang everjiankang everjiankang root

#2. who顯示用戶標識衷掷、終端名稱烤镐、登錄時間、遠程主機
[everjiankang@10-100-1-229 ~]$ who
root     tty1         2019-05-12 09:44
everjiankang pts/0        2019-06-12 09:15 (192.168.248.178)
everjiankang pts/1        2019-06-12 09:16 (192.168.248.178)
everjiankang pts/2        2019-06-12 09:35 (192.168.249.104)
everjiankang pts/3        2019-06-11 21:56 (192.168.251.85)
everjiankang pts/4        2019-06-11 10:25 (192.168.249.186)
everjiankang pts/5        2019-06-11 19:28 (192.168.251.168)
everjiankang pts/7        2019-06-11 15:57 (192.168.250.137)
everjiankang pts/10       2019-06-10 12:03 (192.168.251.205)
# 如果終端名稱是:tty1棍鳖、tty2炮叶,那么代表主計算機的虛擬控制臺碗旅。
# pts:pseudo-terminal master and slave. 偽終端或虛擬終端

#3. w:who is doing what?
#第一行是統(tǒng)計信息,等同于uptime命令的輸出镜悉,
# IDLE:用戶上一次按鍵后已經(jīng)過去的時間
# JCPU:自登錄后所有進程總共使用的處理器時間祟辟,“J”代表“jobs(作業(yè))”
# PCPU:當前進程所使用的處理器時間。P代表process(進程)
# WHAT:當前正在運行的命令
[everjiankang@10-100-1-229 ~]$ w
 09:42:24 up 115 days, 12:29,  9 users,  load average: 1.02, 1.64, 1.63
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                12May19 30days  0.01s  0.01s -bash
everjian pts/0    192.168.248.178  09:15   26:27   0.00s  0.00s -bash
everjian pts/1    192.168.248.178  09:16   25:47   0.00s  0.00s -bash
everjian pts/2    192.168.249.104  09:35    0.00s  0.07s  0.02s w
everjian pts/3    192.168.251.85   21:56   11:35m  0.06s  0.06s -bash
everjian pts/4    192.168.249.186  Tue10   23:13m  0.13s  0.13s -bash
everjian pts/5    192.168.251.168  Tue19   13:56m  0.35s  0.35s -bash
everjian pts/7    192.168.250.137  Tue15   17:33m  0.65s  0.56s tail -f syzx/ucbj/dev/medical-record/10-100-10-140/9000/logs/catalina.2019-06-11.out
everjian pts/10   192.168.251.205  Mon12   39:05m  0.16s  0.16s -bash

#后跟用戶名稱侣肄,查看特定某人
[everjiankang@10-100-1-229 ~]$ w root
 09:48:52 up 115 days, 12:36,  9 users,  load average: 1.60, 1.77, 1.74
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                12May19 31days  0.01s  0.01s -bash
8.9 終端臨時上鎖:lock旧困、vlock (很多版本不支持)

默認鎖住15分鐘

lock
key:
Again:
#指定鎖住5分鐘
lock -5
8.10 請求Unix提醒何時離開:leave

可以將leave命令寫在配置文件里,系統(tǒng)初始化的時候就設置一下leave時間

#輸入時間格式:hhmm
guchunchao$ leave  
When do you have to leave? 1000
Alarm set for 2019年 6月12日 星期三 10時00分00秒 CST. (pid 755)
guchunchao$ You have to leave in 5 minutes.
guchunchao$ Just one more minute!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
Time to leave!
You're going to be late!
That was the last time I'll tell you. bye.
#十點半離開
leave 1030
#15分鐘后離開
leave +15
#時間既可以是12小時制稼锅,也可以是24小時制
#下午 1:14 離開
leave 1314
#現(xiàn)在是8:00PM,下面命令將理解為 8:55PM,而不是 8:55AM
leave 855
8.11 內(nèi)置計算器:bc

+ - * / % ^ sqrt(x)

~ guchunchao$ bc
123 + 456
579

20+30; 20 * 30 #多個式子用分號分割
50
600

3^2  # 3的2次冪
9

sqrt(9)  # 開平方根
3

1+2*3
7

(1+2)*3
9

~ guchunchao$ bc -l #使用bc內(nèi)置的輸血函數(shù)庫(library)

s(x):x的正弦:sin(x)
c(x):x的余弦:cos(x)
a(x):x的反正切:
ln(x):x的自然對數(shù)
j(n,x):x的n次整階貝塞爾函數(shù)

bc標度因子:scale

bc:默認做整數(shù)運算(忽略小數(shù)點右邊的數(shù)字)
bc -l: 默認將標度因子(scale factor)設置為20
scale = 3 : 保留3位小數(shù)
scale:顯示標度因子

$bc
scale
0
scale = 3
scale
3
9 / 4
2.250
scale=0
9 / 4
2
$bc -l
scale
20
8.13 在bc中使用變量

bc不僅僅是計算器吼具,還是一個功能完整的數(shù)學編程語言,允許使用變量矩距。變量名由一個小寫字母組成拗盒,即:26個小寫英文字母:a~z(千萬不能用大小字母)

x
100
20 + x
120
w=160
r=(w*2)*1000
d=(w/3)*2000
r+d
426000
w
160
w=w/2.2
w
72
r+d
426000
r=(w*2)*1000
d=(w/3)*2000
r+d
192000
8.14 在bc中使用不同的基

默認是基10,還可以是基16(十六進制)锥债、基8(八進制)陡蝇、基2(二進制)
值范圍是2 ~ 16
ibase:輸入基
obase:輸出基

ibase
10
obase
10
ibase;obase
10
10
obase=16 #以16進制顯示
ibase=8 #以8進制輸入

A + 5
15

A、B哮肚、C登夫、D、E允趟、F
10恼策、11、12潮剪、13戏蔑、14、15

ibase=16
ibase
16
ibase=10   # 16進制的10代表16
ibase
16
ibase=A  # 所以用A代替鲁纠,不用數(shù)字,避免出錯
ibase
10

obase=16
obase
10    #16進制的16顯示成10

ibase=A; obase=A

8.15 逆波蘭標識法

bc是基于dc(desk caculator)dc是最古老的計算器程序甚至比C語言還早最初版本是B語言編寫的鳍寂。
如果您傾向于技術改含,那么dc的理解十分重要:

  1. 逆波蘭表示法(數(shù)學、工程迄汛、計算機科學)
  2. 理解棧
  3. dc的思考方式和Unix的思考方式相同

\color{green}{1. 中綴表示法}

(23 + 12) * 5

\color{green}{2. 前綴表示法(波蘭表示法):}

\* + 10 2 5  

從前往后:
*:只要獲得2個數(shù)就執(zhí)行一個乘法
+ :只要獲得2個數(shù)就相加
接下來是10 和2 : 10 + 2 = 12捍壤,記錄12,接下來是5鞍爱,12 * 5 = 60

\color{green}{3. 后綴表示法(逆波蘭表示法:RPN)}(postfix notation)
將操作符放在操作數(shù)之后鹃觉。后綴表示法適合自動計算。

10 2 + 5 *

dc基于RPN睹逃,bc將中綴表示法轉(zhuǎn)換為逆波蘭表示法盗扇,然后調(diào)用dc完成實際工作祷肯。換句話說:bc是dc的前端,dc是bc的后臺疗隶。GNU將bc完全重寫了佑笋,不再依賴dc,但是dc仍然可以獨立使用斑鼻。

8.16 基于棧的計算器:dc

從左向右讀取表達式蒋纬,每次一個元素,如果遇到的是數(shù)值坚弱,壓棧蜀备,如果遇到的是運算符,則從棧中彈出合適數(shù)量的袁術荒叶,執(zhí)行運算碾阁,然后將結(jié)果壓入棧中。

逆波蘭表達式:10 2 + 5 *
1)將10壓棧:[10]  
2)將2壓棧:[2 10]
3)+ 停撞,彈出2 和10 相加瓷蛙,結(jié)果12壓棧:[12]
4)5壓棧:[5 12]
5)*,彈出5和12相乘戈毒,結(jié)果60壓棧:[60]
$dc
10 20 30
f      #展示全棧
30
20
10
+ 
f
50
10
*
f
500
20 30
f
30
20
500
p    #小寫p顯示棧頂
30
P  #大寫P(Pop)彈出棧頂艰猬,但不顯示
f
20
500
14 k #將精度修改為14位小數(shù),默認精度是0埋市。
命令 含義
q 退出
p 顯示棧頂
P 彈出棧頂?shù)伙@示
n 彈出棧頂且顯示
f 顯示棧的全部內(nèi)容
c 清空棧
d 復制棧頂值
r 反轉(zhuǎn)(交換)棧頂2個值
+ 相加
- 相減
* 相乘
/ 相除
% 取余
~ 相除冠桃,將商壓入棧中,再將余數(shù)壓入棧中
^ 彈出2個值道宅,第一個數(shù)是第二個數(shù)的次冪食听,結(jié)果壓棧
v 彈出一個值,求平方根污茵,壓棧
k 彈出一個值樱报,使其設置為精度
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泞当,隨后出現(xiàn)的幾起案子迹蛤,更是在濱河造成了極大的恐慌,老刑警劉巖襟士,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗飒,死亡現(xiàn)場離奇詭異,居然都是意外死亡陋桂,警方通過查閱死者的電腦和手機逆趣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗜历,“玉大人宣渗,你說我怎么就攤上這事抖所。” “怎么了落包?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵部蛇,是天一觀的道長。 經(jīng)常有香客問我咐蝇,道長涯鲁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任有序,我火速辦了婚禮抹腿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旭寿。我一直安慰自己警绩,他們只是感情好,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布盅称。 她就那樣靜靜地躺著肩祥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缩膝。 梳的紋絲不亂的頭發(fā)上混狠,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機與錄音疾层,去河邊找鬼将饺。 笑死,一個胖子當著我的面吹牛痛黎,可吹牛的內(nèi)容都是我干的予弧。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼湖饱,長吁一口氣:“原來是場噩夢啊……” “哼掖蛤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起井厌,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蚓庭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后旗笔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡拄踪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年蝇恶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惶桐。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡撮弧,死狀恐怖潘懊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贿衍,我是刑警寧澤授舟,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站贸辈,受9級特大地震影響释树,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜擎淤,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一奢啥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘴拢,春花似錦桩盲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孝冒,卻和暖如春柬姚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背迈倍。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工伤靠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人啼染。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓宴合,卻偏偏與公主長得像,于是被迫代替她去往敵國和親迹鹅。 傳聞我的和親對象是個殘疾皇子卦洽,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容