Ubuntu是一個(gè)自由、開源、基于Debian的Linux發(fā)行版。在ubuntu的基礎(chǔ)上,又衍生其它各具特色的Linux發(fā)行版。首先是一個(gè)操作系統(tǒng),操作系統(tǒng)用于管理電腦硬件。要發(fā)揮出電腦的作用,還得依靠安裝各種應(yīng)用軟件。

其相關(guān)的簡(jiǎn)單命令如下:

(1)查看當(dāng)前文件夾下的目錄

?、?、ls (list的縮寫)命令用于列出文件和目錄。默認(rèn)上,他會(huì)列出當(dāng)前目錄的內(nèi)容。帶上參數(shù)后,可以以不同的方式顯示。如圖:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

ls命令可以列出當(dāng)前目錄的內(nèi)容。dir命令是ls命令的一個(gè)別名,也是directory的縮寫。通常列出的文件會(huì)以不同的顏色進(jìn)行顯示,不同的顏色代表不同的文件類型,下表列出了文件類型與顏色的對(duì)應(yīng)關(guān)系:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

②、ll會(huì)列出該文件下的所有文件信息,包括隱藏的文件,而ls -l只列出顯式文件,說(shuō)明這兩個(gè)命令還是不等同的!如圖:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

連個(gè)這之間的關(guān)系如下可以看到(通過(guò)別名alias可以看出,兩者可以等同):

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

(2)、查看當(dāng)前路徑的命令

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

(3)、進(jìn)入文件夾

進(jìn)入文件夾:cd

cd #                回到主目錄
cd ~                回到主目錄
cd HOMEcd?cd!HOME回到主目錄cd?回到上次所在目錄cd!               把上個(gè)命令的參數(shù)做為輸入
cd ..                回到上層目錄

 photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

(4)、使用Ubuntu自帶的文本的編輯器編寫文件:gedit fileName

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

(5)、使用vi去編寫文件: vi filename

  vi可以分為三種狀態(tài),分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區(qū)分如下:

 命令行模式command mode)

  控制屏幕光標(biāo)的移動(dòng),字符、字或行的刪除,移動(dòng)復(fù)制某區(qū)段及進(jìn)入Insert mode下,或者到 last line mode。(按鍵esc即退出插入模式,進(jìn)入命令模式)

 插入模式(Insert mode)

  只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。(按鍵i即退出命令模式,進(jìn)入插入模式)

底行模式(last line mode)

  將文件保存或退出vi,也可以設(shè)置編輯環(huán)境,如尋找字符串……等。

  在「命令行模式(command mode)」下,按一下「:」冒號(hào)鍵進(jìn)入「Last line mode」。其對(duì)應(yīng)的參數(shù)如下:

  • : w filename (輸入 「w filename」將文章以指定的文件名filename保存)

  • : wq (輸入「wq」,存盤并退出vi)

  • : q! (輸入q!, 不存盤強(qiáng)制退出vi)

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

命令行模式(command mode)功能鍵

1)、插入模式

  按「i」切換進(jìn)入插入模式「insert mode」,按“i”進(jìn)入插入模式后是從光標(biāo)當(dāng)前位置開始輸入文件;

  按「a」進(jìn)入插入模式后,是從目前光標(biāo)所在位置的下一個(gè)位置開始輸入文字;

  按「o」進(jìn)入插入模式后,是插入新的一行,從行首開始輸入文字。

2)、移動(dòng)光標(biāo)

vi可以直接用鍵盤上的光標(biāo)來(lái)上下左右移動(dòng),但正規(guī)的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制光標(biāo)左、下、上、右移一格。

  按「ctrl」+「b」:屏幕往“后”移動(dòng)一頁(yè)。

  按「ctrl」+「f」:屏幕往“前”移動(dòng)一頁(yè)。

  按「ctrl」+「u」:屏幕往“后”移動(dòng)半頁(yè)。

  按「ctrl」+「d」:屏幕往“前”移動(dòng)半頁(yè)。

  按數(shù)字「0」:移到文章的開頭。

  按「G」:移動(dòng)到文章的最后一行。

  按「$」:移動(dòng)到光標(biāo)所在行的“行尾”。

  按「^」:移動(dòng)到光標(biāo)所在行的“行首

  按「w」:光標(biāo)跳到下個(gè)字的開頭

  按「e」:光標(biāo)跳到下個(gè)字的字尾

  按「b」:光標(biāo)回到上個(gè)字的開頭

4). 刪除文字

  「x」:每按一次,刪除光標(biāo)所在位置的“后面”一個(gè)字符。

  「#x」:例如,「6x」表示刪除光標(biāo)所在位置的“后面”6個(gè)字符。

  「X」:大寫的X,每按一次,刪除光標(biāo)所在位置的“前面”一個(gè)字符。

  「#X」:例如,「20X」表示刪除光標(biāo)所在位置的“前面”20個(gè)字符。

  「dd」:刪除光標(biāo)所在行。

  「#dd」:從光標(biāo)所在行開始刪除#行

(6)、apt命令

  apt是Advanced Packaging Tool的簡(jiǎn)稱,是一款安裝包管理工具。

  apt-get -f install 修復(fù)安裝”-f = –fix-missing”

  具體跟詳細(xì)的請(qǐng)參見(jiàn):Ubuntu系統(tǒng)中apt命令的用法匯總

