導航:首頁 > 文件類型 > linux從鍵盤輸入字元到文件

linux從鍵盤輸入字元到文件

發布時間:2023-12-04 07:35:57

1. linux下將字元串寫入到一個文件

|

試試這個:內

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int *p = "Hello world ";
int fd = open("./test", O_WRONLY |容 O_CREAT, 0222);
// printf("sizeof (*p) == %d ", sizeof(*p));
if (12 == write(fd, p, 12))
{
printf("write ok ");
};
return 0;
}

2. Linux 編輯文本命令

一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。

第一:命令行模式:
該模式是進入vi編輯器後的默認模式。任何時候,不管用戶處於何種模式,按下ESC鍵即可進入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時從鍵盤上輸入的任何字元都被當作編輯命令來解釋。若輸入的字元是合法的vi命令,則vi在接受用戶命令之後完成相應的動作。但需要注意的是,所輸入的命令並不回顯在屏幕上。若輸入的字元不是vi命令,vi會響鈴報警。

第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字元都被vi當作文件內容保護起來,並將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按ESC鍵即可。

第三:末行模式:
末行模式也稱ex轉義模式。在命令模式下,用戶按「:」鍵即可進入末行模式下,此時vi會在顯示窗口的最後一行(通常也是屏幕的最後一行)顯示一個「:」作為末行模式的說明符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令在執行完後,vi自動回到命令模式。如果要從命令模式轉換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入「:」即可切換到末行模式,然後輸入命令。

實例演示
首先我們使用命令 vi filename 打開一個文件,這個時候進入到的是命令模式

接下來我們按i,然後鍵盤隨便輸入寫內容。

然後按ESC重新進入到命令模式。

在命令模式的情況下,我們按:,進入到了末行模式。

我們輸入wq!,然後回車,強行保存退出。

下次我們再打開對應文件(可用less filename命令打開),即可看到內容已經更改。

補充:

(1)末行模式下:q! 【強制退出不保存】 q【退出不保存】 wq【退出並保存後面也可以加個!】

(2)如果你不想保存直接退出有可以在命令模式下使用「ctrl+z」快捷鍵或者按住「shift」鍵,輸入兩個z即可退出。

更多命令
進入vi的命令:
vi filename :打開或新建文件,並將游標置於第一行首

vi +n filename :打開文件,並將游標置於第n行首

vi + filename :打開文件,並將游標置於最後一行首

vi +/pattern filename:打開文件,並將游標置於第一個與pattern匹配的串處

vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename

vi filename….filename :打開多個文件,依次進行編輯

屏幕翻滾類命令:
Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。

插入文本類命令:
i :在游標前

I :在當前行首

a:游標後

A:在當前行尾

o:在當前行之下新開一行

O:在當前行之上新開一行

r:替換當前字元

R:替換當前字元及其後的字元,直至按ESC鍵

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

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

ncw或nCW:修改指定數目的字

nCC:修改指定數目的行

刪除命令:
ndw或ndW:刪除游標處開始及其後的n-1個字

do:刪至行首

d$:刪至行尾

ndd:刪除當前行及其後n-1行

x或X:刪除一個字元,x刪除游標後的,而X刪除游標前的

Ctrl+u:刪除輸入方式下所輸入的文本

搜索及替換命令:
/pattern:從游標開始處向文件尾搜索pattern

?pattern:從游標開始處向文件首搜索pattern

n:在同一方向重復上一次搜索命令

N:在反方向上重復上一次搜索命令

:s/p1/p2/g:將當前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:將文件中所有p1均用p2替換

撤銷回退命令:
u 撤銷上一步的操作

Ctrl+r 恢復上一步被撤銷的操作

選項設置:
all:列出所有選項設置情況

term:設置終端類型

ignorance:在搜索中忽略大小寫

list:顯示製表位(Ctrl+I)和行尾標志($)

number:顯示行號

report:顯示由面向行的命令修改過的數目

terse:顯示簡短的警告信息

warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息

nomagic:允許在搜索模式中,使用前面不帶「\」的特殊字元

nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始

mesg:允許vi顯示其他用戶用write寫到自己終端上的信息

末行模式命令:
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下

:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下

:n1,n2 d :將n1行到n2行之間的內容刪除

