Chap 4 研究操作系統(tǒng)
- command -options arguments (大多數(shù)命令格式)
- ?? 短選項 -a, 長選項 --all
- ?? 可以同時寫兩個options , ls -ls (長格式 + 按照文件大小排序)
- file filename -確定文件類型
- less filename -瀏覽文件內(nèi)容
- 符號鏈接/硬鏈接
Chap 5 操作文件和目錄
- 常用命令
- cp - 復(fù)制文件
- cp -u *.html destination
- -a, --archive
- -i, --interactive
- -r, --recursive
- -u, --update
- -v, verbose
- mv - 移動/重命名
- -i, --interactive
- -u, --update
- -v, --verbose
- mkdir directory
- mkdir dir1 (dir2 dir3)
- rm
- -i, --interactive
- -r, --recursive
- -f, --force
- -v, --verbose
- ln 創(chuàng)建硬鏈接/符號鏈接
- 符號:ln file link
- 硬鏈接:ln -s item link
- cp - 復(fù)制文件
- 通配符
- -任意多個
- ? -任意一個
- [characters]
- [!characters]
- [[:class:]] -匹配任意一個屬于制定字符類中的字符
- [:alnum:] -匹配任意字母或數(shù)字
- [:alpha:] -任意字母
- [:digit:] -任意數(shù)字
- [:lower:]
- [:upper:]
- ??
- [[:upper:]]* 以大寫字母開頭的
- [![:digit:]]* 不以數(shù)字開頭的
- *[[:lower:]123] 文件名以小寫字母結(jié)尾,或以 “1”,“2”,或 “3” 結(jié)尾的文件
Chap 6 使用命令
- 常用命令
- type - 命令形式
- 什么是命令?
- 是一個可執(zhí)行程序
- 內(nèi)建于 shell 自身的命令,builtins
- shell函數(shù)
- 命令別名
- type command
- 什么是命令?
- which -顯示當(dāng)前可執(zhí)行程序的位置,不能是內(nèi)部命令/命令別名
- man -顯示程序手冊
- man section search_term
- 1 -用戶命令
- 2 -程序借口內(nèi)核系統(tǒng)調(diào)用
- 3 -C庫函數(shù)程序接口
- 4 -特殊文件
- 5 -文件格式
- 6 -游戲娛樂
- 7 -其他方面
- 8 -系統(tǒng)管理員命令
- man section search_term
- apropos -顯示適當(dāng)?shù)拿?/li>
- info - 顯示程序 Info 條目
- whatis -非常簡潔的命令說明
- alias - 別名
- alias name='string'
- command1; command2; command3... 可以把多個命令放在同一行上,命令之間 用”;”分開
- eg
- alias foo = 'cd /usr ; ls'
- unalias foo
- help - 提供shell內(nèi)部命令幫助文檔
- --help -顯示用法信息
- type - 命令形式
Chap 7 重定向
- 命令
- 管道線 |
- command 1 | command 2
- cat (Ctrl - d)
- cat ls-output.txt
- cat > lazy_dog.txt
- 鍵盤輸入??: The quick brown forx jumped over the lazy dog.
- cat < lazy_dog.txt
- txt文件作為輸入
- sort -排序
- uniq -刪除重復(fù)行
- uniq -d 可看到重復(fù)列表
- gerp -打印匹配行
- grep pattern
- eg: ls /bin /usr/bin | sort | uniq | grep zip
- -i 忽略大小寫
- -v 只打印不匹配的行
- 正則表達(dá)式
- grep pattern
- wc -打印行,字,字節(jié)數(shù) (word count)
- wc -l 只顯示行數(shù)
- head/tail -打印文件開頭部分/結(jié)尾部分
- 默認(rèn)情況下10行
- head/tail -n 5 ls-output.txt
- tial -f 實時監(jiān)控文件,直到ctrl-c
- tee -從標(biāo)準(zhǔn)輸入(stdin)讀取數(shù)據(jù)并輸出(stdout)到標(biāo)準(zhǔn)輸出和文件
- ls /usr/bin | tee ls.txt | grep zip
- 管道線 |
- I/O重定向允許我們可以更改輸出走向和輸入來向
- 一般地,輸出 ->屏幕,
- 輸入來自鍵盤,
- 但是通過 I/O 重定向,我們可以改變輸入輸出方向
- > 或者 >> 重定向符號
- 覆蓋寫入 >
- ls -l /usr/bin > ls-output.txt
- less ls-output.txt
- > ls-output.txt 寫入空白
- ls -l /usr/bin > ls-output.txt
- 追加寫入 >>
- ls -l /usr/bin >> ls-output.txt
- 重定向標(biāo)準(zhǔn)錯誤
- ls -l /bin/usr 2> ls-error.txt
- 重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤到同一個文件
- ls -l /bin/usr > ls-output.txt 2>&1
- ls -l /bin/usr &> ls-output.txt
- 處理不需要的輸出
- ls -l /bin/usr 2> /dev/null
- 覆蓋寫入 >
Chap 8 從shell眼中看世界
- echo -顯示一行文本
- *
- echo * == ls
- echo .* 僅顯示隱藏文件
- echo /usr/*/share
- ~
- echo ~ (home路徑)
- 算術(shù)表達(dá)式 $((expression))
- echo $((2+2)
- {} -乘法原理
- [me@linuxbox ~]$ echo Front-{A,B,C}-Back Front-A-Back Front-B-Back Front-C-Back
- 參數(shù)
- echo $USER
- *
- 命令替換 - 允許把一個命令的輸出作為一個展開模式來使用
- echo $(ls) 或者 echo
ls - ls -l $(which cp) 或者 ls -l
which cp - "" 除了$ \ `之外,當(dāng)作普通字符
- echo $(cal)
- echo "$(cal)"
- ‘’ 所有的都當(dāng)作普通字符
- echo $(ls) 或者 echo
Chap 9 鍵盤高級操作技巧
- 命令
- clear
- history -顯示歷史列表內(nèi)容
- 默認(rèn)最后500個命令
- history | grep /usr/bin
- 移動光標(biāo)
- Ctrl-a -移到行首
- Ctrl-e -移到行尾
- 修改/剪切/粘貼文本
- 自動補(bǔ)全 : tap
Chap 10 權(quán)限
- Unix -多個用戶可以在同一時間使用同一臺計算機(jī)
- 命令
- id -顯示用戶身份號
- chomod -更改文件模式
- 只有文件所有者/超級用戶才能修改
- umask -設(shè)置默認(rèn)權(quán)限
- 0022 (八進(jìn)制) -> 000 000 010 010
- 二進(jìn)制中數(shù)字1出現(xiàn)的位置,相對應(yīng)的屬性被刪除
- su -以其他用戶身份和組ID運(yùn)行一個shell
- su [-[l]] [user]
- su -c 'command'
- 不啟動一個新的可交互shell
- 僅將命令結(jié)果傳回當(dāng)前shell
- su -c 'ls -l /root/*'
- sudo
- su 和 sudo 之間的一個重要區(qū)別是 sudo 不會重新啟動一個 shell,也不會加載另一個 用戶的 shell 運(yùn)行環(huán)境
- chown - 更改文件所有者和用戶組
- 需要超級用戶權(quán)限
- chown [owner][:[group]] file...
- sudo chomn tony: ~tony/myfile.txt
- chgrp -更改用戶組所有權(quán)
- passwd -更改用戶密碼
- passwd [user]
- 讀取寫入執(zhí)行
- -rw-rw-r--
- 第一位(5種)
- -
- d
- l
- c
- b
- 剩下九位讀r/寫w/執(zhí)行x
- 對應(yīng)文件所有者、文件組所有者、其他人
- 八進(jìn)制
- 000 ---
- 001 --x
- 010 -w-
- 011 -wx
- 100 r--
- 101 r-x
- 110 rw-
- 111 rwx
- 符號表示法
- u -user
- g -group
- o -others
- a -all
- eg
- u+x - user添加執(zhí)行權(quán)限
- -x -所有人都刪除執(zhí)行權(quán)限
- o-rw
- go=rw
- 第一位(5種)
- -rw-rw-r--
- 更改身份
- 多重身份
- 注銷系統(tǒng)并以其他用戶身份重新登陸系統(tǒng)
- 使用su命令 (超級用戶是# 不是$ )
- 使用sudo命令
- 多重身份
Chap 11 進(jìn)程
- 常用命令
- ps
- ps -列出與當(dāng)前終端會話相關(guān)的進(jìn)程
- ps x -列出所有進(jìn)程
- ps aux -顯示屬于每個用戶的進(jìn)程信息
- user -用戶ID.進(jìn)程所有者
- %CPU -CPU使用率
- %MEM -內(nèi)存使用率
- VSZ -虛擬內(nèi)存大小
- RSS -所占物理內(nèi)存大小
- START -起始時間
- top 動態(tài)查看進(jìn)程
- jobs
- bg -進(jìn)程放到后臺
- 進(jìn)程 &
- fg -進(jìn)程返回到前臺
- fg %1 (工作序號)
- kill -停止一個進(jìn)程
- kill [-signal] PID
- HUP 1 終端斷線 INT 2 中斷(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) TERM 15 終止 KILL 9 強(qiáng)制終止 CONT 18 繼續(xù)(與STOP相反, fg/bg命令) STOP 19 暫停(同 Ctrl + Z)
- killall
- killall [-u user] [-signal] name
- shutdown
- ps
Chap 12 shell 環(huán)境
- 命令
- printenv - 打印部分或所有環(huán)境變量
- printenv USER
- set
- export
- alias
- printenv - 打印部分或所有環(huán)境變量
- 常用變量
- DISPALY
- EDITOR
- HOME
- echo $HOME
- SHELL
- LANG
- OLD_PWD
- PAGER
- PATH
- PS1
- PWD
- TERM
- TZ
- USER
- 如何建立shell環(huán)境
- 登陸shell會話的啟動文件
- /etc/profile - 應(yīng)用于所有用戶的全局配置腳本
- ~/.bash_profile -用戶私人的啟動文件
- ~/.bash_login -如果~/.bash_profile沒找到,會讀取該腳本
- ~/.profile -如果/.bash_profile和/.bash_login沒找到,會讀取該腳本
- 非登陸shell會話的啟動文件
- /etc/bash.bashrc -應(yīng)用于所有用戶的全局配置文件
- ~/.bashrc -用戶私有的啟動文件
- 登陸shell會話的啟動文件
- 文本編輯器
- nano
- nano .bashrc
- Ctrl-o 保存修改
- ctrl-x 退出修改
- vi/vim
- emacs
- 備份文件
- cp .bashrc .bashrc.bak
- .bak, .sav, .old, .orig 是用來指示文件的流行方法
- ??
- umask 0002 -設(shè)置掩碼來解決共享目錄的問題
- export HISTCONTROL = ignoredups -忽略重復(fù)命令
- export HITSIZE = 1000 -設(shè)置最大記錄1000行,默認(rèn)是500行
- nano
Chap 13 VI簡介
- vi -啟動
- :q 退出
- :q! 強(qiáng)制退出
- 兩次 Esc 找到路
- i 插入文本
- f 查找一行
- / 查找整個文件
- :wq 保存修改
Chap 14 自定制shell提示符
Chap 15 軟件包管理
- apt-get