(7)、sudo命令

  在ubuntu里面用戶角色和權(quán)限分的很細(xì)也很嚴(yán)。如果你不是root用戶,那么,你在執(zhí)行一些命令做一些操作時(shí)是不允許的,可以在命令前面加上sudo,這樣你的權(quán)限就會(huì)變大。

在ubuntu下編寫一個(gè)C程序,其內(nèi)容為實(shí)現(xiàn)文件拷貝的功能

open的說(shuō)明:

1int open( const char * pathname, int flags);

參數(shù)pathname 指向欲打開的文件路徑字符串。下列是參數(shù)flags 所能使用的旗標(biāo):

  O_RDONLY 以只讀方式打開文件

  O_WRONLY 以只寫方式打開文件

  O_RDWR 以可讀寫方式打開文件。上述三種旗標(biāo)是互斥的,也就是不可同時(shí)使用,但可與下列的旗標(biāo)利用OR(|)運(yùn)算符組合。

返回值

  若所有欲核查的權(quán)限都通過(guò)了檢查則返回0值,表示成功,只要有一個(gè)權(quán)限被禁止則返回-1。

read(由已打開的文件讀取數(shù)據(jù))

1read(int fd,void * buf ,size_t count);

  read()會(huì)把參數(shù)fd 所指的文件傳送count個(gè)字節(jié)到buf指針?biāo)傅膬?nèi)存中。若參數(shù)count為0,則read()不會(huì)有作用并返回0。

 返回值

  為實(shí)際讀取到的字節(jié)數(shù),如果返回0,表示已到達(dá)文件尾或是無(wú)可讀取的數(shù)據(jù),此外文件讀寫位置會(huì)隨讀取到的字節(jié)移動(dòng)。

write(將數(shù)據(jù)寫入已打開的文件內(nèi))

1write (int fd,const void * buf,size_t count);

  write()會(huì)把參數(shù)buf所指的內(nèi)存寫入count個(gè)字節(jié)到參數(shù)fd所指的文件內(nèi)。當(dāng)然,文件讀寫位置也會(huì)隨之移動(dòng)。

返回值

  如果順利write()會(huì)返回實(shí)際寫入的字節(jié)數(shù)。當(dāng)有錯(cuò)誤發(fā)生時(shí)則返回-1,錯(cuò)誤代碼存入errno中

具體詳細(xì)說(shuō)明參見(jiàn)此文

文件拷貝過(guò)程如下:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include <iostream>#include<stdio.h>   //——標(biāo)準(zhǔn)輸入輸出頭文件#include<string.h>  //——字符串處理相關(guān)頭文件#include<unistd.h>  //——Linux系統(tǒng)調(diào)用頭文件,比如read、write#include<fcntl.h>   //——包含open系統(tǒng)調(diào)用#include<errno.h>   //——包含一些調(diào)試錯(cuò)誤時(shí)用到的變量using namespace std;#define BUFFER_SIZE 1024 //read from the original documentint Copy2File(char fileName[],char goalFile[]){    int read_bytes, write_bytes;    char buffer[BUFFER_SIZE];    char *ptr;    int oFile,gFile;    // open original document    if ((oFile = open(fileName,O_RDONLY)) == -1) {        printf("open %s Error!", fileName);        exit(1);    }     //open destination document    if ((gFile = open(goalFile, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR)) == -1) {        printf("Open %s Error!", goalFile);        exit(1);    }    //begin to copy fileName to goalFile    //read()會(huì)把參數(shù)所指的文件oFile傳送BUFFER_SIZE個(gè)字節(jié)到buffer指針?biāo)傅膬?nèi)存中    while (read_bytes = read(oFile, buffer, BUFFER_SIZE))    {        //the produce of reading is error        if(read_bytes==-1)            break;        //begin to write chars to destination file        else{            ptr = buffer;            /*                write()會(huì)把參數(shù)buf所指的內(nèi)存寫入count個(gè)字節(jié)到參數(shù)fd所指的文件內(nèi)。                當(dāng)然,文件讀寫位置也會(huì)隨之移動(dòng)。                返回值:如果順利write()會(huì)返回實(shí)際寫入的字節(jié)數(shù)。                當(dāng)有錯(cuò)誤發(fā)生時(shí)則返回-1,錯(cuò)誤代碼存入errno中。            */            while (write_bytes = write(gFile, ptr, read_bytes)) {                 //the produce of writing is error                if ((write_bytes == -1))                    break;                else if (write_bytes > 0)                {                    //make the ptr(the index firstly equals the first address)                    //move behind                    ptr += write_bytes;                    //the bytes(index) you need to write continuely is gong to reduce                    read_bytes -= write_bytes;                }            }        }    }    close(gFile);    close(oFile);    return 1;} int main(){    char filePath1[]="/home/gqxing/Desktop/OperatSystem/Textfile/file.txt";    char filePath2[]="/home/gqxing/Desktop/OperatSystem/Textfile/CopyFile.txt";    Copy2File(filePath1,filePath2);    return 0;}

很希望自己是一棵樹,守靜、向光、安然,敏感的神經(jīng)末梢,觸著流云和微風(fēng),竊竊的歡喜。腳下踩著最卑賤的泥,很踏實(shí)。還有,每一天都在隱秘成長(zhǎng)。

http://www.cnblogs.com/helloworldcode/p/7087431.html