:w :保存當前文件

:e filename:打開文件filename進行編輯

:x:保存當前文件並退出

:q:退出vi

:q!:不保存文件並退出vi

:wq:保存並退出

:!command:執行shell命令command

:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入

:r!command:將命令command的輸出結果放到當前行

寄存器操作:

「?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字

「?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字

「?nyl:將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字

「?p:取出寄存器?中的內容並將其放到游標位置處。這里?可以是一個字母,也可以是一個數字

ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。

3. 在linux命令行下如何將指定的幾行內容寫入到一個文件中

Linux下可以用sed命令向文件中追加內容。

案例:把/etc/test1文件中1-10行內容寫入到test2中

sed-n'1,10'p/etc/test1>>test2
#將專file1的1-10行追加到file2

sed命令行格式為屬:
sed [-nefri] 『command』 輸入文本

常用選項:
-n∶使用安靜(silent)模式;

-e∶直接在指令列模式上進行 sed 的動作編輯;

-f∶直接將 sed 的動作寫在一個檔案內;

-r∶sed 的動作支援的是延伸型正規表示法的語法;

-i∶直接修改讀取的檔案內容,而不是由螢幕輸出。

4. linux 在shell下如何 將字元串寫入 文件

可以使用echo命令將文本流導向標准輸出,然後再使用>符號重新定向標准輸出到文件。
用法示例:
將字元串"hello world"寫入文件file.txt中
$ echo "hello world" > file.txt
然後再嘗試用cat命令從讀取文件並寫入到標准輸出,可以看到字元串已經成功寫入文件。
$ cat file.txt

5. 1.請在Linux系統下新建文件「input.txt」,輸入字元「a b c d e」;

居然讓我寫了半天,受不了
#include<stdio.h>
#include<fcntl.h>
#include<unistd.h>
#include<sys/wait.h>
#include<stdlib.h>

intmain(intargc,char*argv[])
{
pid_tpid1,pid2;
intfd;
charstr[10];

system("echoabcde>input.txt");

if((pid1=fork())==-1)
{
("cannotcreateprocess1 ");
exit(-1);
}
if(pid1==0)//process1
{
if((fd=open("input.txt",O_WRONLY))==-1)
{
perror("openinput.txtfailed ");
exit(-1);
}
lseek(fd,-1,SEEK_END);
if(write(fd,"012345679",11)==-1)
{
printf(" ");
exit(-1);
}
close(fd);
}
else
{
sleep(3);//lettheprocess1writethefile

if((pid2=fork())==-1)
{
perror("cannotcreateprocess2 ");
exit(-1);
}
if(pid2==0)//process2
{
if((fd=open("input.txt",O_RDONLY))==-1)
{
perror("openinput.txtfailed ");
exit(-1);
}
if(read(fd,str,10)==-1)
{
printf("getthemessagefailed ");
exit(-1);
}
printf("%s ",str);
close(fd);
}
else//parent
{
waitpid(pid1,NULL,0);
waitpid(pid2,NULL,0);
}
}

return0;
}

閱讀全文

與linux從鍵盤輸入字元到文件相關的資料

熱點內容
蝴蝶錢包app 瀏覽:681
聯通查詢賬號密碼修改 瀏覽:774
文件頭線到上紙邊距離是多少 瀏覽:36
蘋果手機怎樣備份文件在哪裡 瀏覽:425
zemax在哪裡編程ZPL 瀏覽:563
如何撤銷word空白頁 瀏覽:296
什麼叫網路連接超時 瀏覽:49
京東熱點代碼 瀏覽:484
慧博app下載的文件放在哪裡 瀏覽:859
PDF文件橫向太長顯示不出來 瀏覽:974
js緩存文件怎麼打開 瀏覽:983
網頁如何打開編程碼 瀏覽:369
網站被終止安全訪問怎麼辦 瀏覽:672
用微信送達文件 瀏覽:655
win7硬碟安裝文件損壞 瀏覽:394
最終幻想14版本職業 瀏覽:175
紅警2哪個版本好 瀏覽:290
app開發短視頻頁面用什麼技術 瀏覽:471
魅族mx3手機後台運行程序圖標怎麼去掉 瀏覽:344
微信號突然被永久封 瀏覽:298

友情鏈接