linux學習筆記003

2021-07-28 10:03:11 字數 4887 閱讀 9035

cat、tac、more、less、head、tail

cat:連線並顯示

-n 顯示行號

-e 顯示行結束符 $是回車符

-a 顯示所有的控制符

tac反過來檢視

ctrl+c 終止當前命令

分屏顯示:

more、less

more: 向後翻

less:

head:檢視前n行

tail:檢視後n行

-n tail -f: 檢視檔案尾部,不退出,等待顯示後續追加至此檔案的新內容;用於檢視日誌等類似的檔案。

cut、join、sed、awk

database:資料庫

關係型資料庫:

表:二維表

tom:23:male:2013/05/06

cut:

-d: 指定字段分隔符,預設是空格

-f: 指定要顯示的字段

-f1,3

-f1-3

文字排序:sort

-n:數值排序

-r: 降序

-t: 字段分隔符

-k: 以哪個欄位為關鍵字進行排序

-u: 排序後相同的行只顯示一次

-f: 排序時忽略字元大小寫

sort-t: -k3 -n /etc/passwd

uniq:

-c: 顯示檔案中行重複的次數

-d: 只顯示重複的行

文字統計:wc (word count) 行數單詞數 字元數

-l 行數

-w 單詞數

-c 字元數

-l 最長的一行包含多少個字元

字元處理命令:tr ——轉換或刪除字元

tr [option]... set1 [set2] tr 'ac' 'ab' 把a替換成a b替換成b

-d: 刪除出現在字符集中的所有字元

tr ab ab

tr -d 'ab'

shell: 外殼

gui:gnome, kde, xfce

cli: sh, csh, ksh, bash(開源協定), tcsh,zsh(最新的sh)

root, student

程式:程序

程序:在每個程序看來,當前主機上只存在核心和當前程序

程序是程式的副本,程序是程式執行例項

使用者工作環境:

bash:

#root使用者

$普通使用者

tom,jerry

shell,子shell

pstree 顯示程序樹

bash—bash從init程序開始每個程序都是其子程序建立

bash:

1、命令歷史、命令補全

2、管道、重定向

3、命令別名

4、命令列編輯

5、命令列展開

6、檔名通配

7、變數

8、程式設計 man bash可以檢視bash幫助文件

游標跳**

ctrl+a:跳到命令列首

ctrl+e:跳到命令行尾

ctrl+u: 刪除游標至命令列首的內容

ctrl+k: 刪除游標至命令行尾的內容

ctrl+l: 清屏

檢視命令歷史:history 當前目錄下,.bash_history

-c:清空命令歷史

-doffset [n]: 刪除指定位置的命令

-w:儲存命令歷史至歷史檔案中

環境變數

path:命令搜尋路徑

histsize: 命令歷史緩衝區大小1000條

命令歷史的使用技巧:

!n:執行命令歷史中的第n條命令;

!-n:執行命令歷史中的倒數第n條命令;

!!: 執行上一條命令;

!string:執行命令歷史中最近乙個以指定字串開頭的命令

!$:引用前乙個命令的最後乙個引數;

esc, .

alt+.

命令補全,路徑補全

命令補全:搜尋path環境變數所指定的每個路徑下以我們給出的字串開頭的可執行檔案,

如果多於乙個,兩次tab,可以給出列表;否則將直接補全;

路徑補全:搜尋我們給出的起始路徑下的每個檔名,並試圖補全;

alias cmdalias='command [options][arguments]'

在shell中定義的別名僅在當前shell生命週期中有效;別名的有效範圍僅為當前shell程序;

alias cls=clear

unalias cls

unalias cmdalias

.bashrc 設定永久別名

more.bashrc

\cmd 用命令本身而不是命令的引用

命令替換: $(command), 反引號:`command` 使用命令執行結果

echo "the current directory is$(pwd)."

把命令中某個子命令替換為其執行結果的過程

file-2013-02-28-14-53-31.txt

touch ./file-$(date +%f-%h-%m-%s).txt

bash支援的引號:

``: 命令替換

"": 弱引用,可以實現變數替換

'': 強引用,不完成變數替換

*: 任意長度的任意字元

?:任意單個字元

:匹配指定範圍內的任意單個字元

[abc], [a-m], [a-z], [a-z], [0-9], [a-za-z],[0-9a-za-z]

[:space:]:空白字元

[:punct:]:標點符號

[:lower:]:小寫字母

[:upper:]: 大寫字母

[:alpha:]: 大小寫字母

