中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ubuntu命令模式基礎

發布時間:2020-07-28 01:27:58 來源:網絡 閱讀:374 作者:xmgdc 欄目:網絡安全
Ubuntu是一個自由、開源、基于Debian的Linux發行版。在ubuntu的基礎上,又衍生其它各具特色的Linux發行版。首先是一個操作系統,操作系統用于管理電腦硬件。要發揮出電腦的作用,還得依靠安裝各種應用軟件。

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

 ①、ls (list的縮寫)命令用于列出文件和目錄。默認上,他會列出當前目錄的內容。帶上參數后,可以以不同的方式顯示。如圖:

Ubuntu命令模式基礎

ls命令可以列出當前目錄的內容。dir命令是ls命令的一個別名,也是directory的縮寫。通常列出的文件會以不同的顏色進行顯示,不同的顏色代表不同的文件類型,下表列出了文件類型與顏色的對應關系:

Ubuntu命令模式基礎

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

Ubuntu命令模式基礎

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

Ubuntu命令模式基礎

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

Ubuntu命令模式基礎

(3)、進入文件夾

進入文件夾:cd

cd #                回到主目錄
cd ~                回到主目錄
cd HOMEcdcd!HOME回到主目錄cd回到上次所在目錄cd!               把上個命令的參數做為輸入
cd ..                回到上層目錄

 Ubuntu命令模式基礎

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

Ubuntu命令模式基礎

 

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

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

 命令行模式command mode)

  控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode。(按鍵esc即退出插入模式,進入命令模式)

② 插入模式(Insert mode)

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

底行模式(last line mode)

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

  在「命令行模式(command mode)」下按一下「:」冒號鍵進入「Last line mode」。其對應的參數如下:

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

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

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

Ubuntu命令模式基礎

 

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

1)、插入模式

  按「i」切換進入插入模式「insert mode」,按“i”進入插入模式后是從光標當前位置開始輸入文件;

  按「a」進入插入模式后,是從目前光標所在位置的下一個位置開始輸入文字;

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

2)、移動光標

vi可以直接用鍵盤上的光標來上下左右移動,但正規的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制光標左、下、上、右移一格。

  按「ctrl」+「b」:屏幕往“后”移動一頁。

  按「ctrl」+「f」:屏幕往“前”移動一頁。

  按「ctrl」+「u」:屏幕往“后”移動半頁。

  按「ctrl」+「d」:屏幕往“前”移動半頁。

  按數字「0」:移到文章的開頭。

  按「G」:移動到文章的最后一行。

  按「$」:移動到光標所在行的“行尾”。

  按「^」:移動到光標所在行的“行首

  按「w」:光標跳到下個字的開頭

  按「e」:光標跳到下個字的字尾

  按「b」:光標回到上個字的開頭

4). 刪除文字

  「x」:每按一次,刪除光標所在位置的“后面”一個字符。

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

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

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

  「dd」:刪除光標所在行。

  「#dd」:從光標所在行開始刪除#行

(6)、apt命令

  apt是Advanced Packaging Tool的簡稱,是一款安裝包管理工具。

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

  具體跟詳細的請參見:Ubuntu系統中apt命令的用法匯總

(7)、sudo命令

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

在ubuntu下編寫一個C程序,其內容為實現文件拷貝的功能

open的說明:

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

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

  O_RDONLY 以只讀方式打開文件

  O_WRONLY 以只寫方式打開文件

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

返回值

  若所有欲核查的權限都通過了檢查則返回0值,表示成功,只要有一個權限被禁止則返回-1。

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

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

  read()會把參數fd 所指的文件傳送count個字節到buf指針所指的內存中。若參數count為0,則read()不會有作用并返回0。

 返回值

  為實際讀取到的字節數,如果返回0,表示已到達文件尾或是無可讀取的數據,此外文件讀寫位置會隨讀取到的字節移動。

write(將數據寫入已打開的文件內)

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

  write()會把參數buf所指的內存寫入count個字節到參數fd所指的文件內。當然,文件讀寫位置也會隨之移動。

返回值

  如果順利write()會返回實際寫入的字節數。當有錯誤發生時則返回-1,錯誤代碼存入errno中

具體詳細說明參見此文

文件拷貝過程如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

#include <iostream>

#include<stdio.h>   //——標準輸入輸出頭文件

#include<string.h>  //——字符串處理相關頭文件

#include<unistd.h>  //——Linux系統調用頭文件,比如read、write

#include<fcntl.h>   //——包含open系統調用

#include<errno.h>   //——包含一些調試錯誤時用到的變量

using namespace std;

#define BUFFER_SIZE 1024

//read from the original document

int 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()會把參數所指的文件oFile傳送BUFFER_SIZE個字節到buffer指針所指的內存中

    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()會把參數buf所指的內存寫入count個字節到參數fd所指的文件內。

                當然,文件讀寫位置也會隨之移動。

                返回值:如果順利write()會返回實際寫入的字節數。

                當有錯誤發生時則返回-1,錯誤代碼存入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 filePath2[]="/home/gqxing/Desktop/OperatSystem/Textfile/file.txt";

    char filePath3[]="/home/gqxing/Desktop/OperatSystem/Textfile/CopyFile.txt";

    Copy2File(filePath2,filePath3);

    return 0;

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开化县| 上高县| 松溪县| 许昌县| 绍兴市| 林口县| 修文县| 临邑县| 东丰县| 福贡县| 柘荣县| 昆明市| 兴海县| 襄垣县| 永春县| 海丰县| 广元市| 离岛区| 木里| 徐水县| 遂昌县| 湖南省| 民权县| 天等县| 吴川市| 开封县| 三明市| 耿马| 和政县| 保康县| 临西县| 潞西市| 太和县| 绿春县| 沙洋县| 合阳县| 嵊州市| 岳阳县| 平昌县| 鱼台县| 平顺县|