Linux哲學思想:
1、一切皆文件;
把幾乎所有資源,包括硬件設備都組織為文件格式;
2、由眾多單一目的小程序組成;一個程序只實現一個功能,而且要做好;
組合小程序完成復雜任務;
3、盡量避免跟用戶交互;
目標:實現腳本編程,以自動完成某些功能;
4、使用純文本文件保存配置信息;
目標:一款使用的文本編程器即能完成系統配置工作;
第1章 Linux基礎入門
1.1 Linux終端介紹:
用戶與主機交互,必然用到的設備
物理終端:直接接入本機的顯示器和鍵盤設備—console
剛開機的時候,程序還沒有啟動,程序啟動完成后默認以虛擬終端1,或者圖形終端
設備文件:/dev/console
虛擬終端:附加在物理終端之上的以軟件方式虛擬實現的終端,centos6默認啟動6個虛擬終端
Ctrl+Alt+F#:[1,6] Alt+F1切回圖形界面
圖形終端:附加在物理終端之上的以軟件方式虛擬實現的終端,但額外會提供桌面環境
設備文件路徑:/dev/tty#
模擬終端:完全以軟件方式虛擬實現
圖形界面下打開的命令行接口
使用ssh或telnet協議遠程打開的界面
設備文件:/dev/pts/#
查看當前終端
使用tty命令
1.2 交互式接口
啟動終端后,在終端設備附加一個交互式應用程序
GUI:
X protocol+window manager+desktop=GUI
Desktop:
GNOME: C GTK
KDE: C++ QT
XFCE: 輕量級桌面
CLI:
shell程序
sh
csh
ksh 商業版
bash
zsh
顯示當前使用的shell:
# echo $SHELL
顯示當前系統啟用的所有shell:
# cat /etc/shells
1.3 shell提示符
命令提示符(prompt):
使用PS1環境變量定義
管理員:#
普通用戶:$
[root@www ~]# echo $PS1 [\u@\h \W]\$
[用戶@主機名 當前目錄名稱]提示符
1.4 命令使用方法
輸入命令,回車:
提醒shell程序找到鍵入命令所對應的可執行程序或代碼,并由其分析后提交給內核分配資源將其運行起來,表現為一個或多個進程
命令類型:
在shell中可執行的命令有兩類:
內建命令:由shell自帶的,而且通過某命令形式提供
外部命令:在當前系統的某文件系統路徑下有對應的可執行程序文件
which,whereis
區分內建命令和外部命令:
使用type命令
# type COMMAND
運行命令:
命令格式:
COMMAND [OPTIONS…] [ARGUMENTS…]
選項:用于啟用或關閉命令的某些功能
短選項:-c(一個字符),例如:-l,-h
多個短選項可以合并使用,例如:ls -lh
長選項:–word(一個單詞),例如:–long –help
參數:命令的作用對象
向命令提供數據:例如: ls -lh /etc /etc即為參數
注意:
1、多選項,以及多參數和命令之間都應該使用空白字符分隔
2、取消命令執行:Ctrl+c
1.5文件系統
windows:C:\Progam files\ofiice15\word.exe
Linux:/etc/sysconfig/network-scripts/ifcfg-eth0
Linux:一切從根開始
文件有兩類數據:
元數據:metadata
數據:data
Linux文件系統特性:
1、文件名嚴格區分字符大小寫
2、文件名可使用除/以為的任意字符,不建議使用特殊字符
/:根目錄,路徑分隔符
3、文件名長度最長不能超過255個字符
4、所有.開頭的文件 均為隱藏文件
路徑:
絕對路徑:從根目錄起始的路徑
相對路徑:從當前位置起始的路徑
當前位置的表示方式:
1、./: ./sysconfig/network-scripts
2、省略上述符號:sysconfig/network-scripts
..表示當前目錄的父目錄
當前目錄:current directory 也稱作working directory
pwd:printing working directory
LSB:Linux Standard Base Linux標準庫
第2章 Linux基礎命令
命令總結:
ls cd type tty cat which whereis pwd echo
命令:
文件系統相關:
目錄管理
文件管理
文件查看
文件編輯
系統管理相關:
2.1 Linux命令幫助獲取
內建命令:
# help COMMAND
如果使用man獲取的將是整個bash的幫助手冊
外部命令:
<1> # COMMAND –help
# COMMAND -h
<2>使用手冊(manual)
# man COMMAND
<3>信息頁
# info COMMAND
<4>程序自身的幫助文檔
README
INSTALL
Changelog
<5>程序官方文檔
官方站點:Documentation
<6>發行版的官方文檔
<7> Google
http://www.slideshare.net/ 需翻墻
內部命令使用幫助詳解
使用幫助了解命令:
hash命令:
shell搜尋到的外部命令的路徑結果會緩存至kv(key/value)存儲中
清除所有緩存:hash -r
history命令:
管理命令歷史:
登錄shell時,會讀取命令歷史文件中記錄下的命令:~/.bash_history
登錄進shell后新執行的命令只會記錄在緩存中,這些命令會在用戶退出時追加至命令歷史文件中
history:
-a:追加本次會話新執行的命令歷史列表至歷史文件中
-d: 刪除歷史中指定的命令
-c:清空命令歷史
快捷操作:
!# 調用歷史中第#條命令
!string 調用歷史中最近一個以string開頭的命令
!! 執行上一條命令
外部命令幫助獲?。?/span>
man COMMAND
手冊頁:/usr/share/man
man1: 用戶命令
man2: 系統調用
man3: C庫調用
man4: 設備及特殊文件
man5: 配置文件格式
man6: 游戲
man7: 雜項
man8: 管理類的命令
注意:有些關鍵不止一個章節中存在幫助手冊
要查看指定章節中的手冊:man # COMMAND
不確定有哪些章節可以使用:whatis COMMAND查看
[root@www ~]# whatis man man (1) - format and display the on-line manual pages man.config [man] (5) - configuration data for man man [manpath] (1) - format and display the on-line manual pages
man命令的配置文件:
centos 6: /etc/man.config
centos 7: /etc/man_db.conf
MANDATORY_MANPATH /PATH/TO/SOMEWHERE===>指明新的手冊文件搜索位置
# man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索COMMAND命令的手冊頁并顯示之
幫助手冊段落說明:
NAME 名字,簡要說明
SYNOPSIS 命令簡要使用幫助
DESCRIPTION 命令功能詳細描述
OPTIONS 選項
EXAMPLES 使用事例
AUTHOR 作者
PREORTING BUGS 報告bug
SEE ALSO
SYNOPSIS中符號意義:
[]: 可選內容
<>: 必選內容
a|b:二選一
….: 同一內容可出現多次
man命令操作方法:
Space,^V,^f,^F: 向文件尾部翻一屏
b,^B:向文件首部翻一屏
d,^D: 向文件尾部翻半屏
u,^U:向文件首部翻半屏
RETURN or ^N or e or ^E or j or ^J:向文件尾部翻一行
y or ^Y or ^P or k or ^K: 向文件首部翻一行
q: 退出
#:跳轉至第#行
1G: 回到文件首部
G:首部翻至文件尾部
文本搜索:
/KEYWORLD:
以KEYMORD指定的字符串為關鍵字,從當前位置向文件尾部搜索。不區分字符大小寫
n: 下一個
N: 上一個
?KEYWORD:
以KEYWORD指定的字符串為關鍵字,從當前位置向文件首部搜集,不區別大小寫
n: 跟搜索命令相同方向
N: 跟搜索命令相反
2.2 時間相關命令
date
date [OPTION]… [+FORMAT] —->顯示日期時間
FORMAT:格式符號
%a:顯示星期幾,簡寫的
[root@www ~]# date +%a Tue
%A:顯示星期幾,完全顯示
[root@www ~]# date +%A Tuesday
%Y:顯示四位年份
%y:顯示兩位年份
%m:顯示月份
%M:顯示分鐘
%d:日
%h:英文簡寫的月,Jun
%H:顯示小時
%S:秒
%s:現在距離1970年1月1號0點0分(unix元年)的秒數,timestamp(時間戳)
%D:顯示日期格式為:月/日/年
%F:顯示日期格式:年–月–日
%T:顯示時間格式:時:分:秒
date [MMDDhhmm[[CC]YY][.ss]] —->設置日期時間
MM:月份
DD:幾號
hh:小時
mm:分鐘
YY:兩位年份
CCYY:四位年份
.ss:秒鐘
Linux的兩種時鐘:
系統時鐘:由Linux內核通過CPU的工作頻率進行的計時
硬件時鐘:存儲在CMOS里的時鐘,關機后該時鐘依然運行,主板的電池為它供電
hwclock:顯示硬件時鐘
-s,–hctosys: 以硬件時間為準
-w,–systohc: 以系統時間為準
cal:顯示日歷
cal 年份
2.3 目錄相關命令
當前目錄或工作目錄
主目錄(~),家目錄:HOME—>
root: /root
普通用戶:/home/USERNAME
cd 切換目錄
cd 或cd ~:回當前用戶的主目錄
cd ~USERNAME:切換至指定用戶的家目錄
cd –:在上一個目錄和當前目錄之間來回切換
相關環境變量:
PWD:保存了當前目錄路徑—pwd
OLDPWD:上一次所在目錄路徑—-cd –
[root@www ~]# cd $OLDPWD [root@www etc]# cd $OLDPWD
pwd 顯示當前目錄
ls: list
顯示指定路徑下的文件列表
ls [OPTION]… [FILE]…
-a, –all: 顯示所有文件,包括隱藏文件
-A: 顯示所有文件,但不包含. 和..
-l: 顯示文件詳細信息,長格式
-/rw-r–r–./ 1/ root/ root/ 9615 /Jun 25 20:43/ install.log
文件類型/權限/文件被硬鏈接次數/屬主/屬組/size/文件最近一次被修改的時間/文件名
-h: 單位換算,易讀
-d: 顯示目錄自身的相關屬性,通常和-l結合使用
-r: 逆序顯示。以文件名開頭字母為準
-R: –recursive 遞歸顯示,顯示目錄及目錄下的所有文件。還是tree好使
stat
stat /PATH/TO/SOMEFILE
獲取指定文件的元數據
[root@www ~]# stat /etc File: `/etc' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 802h/2050d Inode: 12 Links: 63 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-28 11:46:11.597990443 +0800 Modify: 2016-06-28 19:16:22.341021361 +0800 Change: 2016-06-28 19:16:22.341021361 +0800
2.4 文件查看命令
cat
連接顯示文件內容
cat [OPTION]… [FILE]…
-E: 顯示行結束符$
-T: 顯示制表符
-n: 對顯示出的每一行進行編號
一般和EOF結合使用的較多
cat <<EOF>FileName
EOF
tac
與cat顯示相反,倒序的顯示
file
查看文件內容類型
file /PATH/TO/SOMEWHERE
echo
回顯
-n: 禁止自動添加換行符
-e: 允許使用轉義符
\n: 換行
\t: 制表符
echo "$VAR_NAME": 變量會替換,弱引用
echo '$VAR_NAME': 變量不會替換,強引用
echo “ : 命令引用
which
顯示命令對應的程序文件路徑
which [options] COMMAND
–skip-alias 跳過別名
[root@www ~]# which –skip-alias ls
whatis
使用mkwhatis命令可將當前系統上的所有幫助手冊及與之對應的關鍵字創建為一個數據庫
原創文章,作者:N21_Lorne,如若轉載,請注明出處:http://www.www58058.com/20951
寫的很好,排版還可以在漂亮一些,加油