1. 程式人生 > >Linux開發學習筆記(一)

Linux開發學習筆記(一)

安裝虛擬機器並聯網

1、安裝虛擬機器vmware:

安裝完vmware並開啟——》點選建立新的虛擬機器——》自定義——》下一步——》選擇稍後安裝作業系統——》選擇Linux Ubuntu 64位——》給虛擬機器取名字、選擇安裝路徑——》配置處理器數量1和核心數量2——》虛擬機器記憶體選擇1G——》使用橋接網路——》一直選預設——》完成。

 

2、在虛擬機器下安裝Ubuntu:

下載好Ubuntu映象檔案——》在虛擬機器設定裡面選擇映象檔案的路徑——》選擇english——》install Ubuntu——》設定賬號密碼——》安裝並重啟。

 

3、虛擬機器聯網

點選選單欄的虛擬機器——》設定——》網路介面卡選擇NAT。

如果出現連不上網的情況:

開啟Windows的服務視窗

將這三項設定成自動並啟動。

4、Ubuntu14.04如何設定固定IP和DNS

參考:https://blog.csdn.net/biqioso/article/details/81104617

更新軟體

sudo apt-get update                更新源
sudo apt-get upgrade             更新軟體
sudo apt-get clean                   清理快取

安裝使用vim

1、安裝vim

sudo apt-get install vim

 

2、新增 vim 配置檔案

配置自己的vim,輸入:

vi ~/.vimrc

將以下內容新增到.vimrc中,就可以實現基本的vim配置:

(還可安裝各種外掛將vim配置成一個強大的IDE工具)

 

"顯示行號

set nu

"啟動時隱去援助提示

set shortmess=atI

"語法高亮

syntax on

"使用vim的鍵盤模式

"set nocompatible

"不需要備份

set nobackup

"沒有儲存或檔案只讀時彈出確認

set confirm

"滑鼠可用

set mouse=a

"tab縮排

set tabstop=4

set shiftwidth=4

set expandtab

set smarttab

"檔案自動檢測外部更改

set autoread

"c檔案自動縮排

set cindent

"自動對齊

set autoindent

"智慧縮排

set smartindent

"高亮查詢匹配

set hlsearch

"背景色

set background=dark

"顯示匹配

set showmatch

"顯示標尺,就是在右下角顯示游標位置

set ruler

"去除vi的一致性

set nocompatible

"允許摺疊

set foldenable

"""""""""""""""""設定摺疊"""""""""""""""""""""

"

"根據語法摺疊

set fdm=syntax

"手動摺疊

"set fdm=manual

"設定鍵盤對映,通過空格設定摺疊

nnoremap <space> @=((foldclosed(line('.')<0)?'zc':'zo'))<CR>