[:digit:]: 數字

[:alnum:]: 數字和大小寫字母

# man 7 glob可以看上面的

[^]: 匹配指定範圍之外的任意單個字元

[[:alpha:]]*[[:space:]]*[^[:alpha:]]

1、建立a123, cd6, c78m,c1 my,  m.z, k 67, 8yu, 789等檔案;注意,以上檔案是以逗號隔開的,其它符號都是檔名的組成部分;

2、顯示所有以a或m開頭的檔案;

ls [am]*

3、顯示所有檔名中包含了數字的檔案;

ls *[0-9]*

ls *[[:digit:]]*

4、顯示所有以數字結尾且檔名中不包含空白的檔案;

ls *[^[:space:]]*[0-9]

5、顯示檔名中包含了非字母或數字的特殊符號的檔案;

ls *[^[:alnum:]]*

安全上下文(secure context):

許可權:r, w, x

檔案:r:可讀,可以使用類似cat等命令檢視檔案內容;

x: 可執行,exacutable,可以命令提示符下當作命令提交給核心執行;

目錄:r: 可以對此目錄執行ls以列出內部的所有檔案;

w: 可以在此目錄建立檔案;

x: 可以使用cd切換進此目錄,也可以使用ls-l檢視內部檔案的詳細資訊;

rwx:

r--:唯讀4

r-x:讀和執行6

---:無許可權0

0 000 ---:無許可權

1 001 --x: 執行

2 010 -w-: 寫

3 011 -wx: 寫和執行

4 100 r--: 唯讀

5 101 r-x: 讀和執行

6 110 rw-: 讀寫

7 111 rwx: 讀寫執行

755:rwxr-xr-x

rw-r-----: 640

660:rw-rw----

rwxrwxr-x:775

使用者:uid, /etc/passwd

組:gid, /etc/group

影子口令:

使用者:/etc/shadow

組:/etc/gshadow

使用者類別:

管理員:0

普通使用者: 1-65535

系統使用者:1-499

一般使用者:500-60000

使用者組類別:

管理員組:

普通組:

系統組:

一般組:

使用者組類別:

私有組:建立使用者時,如果沒有為其指定所屬的組,系統會自動為其建立乙個與使用者名稱同名的組

基本組:使用者的預設組

附加組,額外組:預設組以外的其它組

程序:tom tom

物件:rwxrw-r--  jerry tom a.txt

tom: ls

rwxr-xr-x root root /bin/ls

lsman 5 passwd

/etc/passwd

account: 登入名

password: 密碼  密碼!!被鎖定使用者

uid:

gid:基本組id

comment: 注釋

home dir:家目錄

shell:使用者的預設shell

/etc/shadow 1表示md5後八位表示salt雜質

account: 登入名

encrypted password: 加密的密碼

對稱加密:加密和解密使用同乙個密碼

公鑰加密:每個密碼都成對兒出現,乙個為私鑰(secret key),乙個為公鑰(public key)

單向加密,雜湊加密:提取資料特徵碼,常用於資料完整性校驗

1、雪崩效應 計算檔案md5碼 md5sum 檔名

2、定長輸出

md5:message digest, 128位定長輸出資訊摘要 密碼!!被鎖定使用者

sha1:secure hash algorithm, 160位定長輸出   安全雜湊加密

Linux學習筆記003 目錄

根目錄 bin bin目錄,存放二進位制檔案,可執行的命令 boot 系統管理目錄,存放引導和核心 etc 服務配置目錄,存放配置檔案 tmp 存放臨時檔案 usr 使用者程式,存放使用者所需要的程式 var 變數和日誌 dev 裝置檔案目錄 sda硬碟,tty驅動 home 普通使用者的家目錄 l...

學習筆記 003

陣列名 下標表示式 陣列名 整數 如 a 0 a i a 2 i 1 a a i a 2 i 1 指標可以視為乙個普通變數,通常所說的定義乙個指標實際上是宣告乙個指標變數 宣告乙個指標變數時,需要向編譯器提供 指標的型別,原則上指標型別應與其指向的資料型別一致 指標變數名 宣告乙個指向int型資料的...

Python學習筆記003

0032020 7 7 1變數名 把乙個值賦值給乙個名字時,他會儲存在記憶體中,稱之為變數 variable 在大多數語言中,都把這種行為稱之為 給變數賦值 或 把值儲存在變數中 2python與大多數其他計算機語言不一樣,並不是把值儲存在變數中,而是把名字貼在值上面 3所有有python程式設計師...