您好,登錄后才能下訂單哦!
兩年前我看這本書時,是一本812頁的厚書,現在我總結成了40句話,什么時候成了1句話就好了。
Unix & Linux 大學教程 Harley Hahn
0,操作系統最重要功能
控制計算機并在計算機啟動或者重新啟動時初始化計算機
支持與計算機交互所使用的界面
為需要使用計算機資源(磁盤空間、文件位置、處理時間、內存等)的程序提供接口
管理計算機的內存
維護并管理文件系統
調度工作
提供賬戶和安全服務
1,內核提供服務:
內存管理(虛擬內存管理,包括分頁)
進程管理(進程創建、終止、調度)
進程間通信(本地,網絡)
輸入輸出
文件管理
安全和訪問控制
網絡訪問(如TCP/IP)
2,Unix=內核+使用工具(包括shell和gui)
3, Linus Torvalds
4,計算機系統:
計算機=終端+主機
終端=輸入設施+輸出設施
5,抽象層次
應用程序/用戶
桌面環境
窗口管理器
X Window
內核中的設備驅動程序
硬件
6,進程線程
在Unix系統中,每個對象或者用文件表示,或者用進程表示。簡單地講,文件存放數據或者允許訪問資源,而進程是正在執行的程序。
進程可以分成更小的單元,稱為線程,線程是一組運行在進程環境中的指令。因此可以將程序的結構描述為,在一個進程之內,不止一個線程在同時進行。
7,運行級別
0 關機
1 單用戶
2 非標準化
3 多用戶:CLI
4 非標準化
5 多用戶:GUI
6 重啟
8,快捷鍵
Ctrl + Alt + Left/Right 工作區的切換(基于gnome桌面)
9,終端
stty -a 獲取當前終端行設置
intr = ^C(停止正在運行程序); quit = ^\(停止程序并保存core文件); erase = ^?; kill = ^U(刪除整行); eof = ^D(提示已經沒有數據); start = ^Q(開始屏幕顯示);erae = ^H(刪除一個字符);stop = ^S(暫停屏幕顯示); susp = ^Z(暫停,fg恢復到前臺); rprnt = ^R(搜索history命令); werase = ^W(刪除一個單詞); lnext = ^V; flush = ^O;
infocmp 打印終端信息 infocmp vt100 | less (infocmp需要安裝ncurses)
echo $TERM 得到的默認終端是xterm
export IGNOREEOF=5 可以按^D提示logout或者exit退出
10,which type whereis
type 是 shell 內嵌,查看內置命令,bash 69個
help打印一些內置命令列表
11,cal -j 5 2014
查看2014年5月的每一天
12,uptime,uname
13,users,who,finger,w(誰正在做什么)
14,bc -l (支持+,-,*,/,%,^,sqrt(x),s(x),c(x),a(x),ln(x),j(n,x))
15,RTFM(Read the fucking manual),xman
(1).命令 (2).系統調用 (3).函數庫 (4).特殊文件 (5).文件格式 (6).游戲 (7).雜項信息 (8).系統管理
man -f 快速查尋命令用法 whatis
man -k 關鍵字 apropos
man builtin man bash
16,環境變量
env
perintenv
set/unset(csh) set term=vt100
setenv/unsetenv(csh) setenv TEST hello
export(bash)
set -/+o 顯示shell選項控制(bash)
17,引用和轉義
使用反斜線引用單個字符(稱為轉義了這個字符)
使用單引號引用一串字符
使用雙引號引用一串字符,但是保留$,`,\的特殊意義
18,搜素路徑
export PATH="/...:/..."
set path=(/... /...)
PS1 shell 提示
export PS1="\u\w\@\$"
prompt(csh)
``命令替換
19,fc -l history
20,自動補全
文件名補全
命令補全
變量補全
用戶標識補全
主機名補全(bash)
21,別名
alias,umalias
alias 'a=alias'
22,初始化文件
.profile文件
.rc文件
登陸shell(.bash_profile)
非登陸shell(.bashrc)
23,輸入輸出
<重定向標準輸入(同0<)
>重定向標準輸出(同1>)
>>追加標準輸出(同1>>)
2>重定向標準錯誤
2>>追加標準錯誤
2>&1將標準錯誤重定向到標準輸出
>&或者&>重定向標準輸出+標準錯誤(只適用于Bash)
|管道
2>&1 |所有輸出到管道
set -o noclobber 可以禁用>,但是可以用>|(強制重寫)
24,編組和子shell
(cd directory; command)
25,管道線分流tee(從標準輸入讀取數據發送屏幕和文件各一份)
cat 1 2 3 |tee 123|grep hh (tee可以輸出保存不止一個副本)
26,條件執行
command1 && command2(命令1成功執行后執行命令2)
command1 || command2(命令1沒有成功后執行命令2)
27,過濾器
cat|grep|sort|less
(1)分析問題
(2)選擇工具
(3)與他人討論
(4)選擇選項
28,文件簡單操作
split 分割文件
tac 反轉文本行順序
rev 反轉字符
colrm 刪除指定的數據列,然后將剩余的數據寫入標準輸出
29,比較和抽取
cmp 逐字節地比較兩個文件
comm 一行一行比較兩個有序文本
diff 比較無序文本文件
cut -f 1,3-5 -d ':' /etc/passwd | sort (f列,d分隔符)
cut -c1-8(c按字符)
paste 可以將幾個文件(其中每個文件都包含一列數據)組成一個大表
paste 水平組合數據,cat垂直組合數據
30,統計和格式化
nl 創建行號
wc 統計行、單詞和字符
:set list 可視化制表符和空格
expand將制表符轉換成空格(unexpand)
fold分割行 fold -s -w 40 file (40個字符一行,單詞不分割)
31,選取、排列、組合及變換
grep (global re print)
ls -F /etc |grep -c "/" (c統計)
-in(忽略大小寫并按行號)
-l (列出文件名)
-v(reverse,相反)
-x (占整行)
-r(recursive,遞歸)
-s(suppress,抑制)
-E(egrep)
look
sort -dfnu(sort -u = sort|uniq = cat|sort|uniq)
uniq -cdu(d只看重復行,u只看唯一行,c統計行數)
join 合并有序數據
strings在二進制中搜索字符串 strings /usr/bin/sort
tr A-Z a-z < old > new大小寫轉換
[:upper:] [:lower:] [:digit:]
32,非交互式文本編輯sed
sed 's/h/H/g'ole >new (-i in-place可以改變原始文件)
(1)從輸入流中讀取一行
(2)執行指定的命令,對該行進行必要的交換
(3)將該行寫入到輸出流中
number [,number] |/regex/ 對指定行進行操作或者包含特定字符串的行
5,10s(5到10行)
$s(最后一行)
/OK/(字符串OK所在行)
[0-9][0-9]包含兩個連續數字的行
-e 多條更改
-f 文件
33,正則表達式
元字符
.
^
$
\< 匹配單詞的開頭
\> 匹配單詞的結尾
[abc] 匹配abc中的任何字符
[^abc] 匹配不在abc中的任何字符
() 組:視為一個單獨的單元
| 匹配選擇之一
\ 引用:從字面上解釋元字符
運算符
* 0或多次
+ 1或多次
? 0或1次
{n} n次 (xyz){5}匹配字符"xyz"5次
{n,} 最少n次
{,m} 最多m次
{n,m} n,m之間次 [0-9]{3,5}匹配3到5個數字
類
[:lower:] a-z
[:upper:] A-Z
[:alpha:] A-Za-z
[:alnum:] A-Za-z0-9
[:digit:] 0-9
[:punct:] 標點符號
[:blank:] 空格或制表符
grep -w 'cat' data
grep '\<cat\>'data \<和\>是整個數字或者單詞,沒有就是對字符串
grep '\bcat\b'data
man ascii
locale -a
34,顯示文件
hexdump hexdump -C /bin/grep |less 顯示二進制文件 -C 文件
od od -Ax -txlz /bin/grep |less
35,vim文本編輯器
命令模式
h
j
k
l
w
e
b
r
R
x
X
D
dd
u
U
yy
yw
y10w
y2)
y5}
10yy
p
P
xp 調換兩個字符
ddp 調換兩行
deep 調換2個單詞
輸入模式
i
a
o
I
A
O
搜索模式
:/keywords
:set number
:set all
.vimrc
36,文件系統
基于磁盤的文件系統
ext3、ext4,FAT32,HFS+(層次式文件系統),ISO 9660(CD-ROM),NTFS,UDF(可重寫CD和DVD),UFS2(BSD,Solaris)
網絡文件系統
NFS,SMB
特殊文件系統
devpts 偽終端的設備界面(PTY)
procfs proc文件系統
sysfs 系統數據文件系統(設備與驅動器)
tmpfs 臨時存儲文件系統
37,目錄操作
.
..
~
pushd
popd
dirs
ls -CrR1F(C列,r字母表從大到小顯示,R全部子目錄,1文件名占一行,F帶標志)
ls -lrtu顯示最近訪問過得文件
-普通
d目錄
l符號
b塊
c字符
p管道
dumpe2fs /dev/sda1 | grep "Block size"
tree 文件樹
38,文件操作
setuid
setgid
umask
shred -fvuz filename 清空文件內容
stat file
ls -i
ln -s
whereis
locate
find
find path ... test ... action...
test如下:
-name
-iname
-type
-perm
-user
-group
-empty
-size
-atime
-ctime
-mtime
action如下:
-print
-fprint file
-ls
-exec command{} \;執行命令,{}指示匹配的文件名
-ok command{} \;同上,但是運行命令之前確認
-delete 刪除文件
-fls file
xargs處理查找到的文件
find ~ -type f | xargs ls -s
(whoami;date) |xargs
39, 進程和作業控制
echo $$ 顯示當前shell的PID
echo $! 顯示上一條移至后臺的命令的PID
sleeep (sleep 20;cat /etc/passwd) && vim /etc/termcap
jobs
ps
fg
bg
suspend 掛起當前shell
^Z
kill
top
prtstat
pstree
fuser
nice
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。