1.瀏覽文件或文件夾
ls
選項:-l 列出詳細信息
linux文件類型
-:普通文件(f)
d:目錄文件
b:塊設備文件(block)
c:字符設備文件(chareacter)
l:符號鏈接文件(symbolic link file)
p:命名管道(pipe)
s:套接字文件(socket)
linux文件權限 9位字母,每三位一組,rwx(讀寫執行)
文件被硬鏈接的次數
文件的屬主(owner)
文件的屬組(group)
文件的大小:默認是字節
時間戳(timestamp):這裏顯示的是最近一次文件內容被修改的時間。還有兩種時間爲:最近一次被訪問的時間(讀),修改的時間(modify指的是文件內容發生修改),最後一次被改變的時間(文件包含兩種數據,即數據數據,屬性數據,屬性數據又被稱爲元數據,屬性被修改成爲改變)
-h :human readable 將單位換算爲人類刻度的單位
因此可以經常寫爲ls-lh
-a:顯示所有文件,包含以.開頭的隱藏文件
-A:顯示所有隱藏文件,不包含 . 和..
-d:顯示目錄自身屬性,例如:ls -ld /root
index node,簡稱爲inode
例如ls -i 用來顯示文件的節點索引號
-r :逆序顯示文件(默認是正序文件名)
-R:遞歸顯示
2.切換目錄
cd + 目錄名
cd不加任何參數爲回到用戶的家目錄
cd ~回到自己家
cd ~用戶名: 進入指定用戶的家目錄
cd -回到上一個目錄
3. 查看linux命令類型
內置命令(shell內置):爲了方便執行,自帶一些管理命令如:cd
外部命令:在文件系統的某個路徑下有一個與命令名稱相應的程序
例如:
type cd顯示結果爲 cd is a shell builtin說明爲內部命令
type ls 顯示結果爲/bin/ls
3.1 printenv顯示系統環境變量
3.2 hash 列出緩存的命令
4.顯示和修改時間
硬件時鐘與系統(是軟件模擬的)時鐘
clock :查看硬件時間
hwclock:也是查看硬件時間
date 設置時間如:date 0226104913.30 設置爲2月26日10點49分30秒 2019年
date +"Today is %d"
date +"%Y-%m-%d %H:%M:%S" 顯示年月日時分秒
date +%s 顯示1970年開始的世紀秒
hwclock -w將系統時間同步到硬件去
hwclock -s將硬件時間同步到系統時鐘
4.1獲取命令幫助
內部命令:help COMMAND 例如help cd
外部命令:加長選項--help 獲得簡要 幫助信息。
info 也可查看命令幫助
幫助文件:/usr/share/doc
使用man COMMAND 用手冊來查看幫助
分章節顯示命令
man LAND=en
whatis command查看命令在哪個章節:如whatis read
1章:用戶命令,所有用戶都可以(/bin:/usr/bin/:/usr/local/bin)
2章:系統調用
3章:庫調用
4章:特殊文件(設備文件)
5章:文件格式,配置文件。如,passwd 。
6章:遊戲
7章:雜項(Miscellaneous)
8章:管理員才能使用的命令(/sbin:/usr/sbin:/usr/local/sbin)
如man 5 passwd
用來查看文件幫助
man passwd 用來查看命令
如:man 2 read 查看系統調用的read
查看命令幫助的一般約定:
[ ]中括號括起來的可以省略
<>尖括號是必須給出的
豎線分割代表必選其一
...可以出現多次
{} 分組
NAME:命令名稱及功能簡要說明
SYNOPSIS:用法說明
DESCRIPTION:命令功能的詳細描述,包括每一個選項的意義
OPTION:說明每一個選型的意義
FILES:此命令想幹的配置文件
BUGS:
EXAMPLES:
SEE ALSO:另外參照
翻頁方法
向後翻一屏: 空格鍵
向前翻一屏:b
向後翻一行:ENTER
向前翻一行:k
查找:
/關鍵字:向後
?KEYWORD:向前
退出:q
n:下一個
N:前一個
如:man lvcreate
4.2日曆 cal
5.echo
6.printf
printf "The year is 2013" 默認沒有換行符
printf "The year is 2013\n" 使用\n可以換行
7.file 如:file /bin/lb
windows:PE
Linux:ELF 爲可執行文件
rootfs:根文件系統
FHS:文件系統層級標準,規定了Linux發行版應該創建那些目錄,
並且在固定的位置看到相應的文件。
/boot:系統啓動相關的文件,如內核、initrd、以及grub(bootloader)
vmlinux-2.6.18-308.el5操作系統啓動用到的內核
initrd-2.6.18-308.el5.img操作系統映像
/dev:設備文件
如果光驅設備顯示爲dvd,cdrw
或者cdrom,顯示爲青色的是符號鏈接文件,
嘗試用:ls -l /dev查看發現有很多鏈接,
如:cdrom指向sr0 ,dvd和scd0也指向sr0
大多數發行版都可以通過cdrom來引用
設備文件分類:
塊設備:隨機訪問,例如磁盤;
字符設備:只能線性訪問,以字符爲單位,例如鼠標、顯示器、鍵盤;
背景爲黑色,前景爲黃色的文件,存儲爲只有數據,沒有元數據。
主設備號(major)和次設備號(minor)
/etc:配置文件
/home:家目錄
/root:root的家
工作的時候千萬不能用root登錄
/lib:庫文件
/lib/modules:內核模塊文件
靜態庫, .a ; .la(windows)
動態庫:.dll (windows); .so(shared object),在內存中只存儲一份
lost+found:任何分區都會有
/media: 掛載點目錄,通常用於掛在移動設備
/mnt:掛載點目錄,額外的臨時文件系統
/misc:雜項
/opt:optional可選目錄,早期用於安裝第三方軟件,例如早期oracle.
/proc:僞文件系統,系統啓動起來不爲空,內核映像文件,內核的統計數據或配置。例如網卡發送多少個數據包,是否支持IPV4.系統調優會用。
/sys:僞文件系統,跟硬件設備相關的屬性映射文件。例如修改磁盤調度隊列
/tmp:臨時文件,公共臨時文件,一個月之內沒有被修改,會被自動刪除;任何一個用戶都可以創建文件,但是隻能刪除自己的文件,不能刪除別人的文件。
/var:可變化的文件
lock:鎖文件
log:日誌
run:
tmp:另一個臨時文件存儲目錄
/bin:可執行文件,用戶命令
/sbin:可執行文件,管理命令
/usr:universil shared read-only全局共享只讀文件
/usr/bin
/usr/sbin
/usr/lib
/usr/local:第三方軟件
/usr/local/bin:
/usr/local/lib:
命名規則:1.長度不超過255個字符;2.不能使用/當文件名;3.嚴格區分大小寫
===========================================================
linux基本操作
1)文件管理
2)目錄管理
ls
cd
pwd
mkdir -p /root/x/y/z
-v 顯示創建過程
在同一路徑下同時創建多個文件夾
可利用Bash Shell 提供的花括號展開
mkdir -pv /mnt/test/{x/m,y}
展開爲
mkdir -pv /mnt/test/x/m /mnt/test/y
例子:在/mnt/test2/目錄下用一條命令創建
a_b,a_c,d_b,d_c
mkdir /mnt/test2/{a,d}_{c,d}
波浪線展開
~USERNAME
刪除目錄(空目錄)
rm /mnt/test2
rmdir -p /mtn/test2/a_c 刪除一脈單傳的目錄
文件的創建刪除
touch a :如果存在a文件,把a的時間戳改掉
touch -a a :只改變訪問時間。
touch -m a :只改變修改時間
但是以上兩條命令同時也改變了 change time
change time 是無法通過touch 改變的
touch -m -t 201212121212 a
修改了 Modify time爲2012年12月12日12時12分12秒
install 只能操作文件
mv 移動文件/文件夾
touch -c c 不建立c文件
stat 顯示一個文件的狀態信息
tree 查看文件系統樹
cp 難點,較複雜 默認會將鏈接複製爲文件
-P 保持爲鏈接
-l 如果是鏈接就複製鏈接指向的文件
-d 保持鏈接
-a 不改變文件的一切屬性,歸檔複製,常用於備份
文本處理命令:
cat more less head
tail tac cut
grep
uniq :報告重複的行,如果三行一樣但不相鄰,並非一樣的行
例子 uniq sort.txt
-d 只顯示重複的行
-c 報告某一行重複了幾次
cut 按標號分割字符串
例子:cut -d : -f1 /etc/passwd 以分隔符:分割,顯示第一個字段
-d :指定字段分隔符,默認是空格
-f +數字 :顯示指定的字段 如果 -f1,3 顯示第一個第三個; -f1-3顯示1到3字段
join 合併文本
sort文本排序
例子:sort /etc/fstab : 用於排序顯示文件,默認升序
-n 按照數值大小排序
-r 按照降序排序
-t 指定分隔符
-k 指定按照哪個進行排序
例子:
sort -t: -k3 /etc/asswd 以冒號分割,按照第三個字段排序
sort -t: -k3 -n /etc/asswd 以冒號分割,按照第三個字段排序,並按照數字排序
-u 如果排序完成之後又重複的行,只顯示一次
-f 排序時忽略字符大小寫
wc 文本統計 word count
例子wc /etc/fstab 報告 8行 48個單詞 608個字節
-l 只顯示行數
-w 只顯示單詞數
-c 只顯示字符數
-L 最長的一行包含多少個字符
tr字處理命令轉換或刪除字符
例子:tr ab AB 把a換成A,把b換成B
tr只能用文件重定向,不支持加文件名參數
例子:tr 'ab' 'AB'< /etc/passwd
tr 'a-z' 'A-Z'< /etc/passwd 把所有的小寫換成大寫
tr -d 'ab' 出現字符a和b的時候都會被刪除,使用此選項只有一個參數即可。按照單個字符刪除而不是單詞
sed
awk(最難)
linux shell 特性
c shell 類似於C語言,Cshell比Bshell更強大
K shell 功能更強大,但是隻能付費才能使用,後來分爲社區版和
BashShell 指的是原來shell的增強版。遵循開源協定。
bash shell 可以支持個性化配置
shell 有子shell概念
輸入bash可以進入子shell
export LANG=en
通過exit可以退出子shell
通過pstree 可以查看到其中關係
通過csh可以切換到cshell
通過ksh可以切換到kshell
bash特性
1、命令歷史、命令補全
bash會自動記錄命令並記錄到內存
history
history 即可顯示命令歷史,
***打掃痕跡會用到
例子:不想讓別人知道自己執行過哪些歷史
-c 清空整個命令歷史
-d +行號例子:history -d 500刪除第500行的歷史命令
例子:history -d 500 10從第500個開始向後刪10個
歷史命令的存儲文件~/.bash_history
-w:保存命令歷史到歷史文件中
環境變量中有個
HISTSIZE:命令歷史大小
echo $HISTSIZE 默認是1000
!n:歎號加數組,用來執行第n條命令
!-n:執行倒數第n條命令
!! 執行上一條命令
!str :執行命令歷史中以指定字符串開頭的命令,如:!man
!$ :可以引用上一個命令的最後一個參數,如:nano !$
按下esc 鬆開再按.也可以引用上一個命令的最後一個參數
alt+.(遠程終端不支持)
補全命令:輸入cl 敲兩下tab鍵,路徑也可補全
2、管道、重定向
3、命令別名
例子:alias cls=clear把clear起個別名爲cls
alias CMDALIAS=COMMAND [OPTION] [ARG]
如果有選項空格等,需要用單引號引起來
關閉之後就沒有
通過配置文件,可永久使其生效
alias cdnet='cd /etc/sysconfig/network-scripts'
alias cls='clear'
alias cp='cp -i'
還有根據自己的
unalias +別名:撤銷別名
命令替換
把命令中某個子命令替換爲其執行結果的過程
echo "The current director /root."沒有任何替換
echo "The current director $(pwd)" 就是先執行命令,並用返回的結果拼接會原來的字符串
touch ./file-$(date +%F-%H-%M-%S).txt 建立文件名以日期命名
echo "Dir is `pwd`"
命令替換的方法:
$(cmd [option] [arg])
使用反引號`cmd [option] [arg]`
雙引號:稱爲弱引用,可以實現變量替換,用變量的值來替換變量的名字
單引號:弱引用,不完成變量替換
4、命令行編輯
5、命令行展開
6、文件名通配 globbing
* 匹配任意長度的任意字符,沒長度也可以
? 任意單個字符
[] 匹配指定範圍內的任意單個字符 [abc]從abc中選一個,[a-z] [0-9]
[^] 託字符,指定範圍之外的單個字符
[[]]兩個中括號,
[:space:] 空白字符
[:alpha:] 所有字母 [^[:alpha:]]非字母
[:upper:] 大寫字母
[:lower:] 小寫字母
[:digit:] 數字
[:alnum:] 數字和大小寫字母
[:punct:] 標點符號
#man 7 glob可以獲得這些說明
字母開頭字母結尾,中間含有空格
[[:alpha:]]*[[:space:]]*[[:alpha:]]
touch a123 ab123 abc xyz x12 xyz123
以一個字母開頭,後面跟數字的文件名
以a開頭,後面跟任意字符
ls a*
以a開頭,以3結尾
ls a*3
以字母開頭,後面跟任意數字的文件
[a-zA-Z]*[0-9]
以a開頭,後面跟了一個數字,後面又跟任意字符
顯示文件名中包含了空白字符的文件
ls
以任意一個字符開頭,後面跟了y,又跟了任意字符
ls ?y*
ls [^0-9]*
顯示所有以a或m開頭的文件
ls [am]*
顯示所有文件命中包含了數字的文件
ls *[[:digit:]]*
顯示所有以數字結尾且文件名中不包含空白的文件
ls *[^[:space:]]*[[:digit:]] 這是錯誤的,這個問題要依賴於正則表達式
顯示文件名中包含了非字母或數字的特殊符號的文件
ls *[^[:alnum:]]* 這個也是有疑問的
7、變量
8、編程
通過man bash可以查看bash的幫助。
快捷鍵
命令光標跳轉
ctrl+a :調轉到行首
ctrl+e : 調到行尾
ctrl+d :
ctrl+u :刪除光標至命令行首的內容
ctrl+k :刪除光標至命令行尾的內容
ctrl 加左右箭頭可以向左右跳轉一個單詞(只有模擬終端支持)
ctrl+l 可以清屏
3)啓動程序
4)設備管理->安裝系統
5)軟件管理 安裝與卸載
6)進程管理
7)網絡管理