linux高階程式設計二基礎知識

2021-07-16 03:25:24 字數 3957 閱讀 1093

***************=== shell **********====

一、shell命令

1.shell是一種命令直譯器

2.shell的種類:

1.bash  

2.sh

3.ksh

4.csh

5....

3.檢視當前的shell型別

echo $shell

4.檢視系統能支援的shell

vi /etc/shells

5.command [-options] arg1 arg2 arg3

6.自動補齊:tab

tab:寫入乙個命令的時候,可以用tab鍵來補全命令

二、命令

1.基本操作命令

1.1 pwd ==> 檢視當前目錄的絕對路徑

1.2 ls  ==> 檢視當前目錄下的可見檔案

ls -a ==> 檢視當前目錄下所有檔案(包含隱藏檔案)

ls -l ==> 檢視可見檔案的詳細資訊

linux下一切皆是檔案 (7種)

b: 塊裝置檔案

block:儲存裝置檔案      

c: 字元裝置檔案

character:作業系統識別的字元裝置

d: 目錄檔案

directory:目錄檔案

-: 普通檔案

l: 連線檔案

s: 套接字檔案

socket:進行網路傳輸的檔案

p: 管道檔案

pipe:進行程序間通訊

fifo:

檔案==》使用者==》組使用者

421 421 421

rwx rwx rwx

r:代表可讀

w:代表可寫

x:代表可執行

--- --- ---

7   7   7

第一組:表示檔案所屬使用者可讀可寫可執行許可權

第二組:表示檔案所屬使用者同組的其它使用者可讀可寫可執行許可權

第三組:表示其他使用者對檔案擁有可讀可寫可執行的許可權

1.3 chmod ==>chmod 777 檔名

將檔案的許可權規定為所有人對此檔案都能執行讀寫執行的操作

chmod +x 檔名

規定所有人對此檔案都有對此檔案執行的許可權

1.4 mkdir ==>mkdir 檔名

建立乙個目錄檔案

1.5 rmdir ==>rmdir 檔名

刪除乙個空目錄檔案

rm -r 檔名

1.6 touch ==>touch 檔名

建立乙個普通檔案

vi 檔名

2. 檔案操作命令

2.1 cat ==> cat 檔名

在shell下檢視檔案

more ==> more 檔名

less ==> less 檔名

head ==> head 檔名

head -n 行數 檔名

tail ==> tail 檔名

tail -n 行數 檔名

2.2檔案拷貝和移動

拷貝:cp

格式:cp 原始檔  目標檔案

移動:mv

格式:mv 原始檔  目標檔案

小練習:在家目錄下新建乙個test目錄

在test目錄中新建a.c b.c c.c三個檔案

在test目錄下面建立test2目錄

將test目錄中的a.c拷貝到test2目錄下

將test目錄中的b.c移動到test2目錄下

2.3.檔案檢索命令:

find

==> find -name 檔名 

在當前目錄及子目錄下查詢檔案

==> find / -name 檔名

在系統中查詢檔案

==> find /home/linux -name 檔名

在/home/linux目錄及子目錄下查詢檔案

2.4.歷史查詢命令

history ==> history

檢視shell下命令的歷史記錄

==> echo $histsize

列印history緩衝區的大小

==> histsize=2000

設定history快取區大小

==> history -c

清空history快取區

2.5.命令別名

alias

==> alias chakan='ls -l'

chakan將能實現ls -l的命令

alias 新命令='原始命令'  

新建乙個命令別名

unalias 新命令

刪除乙個命令別名

三、特殊:

1.萬用字元

*匹配滿足字串的任意長度任意字元的檔案

?匹配滿足字串的乙個任意字元的檔案

匹配滿足字串的中括號內制定的檔案

[-]匹配滿足字串的中括號內從x-x的檔案

[^]匹配滿足字串的中括號內除了x的檔案

2.管道

|連線兩個shell命令

將前面命令的輸出作為後面命令的輸入

ps -ef | grep ***    檢視某個程序狀態

3.輸出定向

>

echo helloworld > 1.txt

將本來應該列印在終端上的helloworld列印到1.txt檔案中(覆蓋原始檔資訊)

>>

echo helloworld >> 1.txt

將北來應該列印在中斷上的helloworld追擊到1.txt檔案中(不覆蓋原始檔資訊,只是追加在檔案末尾)

四、不常用

判斷檔案是否一致

diff file1 file2

判斷檔案型別

file 1.txt

中斷顯示

echo helloworld

echo $histsize

echo $shell

當前系統日期命令

date

檢視當前登入使用者

whoami

使用者身份切換

su root

su linux

五、打包命令

1.打包 tar

tar -cvf ***.tar ***

2.解包 tar

tar -xvf ***.tar

3.壓縮

gzip

gzip -c ***.tar > ***.tar.gz

4.解壓 gunzip

gunzip ***.tar.gz

5.壓縮 bzip2

bzip2 -k ***.tar

6.解壓 bunzip2

bunzip2 ***.tar.bz2

7.組合鍵

tar -zcvf ***.tar.gz ***

tar -zxvf ***.tar.gz

tar -jcvf ***.tar.bz2 ***

tar -jxvf ***.tar.bz2

六、使用者管理命令

ubuntu

1. 新建使用者:sudo adduser ***

2. 修改密碼:passwd ***

3. 刪除使用者:deluser ***

4. 切換使用者:su ***

/etc/passwd

儲存與使用者相關的資訊

/etc/shadow

儲存使用者密碼

/etc/group

儲存使用者組資訊

/home/james

家目錄七、程序管理命令

1.程式:程式是一系列**的集合

程序:程式執行的過程

ps -ef ==>檢視當前作業系統中程序資訊

ps aux ==>檢視當前作業系統中程序資訊

kill -9 程序號(pid)

殺死程序號對應的程序

killall -9 程序名

殺死所有程序名程序

top==>根據cpu佔用率去檢視程序

Linux基礎知識(二)

二 專案的自動化構建工具 偵錯程式的功能 除錯 觀察程式的執行過程,通常目的都是為了排查程式的執行錯誤。除錯程式的前提 程式必須是乙個debug版本的程式。由於gcc g 預設生成release版本程式,因此若要生成debug版本,則使用 g選項gcc g test.c o test。可執行程式的分...

linux網路程式設計基礎知識

int connect int sockfd,const struct sockaddr servaddr,socklen t addrlen 引數 sock是socket返回的套接字描述符,第二個和第三個引數是伺服器的套接字位址結構的指標和該結構的大小。作用 tcp客戶端通過connect函式建立...

《UNIX環境高階程式設計》 UNIX基礎知識

一 unix體系結構 1 unix系統的體系結構 p1 圖1 1 2 核心的介面被稱為系統呼叫。公用函式構建在系統呼叫介面之上,應用程式即可食用公用函式庫,也可使用系統呼叫。二 登入 1 口令檔案 etc paaswd由7個冒號分隔的字段組成,依次是 登入名 加密口令 數字使用者id 數字組id 注...