linux基本命令

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)網絡管理




































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章