C語言基礎 (1) 操做系統介紹,linux入門

 

 

 

 

第一天正則表達式

 

1、操做系統編程

1.1.1操做系統的目標windows

·方便:使計算機系統易於使用編輯器

·有效:以更有效的方式使用計算機系統資源函數

·擴展:方便用戶有效開發、測試和引進新功能工具

 

1.1.2 操做系統的地位測試

 

操做系統——向下封裝硬件spa

 

系統編程:在某個系統上面編程,系統調用,調用操做系統提供的接口操作系統

 

Unix => Linux3d

 

 

 

2.文件系統

 

2.1目錄和路徑

Windows \

Unix/Linux /

 

 

 

(記住 /   /bin 和 /home)

(記住lib C語言使用時候須要的庫函數)

 

usr == Unix System Resource4

 

/ 根目錄

/home 家目錄

/bin 放工具

/lib 放庫文件

/usr/include 頭文件

 

2.3 一切皆文件

 

 

 

 

2.權限問題:

ls -l stdio.h

 

開始的-表明文件,-後面有9個字符,三個三個爲一組,分類

 

第一組:文件全部者

第二組:用戶組(至關於qq羣..)

第三組:其餘用戶

 

root root 表明root用戶組的文件全部者root

 

-沒權限

r讀

w寫

x可執行

 

 

 

第一步:whoami 查看我是誰

第二步:cat /etc/group 查看到root組的羣號是0

第三步:cat/etc/passwd

解讀:

個人蜜罐子你叫作呼號

改一下權限(這個之後會學)

而後ls -l,gedit stdio.h 就會發現編輯器上沒有隻讀的限制了。

3.命令:

ls –help

ls -a  顯示全部文件(包括隱藏文件)

4.命令使用方式和技巧

(其實好像是manual的簡寫)

命令printf aaa

有一個函數也叫printf

若是直接輸入 man ls

那麼其實查詢的是命令

 

敲一下 man man 看一下手冊說明

原來輸入man printf的時候查詢的是第一章節的內容,

因此之後查詢的時候指定第三個章節好了,

自動補全: 按tab讓它自動補全

05:經常使用命令:ls

 

1.ls -l -a -h (-human更人性化)

ls -lah

 

2.ll (是ls -l-a的一個別名)

 

3.

(.. 和 . 算兩個文件夾)

 

4.ls stdio.h 看看有沒有這個文件,若是有stdio.h就會顯示出這個名字

  ls *.c

  ls te* 找te開頭的

  ls ?.c 只匹配一個字符的

  ls [1-9].?

5.touch 若是文件不存在,則建立文件

        若是文件存在,文件修改時間就會變成當前時間

 

   touch *.c 把全部.c文件改爲當前時間

   touch \*.c (這時建立了一個文件,不是通配符,而是轉義字符)

 

6.經常使用命令:重定向、more、管道

 

1.ls > test.txt

把ls顯示到屏幕的東西寫到test.txt中(覆蓋)

 

2.cat /usr/include/stdio.h

 

3.more /usr/include/stdio.h(分屏顯示)

 

4.管道: cat stdio.h | more

 

5.ls | grep std 輸入的是ls 輸出的要grep

7.經常使用命令:clear、cd、pwd

1.clear 或者 ctrl+l

 

2.cd .. . 

  cd什麼都不加或者加~ 去到用戶主目錄

  cd – 回到上一次進入的目錄

 

8.經常使用目錄:mkdir、rmdir、rm

 

1.mkdir建立目錄 參數-p能夠遞歸建立目錄庫

 

mkdir ./a/b/c -p

 

2.rmdir 只能刪除空的文件夾

 

mkdir a 加a這個參數

 

3.rm a -r 刪除掉這個文件夾

 

  -f 不進行提示

 

刪除全部文件:rm * -rf 用這個時候當心

 

由於可能會出現這種狀況:

rm * .png -rf (中間多了一個空格結果致使全部文件和.png都被刪除)

 

9.經常使用命令:grep

 

  1. 重定向:

touch 1.txt

touch 2.txt

cat 1.txt 2.txt > abc.txt

 

2.檢索:

 

按行的搜索Mike並標記: grep a.txt Mike -n

 

3.grep a.txt -i(忽略大小寫) -n(顯示行數) -v(取反:即匹配到的都不顯示,顯示相反的)

 grep a.txt -niv

 

 grep a test.txt -ni

 grep 「a」 test.txt -ni

 grep ‘a’ text/txt -ni

 看起來好像是同樣的,加不加雙引號都行

 

 可是有一個問題:若是文本中有 

這樣的,

 

grep 1 2 3 test.txt -ni

查找1或者2或者3

這樣就很差了,因此最好加上雙引號

 

grep ‘1 2 3’ test.txt -ni

grep ^a test.txt -ni

grep a$ test.txt -ni

 

裏面還能夠加各類正則表達式

10.經常使用命令:findcpmvfile

 

1.ls | grep abc

 

 

2.find ./ -name *.c

 

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

 

find ./ -size +12k -size -5M

 

3.cp 01.c 02.c

 

+++++ cp abc/ cba -r (遞歸的拷貝)

 

 

要是不加-v就會感受卡住沒提示,因此最號加-v

 

 

4.mv mike.c ../

 

5,file查看文件類型

 

hello.exe word.txt

 

 

10.經常使用命令:tar、gzip

 

1.磁帶歸檔(打包)

 

 

tar -cvf  (c表明create v表明進度 f表明file) f必須放在最後

 

tar -cvf aaaa.tar 1.txt 2.txt /cmd /floder

 

或者

 

tar -cvf aaaa.tar *

2.解包:

 

tar -xvf aaaa.tar (什麼都不寫 默認是在當前路徑)

l  tar只負責打包、解包,不進行壓縮

打包: tar -cvf xxx.tar 須要打包的文件

解包: tar -xvf xxx.tar (不指定路徑,默認在當前路徑解包)

 

   解包指定路徑: tart -xvf xxx.tar -C xxxxxx(路勁)

(很特別,若是想指定某個目錄,必須加-C)

 

3.文件壓縮

 

 如何查看某個目錄大小:

du ./目錄 -h

 

gzip 壓縮tar包

gzip  xxx.tar 自動在當前路徑生成xxx.tar.gz

gzip -d xxx.tar.gza

 

壓縮打包:tar -zvcf xxx.tar.gz 所需文件

解壓解包:tar -xzvf xxx.tar.gz

 

將當前目錄的都全部文件壓縮打包:tar -cvzf xxx.tar.gz *

 

壓縮打包:tar -cjvf xxx.tar.bz2 所需文件

解壓打包:tar -xjvf xxx.tar.bz2 -C 指定路徑

 

zip -r test * 把全部的壓縮叫test(必需要加-r)

unzip -d ./ test.zip

(爲了兼容windows的)

du ./cmd/ -h

經常使用命令which

 

which ls

which gc

which sudo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

這樣的,

 

grep 1 2 3 test.txt -ni

查找1或者2或者3

這樣就很差了,因此最好加上雙引號

 

grep ‘1 2 3’ test.txt -ni

grep ^a test.txt -ni

grep a$ test.txt -ni

裏面還能夠加各類正則表達式

相關文章
相關標籤/搜索