""""""""""""""""""""""""""""""""""""""""""""""

"不要閃爍

set novisualbell

"啟動顯示狀態行

set laststatus=2

"淺色顯示當前行

autocmd InsertLeave * se nocul

"用淺色高亮當前行

autocmd InsertEnter * se cul

"顯示輸入的命令

set showcmd

"被分割視窗之間顯示空白

set fillchars=vert:/

set fillchars=stl:/

set fillchars=stlnc:/

 

3、基礎使用

(最全的vim快捷鍵             https://blog.csdn.net/biqioso/article/details/81140600

使用vi來開啟/建立一個檔案,vi 檔名

vi的兩種模式

         1、命令模式:當vi開啟時預設為命令模式,要轉入輸入模式,需要按a或者i鍵。在命令模式下,此時鍵盤上輸入的所有東西都被vi當作命令來對待。(所以不要亂輸)

         2、輸入模式:輸入模式用來向檔案輸入內容。可以從命令模式中按a或者i進入輸入模式。輸入完成後如果要儲存,要先退回到命令模式(因為儲存也是一種命令)。在輸入模式下按ESC鍵或 Ctrl+[ 回到命令模式。

注:輸入模式下,螢幕左下角會提示 -- INSERT --。否則就是命令模式。

 

在命令模式下如何儲存

         :wq      儲存並且退出

         :w       只儲存不退出

         :q       不儲存只退出

         :q!      不儲存強制退出

         :wq!     儲存並強制退出(!可理解成強制)

 

查詢

在命令模式下,輸入(/xxx),就可以查詢到xxx

 

快速切換行

在命令模式下,輸入(:num),就可以快速切換到num行

 

複製

複製一行則:yy

複製三行則:3yy,即從當前游標+下兩行。

複製當前游標所在的位置到行尾:y$

複製當前游標所在的位置到行首:y^

 

剪下

剪下一行:dd

前切三行:3dd,即從當前行+下兩行被剪下了。

剪切當前行游標所在的位置到行尾:d$

剪切當前行游標所在的位置到行首:d^

 

貼上

 

用v選中文字之後可以按y進行復制,如果按d就表示剪下,之後按p進行貼上。

gp:和p的功能基本一樣,但是貼上完,它會把游標移動至貼上內容之後;gP同理。

 

 

撤銷與恢復

'u' : 撤銷上一個編輯操作

'ctrl + r' : 恢復,即回退前一個命令

'U' : 行撤銷,撤銷所有在前一個編輯行上的操作

.  :重複最後一條修改正文的命令

 

外部檔案與vim之間的粘帖和複製

ubuntu預設vim是不支援從外部檔案與vim之間的粘帖複製,vim有自己的剪下版,分別是”0-”9,”-,”8,”+,”:,”/,”%,”i,這些都是vim的暫存器,可以用命令:reg檢視。ubuntu需要安裝vim-gnome。

輸入命令sudo apt-get install vim-gnome進行安裝。

“+y表示從vim複製到系統剪下版

“+p表示從外部檔案(系統剪下版)粘帖到vim

“+d表示剪下

 

螢幕翻頁

Ctrl+u: 向上翻半屏

Ctrl+f: 向上翻一屏

Ctrl+d: 向下翻半屏

Ctrl+b: 向下翻一屏

 

移動游標指令

移動游標普遍使用的是方向鍵,考慮相容問題,vi定義太多的方向指令,下面只是一小小部分(常用的幾個):

space: 游標右移一個字元

Backspace: 游標左移一個字元

Enter: 游標下移一行

nG: 游標移至第n行首

n+: 游標下移n行

n-: 游標上移n行

H:  將游標移到螢幕上的起始行(或最上行);

M: 將游標移到螢幕中間;

L :         將游標移到螢幕最後一行。

 

插入刪除指令

常用插入、刪除指令如下:

i:在當前游標前插入,游標後文本向後移

a:從當前游標後插入,游標後文本後移

I:在游標所在行首插入(第一個非空白字元前)

A:從游標所在行末插入

o: 在游標所在行下面新增一行(並進入輸入模式)

O: 在游標所在行上方新增一行(並進入輸入模式)

x: 刪除游標所在字元,等同於[Delete]功能鍵

X: 刪除游標前字元,相當與[Backspace]

dd: 刪除游標所在的行,並去除空隙

cc:刪除當前行並進入編輯模式

r: 修改游標所在字元

R: 替換當前字元及其後的字元,直到按 [ESC]

s: 從當前游標位置處開始,以輸入的文字替代指定數目的字元

S: 刪除指定數目的行,並以所輸入文字代替之

do: 刪至行首

d$: 刪至行尾

 

安裝samba

sudo apt-get install samba

vi /etc/samba/smb.conf

在文件的最後加上:

新增samba使用者並設定密碼:

Windows訪問Ubuntu的/home/share

檢視UbuntuIP地址:

快捷鍵Win+R 開啟執行對話方塊,輸入Ubuntu的IP地址:

 

輸入賬號密碼之後就可以使用samba實現共享服務,還可以對映網路驅動器,方便開啟。

 

注意:如果每次開啟虛擬機器,IP地址變來變去的話,可以將其設定為靜態IP。

(參考:        https://blog.csdn.net/biqioso/article/details/81104617

 

 

Git配合OSC的使用

在碼雲上建立專案,然後複製HTTPS

右鍵

 

將剛才複製的HTTPS貼上到URL那個地方,點選ok之後

之後桌面就會有個資料夾

新增檔案到倉庫中(把檔案拉到資料夾中),然後選擇要新增的檔案點右鍵點選Add

然後點選commit——》輸入描述資訊——》點選commit——》push——》輸入賬號密碼(可以設定不用每次都輸入密碼)——》這時碼雲上面就有剛上傳的檔案了。

 

注意:假如現在有幾個人同時在維護這個專案,然後我準備將本地的檔案改動之後上傳到伺服器,上傳之前需要先pull,將最新的專案更新到本地,再編輯再commitpush,這樣才不會報錯,如果沒有pull的話,就會跟伺服器產生衝突。

 

點選showlog可以比較版本差異

Shift+滑鼠左鍵,可以選中兩個版本,再滑鼠右鍵,選中Compare revisions,就可以比較兩個版本,點選那個檔案可以具體看到差異。

 

 

Ubuntu上安裝使用Git

安裝完成後對git進行配置:

第一行是賬號,第二行是郵箱地址。

因為本地Git倉庫和遠端倉庫(如GitHub)之間的傳輸是通過SSH加密的,所以需要SSH Key。

接下來是生成公鑰(SSH Key:輸入指令之後按回車即可,無需設定密碼。

如果一切順利的話,可以在使用者主目錄裡找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個檔案,這兩個就是SSH Key的祕鑰對,id_rsa是私鑰,不能洩露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

建立完公鑰之後,需要上傳。

之後會開啟一個文件

將裡面的內容全部複製。

開啟碼雲——》設定

將剛才複製的貼上到紅色框內。

為什麼 碼雲或者GitHub 需要SSH Key呢?因為它們需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支援SSH協議,所以,碼雲或者GitHub只要知道了你的公鑰,就可以確認只有你自己才能推送。(可新增多個公鑰)

 

然後測試連線是否通暢

到這裡,git就安裝配置成功了。

Linux下使用Git

1、使用git

先了解一件事:Git支援多種協議,包括ssh、https,但通過ssh支援的原生git協議速度最快。

  • 關聯本地庫和遠端庫

先建立一個資料夾(以wenjian為例)然後使用git init指令初始化一個空的git倉庫

接著新增一個遠端倉庫,輸入git remote add origin <專案地址>       

專案地址的格式:https://git.oschina.net/使用者名稱/專案名.git(其實就是複製專案的網址,然後在後面加上 .git),還可以用ssh協議的那種。

(Git 裡面的 origin 代表遠端庫       https://mp.csdn.net/postedit/81140711

這樣,就把本地倉庫和遠端庫關聯起來了。

 

關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;

此後就可以使用命令git push origin master推送最新修改;

上面命令中使用-u引數,Git不但會把本地的master分支內容推送的遠端新的master分支,還會把本地的master分支和遠端的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。

 

  • 遠端庫克隆

克隆一個倉庫,首先得先有遠端庫的地址,然後輸入:git clone <專案地址>   

專案地址的格式:https://git.oschina.net/使用者名稱/專案名.git(其實就是複製專案的網址,然後在後面加上 .git),還可以用ssh協議的那種。

克隆某一個特定的遠端分支:git clone –b <分支名> <專案地址>

 

  • 進行一次提交

平時注意提交之前要先pull一下(避免衝突)。輸入git pull origin master

然後把要提交的檔案(以1234為例)弄到這個資料夾裡,或者直接在這個資料夾中編輯新的檔案。

然後輸入git add .(注意有個點)新增檔案,輸入git commit –m “註釋”提交到倉庫。

 

git add -A  提交所有變化

git add -u  提交被修改(modified)和被刪除(deleted)檔案,不包括新檔案(new)

git add .   提交新檔案(new)和被修改(modified)檔案,不包括被刪除(deleted)檔案

 

 

 

輸入git push origin master就可以完成推送了。

接著去碼雲上面就可以看到剛push上去的檔案了。

 

參考網站:

http://www.cnblogs.com/wangmingshun/category/819852.html

2、Git常用命令

git status                     顯示當前倉庫的最新狀態。提交之後,工作區就是乾淨的,即沒有新的修改;三部分:(已經在stage, 等待新增到HEAD中的檔案) (有修改, 但是沒有被新增到stage區的檔案) (沒有tracked過的檔案, 即從沒有add過的檔案)可通過.gitignore的配置去忽略某些不想顯示出來的沒有tracked過的檔案

在每次執行 git commit之前先使用git status檢查檔案狀態是一個很好的習慣, 這樣能防止你不小心提交了您不想提交的東西。

 

git status -s 或 git status –short        狀態簡覽。新新增的未跟蹤檔案前面有 ?? 標記,新新增到暫你可能注意到了 M 有兩個可以出現的位置,出現在右邊的 M 表示該檔案被修改了但是還沒放入暫存區,出現在靠左邊的 M 表示該檔案被修改了並放入了暫存區。

git diff                               檢視工作區中的修改。

git diff <commit id1> <commit id2>     比較兩次 commit 之間的差異。

git diff <branch1> <branch2>           在兩個 branch 之間比較。

 

git diff 檔案                  檢視指定檔案具體修改了哪些內容。

git log                        檢視當前分支的提交歷史

git branch xxx                 建立本地分支xxx(只建立,不進行分支切換)

git branch                     檢視本地分支

git checkout xxx               切換分支到xxx

git branch –d xxx             刪除本地分支xxx

git branch -d -r xxx          刪除遠端分支

git branch –a                 檢視所有本地分支和遠端分支(前面帶*的表示當前工作目錄所在分支)

git remote –v                 檢視遠端的倉庫(origin)

git branch –r                 檢視遠端分支

git merge dev                  合併指定分支dev到當前分支。

git branch -m | -M oldbranch newbranch 重新命名分支,如果newbranch名字分支已經存在,則需要使用-M強制重新命名,否則,使用-m進行重新命名。

 

git pull <遠端主機名origin> <遠端分支名master>:<本地分支名> 

git remote show origin         檢視remote地址,遠端分支,本地分支與之相對應關係

git push origin master –f     強制推送程式碼(協同開發時,很可能會覆蓋別人的程式碼)

git stash                      將當前改動暫存起來:

git stash pop                  恢復最後一次暫存的改動

git stash list                 檢視有多少暫存

 

打標籤:

git checkout master            切換到需要打標籤的分支上

git tag v1.0                   打一個新標籤

git tag                        檢視所有標籤

                               預設標籤是打在最新提交的commit上的。

git log --pretty=oneline --abbrev-commit       找到歷史提交的commit id

git tag v0.9 f52c633       就可以對commit id是f52c633的這次提交打標籤

git show v0.9                  檢視標籤資訊

git tag -a v0.1 -m "version 0.1 released" 1094adb         建立帶有說明的標籤,用-a指定標籤名,-m指定說明文字

git tag -d v0.1            刪除標籤,因為建立的標籤都只儲存在本地,不會自動推送到遠端。所以,打錯的標籤可以在本地安全刪除。

 

git push origin v0.1       推送某個標籤到遠端

git push origin –tags     一次性推送全部尚未推送到遠端的本地標籤

 

如果標籤已經推送到遠端,要刪除遠端標籤就麻煩一點,先從本地刪除:

git tag -d v0.9

然後,從遠端刪除。刪除命令是

git push origin :refs/tags/v0.9

 

注意:標籤總是和某個commit掛鉤。如果這個commit既出現在master分支,又出現在dev分支,那麼在這兩個分支上都可以看到這個標籤。

 

git reset –hard               撤銷當前的修改(注意:這條命令會完全重置你的修改,如果你想保留某些檔案,請使用checkout +檔案路徑 命令來逐一撤銷修改)

git reset --hard origin/master (回退到和遠端版本一樣origin代表你遠端倉庫的名字,master代表分支名)

git commit –amend             修改最近一次提交的提交資訊

git filter-branch --tree-filter 'rm -f passwords.txt' HEAD    從每一個提交移除一個檔案(passwords.txt),為了讓 filter-branch 在所有分支上執行,可以給命令傳遞 --all 選項。

git cherry-pick <commit id>    從眾多提交中保留只需要的提交

git config –global core.editor “vim”    這樣就可以把vim編輯器作為git commit時的編輯器,就可以在裡面新增大段的註釋。

git config –global credential.helper store        可以記住使用者和密碼,不用每次pull、push都輸入密碼

 

各種問題都可以檢視這個網站:http://git.mydoc.io/?t=154701

 

3、git log規範

禁止中文,必須全英文log,log的作用,為了追溯以前的程式碼

格式如下

[修改的主要大目錄] 同步人姓名

1. 修改內容,簡介明瞭,讓大家看的懂

 

例子:

[package:input] sync code from zhangbh   ===>package為修改的大目錄,不是工程總目錄,input為所修改的最小目錄

1.Add buzzer function.

2.Change the multi touch report to single point report.

使用vscode、notepad++、截圖工具

額…沒什麼好說的,下載之後動手操作一波就可以了。

 

使用beyond compare

 

使用Source Insight

新建工程

輸入工程名,選擇儲存路徑(一般建立一個資料夾用來存放source insight有關檔案,這裡以si_project為例)

然後會彈出這個視窗

選擇要加入的資料夾,點選Add Tree將所有檔案遞迴加到工程中,然後點選Close就搞定了。

 

常用操作:

1、Project->Synchronizing Files             同步

2、對一個變數或函式 右鍵lookup references…可以進行查詢,然後可以通過紅色標記開啟對應程式碼檔案,再點一次就返回查詢結果頁面。也有可以對查詢結果進行上下跳轉的按鈕。

3、對函式右鍵jump to caller,會跳轉到呼叫的地方。

4、Ctrl + 滑鼠單擊 進入定義.

5、Alt + F12可以切換,讓字元寬度變得一致,或者是大小不同地顯示。

6、Ctrl + G (或者F5) 跳轉到某一行。

7、Ctrl + O 搜尋檔案,找到回車開啟,找不到ESC退出

8、Alt + G (或者F7) 開啟Symbol Window.

9、Alt +, 後退;Alt+.前進.

10、Ctrl + F 查詢關鍵字。

11、Ctrl + Shift + F 全工程查詢關鍵字

Xshell通過SSH登入虛擬機器的Ubuntu系統

先了解一下SSH:SSH(全稱 Secure Shell)是一種加密的網路協議。使用該協議的資料將被加密,如果在傳輸中間資料洩漏,也可以確保沒有人能讀取出有用資訊。要使用 SSH,目標機器應該安裝 SSH 服務端應用程式,因為 SSH 是基於客戶-服務模式的。 當你想安全的遠端連線到主機,可中間的網路(比如因特網)並不安全,通常這種情況下就會使用 SSH。

 

首先開啟Xshell——》新建會話

然後去Ubuntu輸入指令 ifconfig 檢視Ubuntu系統的IP地址

 

確定之後輸入Ubuntu的使用者賬號密碼就可以連上了

這樣就是連上之後的情形。

密碼也可以設定長期有效,不用每次連線都輸入密碼。

如果上面的步驟還沒有連上的話,很可能是Ubuntu主機沒有開啟SSH服務。

(ssh程式分為有客戶端程式openssh-client和服務端程式openssh-server。如果需要ssh登陸到別的電腦,需要安裝openssh-client,該程式Ubuntu是預設安裝的。而如果需要從遠端連線到本機,則需要安裝openssh-server,該程式需要自己安裝。在Ubuntu下安裝openssh-server非常簡單。)

所以首先輸入sudo apt-get install openssh-server安裝一下openssh-server。

輸入ps -e | grep ssh檢視ssh服務有沒有執行,有執行的話可以看到

有sshd程序說明openssh-server已經啟動。

沒有啟動的話可以輸入 /etc/init.d/ssh start啟動。

再輸入 netstat –ntlp可以看到下面紅框

這說明sshd已經能夠正常工作了(預設埠是22)。再開啟xshell連線就搞定了。

Linux命令

1、常用命令

(1)ls(list,列表)

         作用:使用列表把當前資料夾下所有檔案顯示出來

         ls -a   顯示所有檔案,包括隱藏檔案

         ls -l    以詳細資訊顯示

         ls -a -l  顯示所有檔案的詳細資訊

         ls -l-a

         ls -la

         ls -al  以上都可以用,強調一種思維

 

(2)man

         作用:查詢man手冊,獲得幫助資訊

         man 1 ls   1表示查詢的是linux命令

         man 2 xxx  2表示查詢的是linux API

         man 3 xxx  3表示查詢的是C庫函式

         注意:在man手冊中查詢時,退出按Q鍵(Q就是quit的縮寫)

 

(3)cd(change directory,更改目錄)

         作用:用來切換目錄

         涉及到相對路徑和絕對路徑

         cd ..    ..代表上一層目錄

         cd .     .代表當前目錄

                           ../../../../代表上上上上層目錄

         注意:每個新的空的資料夾裡面都有兩個隱藏的檔案,分別是(.)、(..),這兩個檔案裡面分別是兩個路徑。也就是說cd.的時候,看似在進入當前目錄,其實就是進入了那個叫做.的檔案。同理,cd..的時候,看似進入了上一層目錄,其實就是進入了那個叫做..的檔案。

         在看檔案詳情的時候,前面d表示資料夾,前面-表示普通檔案,前面l表示符號連線檔案。

 

(4)pwd(print work directory,列印工作目錄)

         作用:打印出當前的絕對路徑

 

(5)mkdir(make directory,建立資料夾)

         作用:建立空資料夾

         mkdir -p 級聯建立資料夾

如: mkdir -p 111/222

 

(6)touch

         作用:建立空檔案

         格式:touch pathname

 

(7)mv (move,移動)

         作用:在目錄間移動檔案(只改path不改name),重新命名檔案(不改path改name)

         也可以同時改

         格式:mv 原始檔pathname 目標檔案pathname

 

(8)cp(copy,複製)

         作用:複製檔案或資料夾(複製時路徑可以改,名字也可以改,也可以都改)

         格式: cp 原始檔pathname 目標檔案pathname

                     cp -r 用來複制資料夾

                     cp -f 強制複製

                     cp -rf 強制複製資料夾

                  實際操作時,一般都是cp-f複製檔案(因為有時執行之後並沒有真正複製過去,所以需要強制。不過需要注意是否會覆蓋到同名檔案,所以平時要有備份的習慣。)

 

(9)    rm(remove,去除,刪除)

         作用:用來刪除檔案或資料夾

           rm 檔案pathname

           rm -f 檔案pathname

      re -r 資料夾pathname 

      re -rf 資料夾pathname

    (rm和rm -f的區別是返回值不同,不管檔案存不存在,用rm -f執行都會成功,因為是強制的。而用rm就可能會報錯。)

 

(10)rmdir(remove directory,刪除資料夾)(沒什麼卵用)

    作用:刪除空資料夾(相當於rm -r)

    rmdir和rm -r的區別:rmdir只能刪除空資料夾,而rm -r可以刪除空資料夾和非空資料夾。

 

(11)cat

    作用:直接在命令列下顯示檔案內容,也可以用來向檔案輸入

    (用vi也可以看檔案內容,視實際情況選擇用哪種方式)

 

(12)ln(link,連線檔案)

    基礎:windows中快捷檔案,實際上快捷方式和它指向的檔案是獨立的兩個檔案,兩個都佔硬碟空間,只不過使用者訪問快捷方式時,其效果等同於訪問指向的檔案。

 

    linux中有兩種連線檔案:

    一種叫軟連線(符號連線),效果等同於windows中快捷檔案

    一種叫硬連線

   

注意:不能在VMware共享資料夾裡面建立連線。

 

    1、建立軟連結檔案:ln -s 原始檔名 符號連線檔名

    舉例:ln -s a.c b.c     b.c就是a.c的一個符號連線檔案

軟連線創建出來的檔案是連線檔案(l)

 

    2、硬連線:ln 原始檔名 連線檔名

    硬連線實際上和原始檔在硬碟中是同一個東西,效果類似於硬碟上的一個檔案,在檔案系統上,在我們看來有好多個檔案一樣,每次刪除一個檔案時,只要他還有其他的硬連線存在,這個檔案就不會被真正刪除。只有等所有的連線檔案都被刪除掉了,這個檔案才會被真正從硬碟上刪除。

注意:硬連線後,修改原始檔或任意一個連線檔案的內容,所有檔案都跟著改變。

    硬連線創建出來的檔案是普通檔案(-)

 

(13)apt-get(ubantu才有)

    作用:在ubantu中用來線上安裝、解除安裝軟體的程式

     sudo apt-get install vim

     sudo apt-get remove vim

     注意:安裝和解除安裝都是線上的,也就是說ubantu必須能上網才能使用apt-get

     apt-get安裝軟體的原理和必要性:

          在linux中安裝軟體是是一件困難的事,經常發生不相容。所以ubantu將適合某個發行版的所有軟體做了一個列表,然後使用者通過apt-get install的方式安裝軟體,就會實時連線到ubantu伺服器,伺服器就會根據你的uabntu版本,給你下載適合的軟體來安裝。這樣確保了軟體的相容性。

 

(14)find

         功能:在linux檔案系統中,用來查詢一個檔案放在哪裡了。一般是用在 知道要找的檔案的檔名,但是忘了放在哪個目錄下。

         引數-name : 按照檔名查詢檔案。

舉例:1. 在/dir目錄及其子目錄下面查詢名字為filename的檔案

find /dir -name filename

2. 在當前目錄及其子目錄(用“.”表示)中查詢任何副檔名為“c”的檔案

find . -name "*.c"           

3. 在當前目錄及其子目錄(用“.”表示)中,只想檢視檔案,把符合條件的資料夾名去除。

find . –type f –name filename

         除了-name,還有其他的選項,這裡不詳講。

 

(15)grep

         功能:在一個具體存在的檔案中查詢。

         舉例:    grep main test.c

                  用來搜尋 test.c裡是否包含字串 main

 

                  grep -nr u8

                  用來查詢含有 u8 的目錄或檔案集合

                  -n表示查詢結果中顯示行號,-r表示要遞迴查詢,搜尋子目錄。

 

                  如果想在特定的檔案中查詢:

                  比如在USER資料夾中查詢所有含有u8的地方

                  grep -nr u8 USER

         其他選項:

                  grep -r pattern files :搜尋子目錄

grep -n pattern files : 顯示匹配行及行號

grep -i pattern files :不區分大小寫地搜尋。預設情況區分大小寫,

grep -l pattern files :只列出匹配的檔名,

grep -L pattern files :列出不匹配的檔名,

grep -w pattern files :只匹配整個單詞,而不是字串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :匹配的上下文分別顯示[number]行,

grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

(16)檔案打包壓縮與解壓縮

         tar -czvf dir.tar.gz dir/              將dir目錄打包成dir.tar.gz (演算法gz)

         tar -cjvf dir.tar.bz2 dir/            將dir目錄打包成dir.tar.bz2(演算法bz2)

         tar -zxvf dir.tar.gz                    解壓縮dir.tar.gz

         tar -jxvf dir.tar.bz2                    解壓縮dir.tar.bz2

 

(17)du