導航:首頁 > 程序命令 > linuxread命令

linuxread命令

發布時間:2023-09-17 05:49:42

linux下系統調用函數read()

open系統調用

open函數的三個參數:

(1)path是已經存在的文件的路徑;

(2)oflags參數:若值為 O_RDONLY ,就以只讀方式打開文件;

若值為 O_WDONLY,就以只寫方式打開文件;

若值為 O_RDWR,就以讀寫方式打開文件;

(3)參數mode:文件的許可權,對於一個已經存在的文件,參數mode是沒有用的,通常將其省略,因此這種情況下open調用只需兩個參數。

創建新文件:

前面已經說到,當文件不存在時,open會創建一個新文件(僅能是普通文件),我們只需要用 or操作向open的 oflags參數中加入標志O_CREAT即可。這樣可以創建一個新的只讀文件,但是這沒有任何意義,因為所創建的新文件沒有任何可讀內容。因此一般需要 O_CREAT與 O_WRONLY或 O_RDWR一起使用,此時就需要mode參數了。

例如:

int fd = open("/home/LY/newfile",O_RDWR | O_CREAT,MODE_FILE)

參數mode僅在創建新文件時有效,對於一個已經存在的文件,它沒有任何作用。

關於open的flags參數:

除了以上介紹的 open標志外,open還有許多標志,具體的如下表所示:

標志

解釋

O_RDONLY

只讀方式打開

O_WRONLY

只寫方式打開

O_RDWR

讀寫方式打開

O_APPEND

每次寫都追加到文件的尾端

O_CREAT

若文件不存在則創建文件

O_DSYNC

設置同步I/O方式

O_EXCL

如果文件已存在,則出錯;必須與O_CREAT一起使用

O_NOCTTY

不將此設備作為控制終端

O_NONBLOCK

不等待命名管道或特殊文件准備好

O_RSYNC

設置同步I/O方式

O_SYNC

設置同步I/O方式

O_TRUNC

將其長度截短為0

write系統調用

write函數的三個參數:

(1)fildes: 文件描述符
(2)buf:指定寫入數據的數據緩沖區
(3)nbytes:指定寫入的位元組數

函數返回值:

成功:已寫的位元組數

-1 :出錯

0:未寫入任何數據

例子:

運行結果:

read系統調用

read函數的三個參數:

(1)fildes:文件描述符

(2)buf:指定讀入數據的數據緩沖區

(3)nbytes:指定讀入的位元組數

函數返回值:

成功:已讀的位元組數

0:未讀入任何數據

-1:出錯

例子:

運行結果:

close系統調用

通過對 close進行分析,我們會發現close並沒有做什麼實質工作,它沒有刷新任何內核緩沖區,而僅僅是使文件描述符可以重用。

❷ Linux 命令 read (文件管理)——想玩轉linux就請一直看下去

Linux read命令用於從標准輸入讀取數值。

read 內部命令被用來從標准輸入讀取單行數據。這個命令可以用來讀取鍵盤輸入,當使用重定向的時候,可以讀取文件中的一行數據。

參數說明:

1、簡單讀取

測試結果為:

2、-p 參數,允許在 read 命令行中直接指定一個提示。

測試結果為:

3、-t 參數指定 read 命令等待輸入的秒數,當計時滿時,read命令返回一個非零退出狀態。

執行程序不輸入,等待 5 秒後:

4、除了輸入時間計時,還可以使用 -n 參數設置 read 命令計數輸入的字元。當輸入的字元數目達到預定數目時,自動退出,並將輸入的數據賦值給變數。

該例子使用了-n 選項,後接數值 1,指示 read 命令只要接受到一個字元就退出。只要按下一個字元進行回答,read 命令立即接受輸入並將其傳給變數,無需按回車鍵。

只接收 2 個輸入就退出:

執行程序輸入兩個字元:

5、 -s 選項能夠使 read 命令中輸入的數據不顯示在命令終端上(實際上,數據是顯示的,只是 read 命令將文本顏色設置成與背景相同的顏色)。輸入密碼常用這個選項。

執行程序輸入密碼後是不顯示的:

6.讀取文件

每次調用 read 命令都會讀取文件中的 "一行" 文本。當文件沒有可讀的行時,read 命令將以非零狀態退出。

通過什麼樣的方法將文件中的數據傳給 read 呢?使用 cat 命令並通過管道將結果直接傳送給包含 read 命令的 while 命令。

測試文件 test.txt 內容如下:

測試代碼:

執行結果為:

使用 -e 參數,以下實例輸入字元 a 後按下 Tab 鍵就會輸出相關的文件名(該目錄存在的):

❸ 咨詢下linux中read的用法,使用管道

這里的問題在於read os是有管道產生的進程,而echo $os是外面的進程,兩個os不是同一個變數,所以列印出來os沒有數據,你加一個()放到同一個進程試試

❹ linux常用的命令有哪些

Linux運維人員必會的120個命令
來自《跟老男孩學Linux運維:核心系統命令實戰》一書
前言
第1章 Linux命令行簡介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令幫助 / 4
1.3Linux shutdown reboot halt / 9
關機:
shutdown -h now
halt
init 0

第2章 文件和目錄操作命令 / 13
2.1pwd:顯示當前所在的位置 / 13
2.2cd:切換目錄 / 16
2.3tree:以樹形結構顯示目錄下的內容 / 18
2.4mkdir:創建目錄 / 22
2.5touch:創建空文件或改變文件的時間戳屬性 / 27
2.6ls:顯示目錄下的內容及相關屬性信息 / 30
2.7cp:復制文件或目錄 / 39
2.8mv:移動或重命名文件 / 42
2.9rm:刪除文件或目錄 / 45
2.10rmdir:刪除空目錄 / 48
2.11ln:硬鏈接與軟鏈接 / 49
2.12readlink:查看符號鏈接文件的內容 / 54
2.13find:查找目錄下的文件 / 55
2.14xargs:將標准輸入轉換成命令行參數 / 68
2.15rename:重命名文件 / 71
2.16basename:顯示文件名或目錄名 / 72
2.17dirname:顯示文件或目錄路徑 / 72
2.18chattr:改變文件的擴展屬性 / 73
2.19lsattr:查看文件擴展屬性 / 75
2.20file:顯示文件的類型 / 76
2.21md5sum:計算和校驗文件的MD5值 / 77
2.22chown:改變文件或目錄的用戶和用戶組 / 80
2.23chmod:改變文件或目錄許可權 / 81
2.24chgrp:更改文件用戶組 / 85
2.25umask:顯示或設置許可權掩碼 / 86
2.26老男孩從新手成為技術大牛的心法 / 90
第3章 文件過濾及內容編輯處理命令 / 91
3.1cat:合並文件或查看文件內容 / 91
3.2tac:反向顯示文件內容 / 103
3.3more:分頁顯示文件內容 / 104
3.4less:分頁顯示文件內容 / 107
3.5head:顯示文件內容頭部 / 109
3.6tail:顯示文件內容尾部 / 111
3.7tailf:跟蹤日誌文件 / 114
3.8cut:從文本中提取一段文字並輸出 / 115
3.9split:分割文件 / 117
3.10paste:合並文件 / 118
3.11sort:文本排序 / 123
3.12join:按兩個文件的相同欄位合並 / 127
3.13uniq:去除重復行 / 129
3.14wc:統計文件的行數、單詞數或位元組數 / 131
3.15iconv:轉換文件的編碼格式 / 133
3.16dos2unix:將DOS格式文件轉換成UNIX格式 / 134
3.17diff:比較兩個文件的不同 / 135
3.18vimdiff:可視化比較工具 / 138
3.19rev:反向輸出文件內容 / 139
3.20tr:替換或刪除字元 / 140
3.21od:按不同進制顯示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:純文本編輯器 / 147
3.24老男孩逆襲思想:做Linux運維的多個好處 / 152
第4章 文本處理三劍客 / 153
4.1grep:文本過濾工具 / 153
4.2sed:字元流編輯器 / 159
4.3awk基礎入門 / 165
第5章 Linux信息顯示與搜索文件命令 / 176
5.1uname:顯示系統信息 / 176
5.2hostname:顯示或設置系統的主機名 / 178

5.3dmesg:系統啟動異常診斷 / 179
5.4stat:顯示文件或文件系統狀態 / 181
5.5:統計磁碟空間使用情況 / 183
5.6date:顯示與設置系統時間 / 186
5.7echo:顯示一行文本 / 190
5.8watch:監視命令執行情況 / 193
5.9which:顯示命令的全路徑 / 195
5.10whereis:顯示命令及其相關文件全路徑 / 196
5.11locate:快速定位文件路徑 / 197
5.12updatedb:更新mlocate資料庫 / 199
5.13老男孩逆襲思想:新手在工作中如何問問題不會被鄙視 / 200
第6章 文件備份與壓縮命令 / 201
6.1tar:打包備份 / 201
6.2gzip:壓縮或解壓文件 / 208
6.3zip:打包和壓縮文件 / 211
6.4unzip:解壓zip文件 / 212
6.5scp:遠程文件復制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆襲思想:新手如何高效地提問 / 220
第7章 Linux用戶管理及用戶信息查詢命令 / 222
7.1 useradd:創建用戶 / 222
7.2usermod:修改用戶信息 / 227
7.3userdel:刪除用戶 / 229
7.4groupadd:創建新的用戶組 / 230
7.5groupdel:刪除用戶組 / 231
7.6passwd:修改用戶密碼 / 232
7.7chage:修改用戶密碼有效期 / 237
7.8chpasswd:批量更新用戶密碼 / 238
7.9su:切換用戶 / 240
7.10visudo:編輯sudoers文件 / 242
7.11sudo:以另一個用戶身份執行命令 / 244
7.12id:顯示用戶與用戶組的信息 / 248
7.13w:顯示已登錄用戶信息 / 249
7.14who:顯示已登錄用戶信息 / 250
7.15users:顯示已登錄用戶 / 252
7.16whoami:顯示當前登錄的用戶名 / 253
7.17last:顯示用戶登錄列表 / 253
7.18lastb:顯示用戶登錄失敗的記錄 / 254
7.19lastlog:顯示所有用戶的最近登錄記錄 / 255
第8章 Linux磁碟與文件系統管理命令 / 257
8.1fdisk:磁碟分區工具 / 257
8.2partprobe:更新內核的硬碟分區表信息 / 265
8.3tune2fs:調整ext2/ext3/ext4文件系統參數 / 266
8.4parted:磁碟分區工具 / 268
8.5mkfs:創建Linux文件系統 / 272
8.6mpe2fs:導出ext2/ext3/ext4文件系統信息 / 274
8.7resize2fs:調整ext2/ext3/ext4文件系統大小 / 275
8.8fsck:檢查並修復Linux文件系統 / 278
8.9dd:轉換或復制文件 / 281
8.10mount:掛載文件系統 / 284
8.11umount:卸載文件系統 / 288
8.12df:報告文件系統磁碟空間的使用情況 / 289
8.13mkswap:創建交換分區 / 293
8.14swapon:激活交換分區 / 294
8.15swapoff:關閉交換分區 / 295
8.16sync:刷新文件系統緩沖區 / 296
第9章 Linux進程管理命令 / 298
9.1ps:查看進程 / 298
9.2pstree:顯示進程狀態樹 / 305
9.3pgrep:查找匹配條件的進程 / 306
9.4kill:終止進程 / 307
9.5killall:通過進程名終止進程 / 310
9.6pkill:通過進程名終止進程 / 311
9.7top:實時顯示系統中各個進程的資源佔用狀況 / 313
9.8nice:調整程序運行時的優先順序 / 320
9.9renice:調整運行中的進程的優先順序 / 323
9.10nohup:用戶退出系統進程繼續工作 / 324
9.11strace:跟蹤進程的系統調用 / 325
9.12ltrace:跟蹤進程調用庫函數 / 332
9.13runlevel:輸出當前運行級別 / 334
9.14init:初始化Linux進程 / 335
9.15service:管理系統服務 / 335
第10章 Linux網路管理命令 / 338
10.1ifconfig:配置或顯示網路介面信息 / 338
10.2ifup:激活網路介面 / 343
ifup eth0
10.3ifdown:禁用網路介面 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整個網路,所有網卡。
10.4route:顯示或管理路由表 / 344
10.5arp:管理系統的arp緩存 / 350
10.6ip:網路配置工具 / 351
10.7netstat:查看網路狀態 / 358
10.8ss:查看網路狀態 / 362
10.9ping:測試主機之間網路的連通性 / 363
10.10traceroute:追蹤數據傳輸路由狀況 / 366
10.11arping:發送arp請求 / 367
10.12telnet:遠程登錄主機 / 369
10.13nc:多功能網路工具 / 370
10.14ssh:安全地遠程登錄主機 / 373
10.15wget:命令行下載工具 / 376
10.16mailq:顯示郵件傳輸隊列 / 379
10.17mail:發送和接收郵件 / 381
10.18nslookup:域名查詢工具 / 386
10.19dig:域名查詢工具 / 389
10.20host:域名查詢工具 / 393
10.21nmap:網路探測工具和安全/埠掃描器 / 394
10.22tcpmp:監聽網路流量 / 398
第11章 Linux系統管理命令 / 407
11.1lsof:查看進程打開的文件 / 407
11.2uptime:顯示系統的運行時間及負載 / 411
11.3free:查看系統內存信息 / 411
11.4iftop:動態顯示網路介面流量信息 / 413
11.5vmstat:虛擬內存統計 / 415
11.6mpstat:CPU信息統計 / 419
11.7iostat:I/O信息統計 / 420
11.8iotop:動態顯示磁碟I/O統計信息 / 423
11.9sar:收集系統信息 / 425
11.10chkconfig:管理開機服務 / 430
11.11ntsysv:管理開機服務 / 433
11.12 setup:系統管理工具 / 434
11.13ethtool:查詢網卡參數 / 436
11.14mii-tool:管理網路介面的狀態 / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自動化RPM包管理工具 / 446
top命令
第12章 Linux系統常用內置命令 / 450
12.1Linux內置命令概述 / 450
12.2Linux內置命令簡介 / 450
12.3Linux常用內置命令實例 / 452

❺ linux shell 跳過read命令,怎麼解決

read默認從標准輸入讀取數據,而這里的管道符會將前面ls命令的結果作為標准輸遲好舉入傳遞給read命令。所以只要前面還有數據,read命令就不會等待用戶襪伍輸入。

其實,這里可以用 for ... in ... 結構來替代while循環。

forl1in`ls$d1`
do
碼碧read-p"1or0"y1
......
done
閱讀全文

與linuxread命令相關的資料

熱點內容
如何用html5開發app 瀏覽:135
怎麼隱藏蘋果的app 瀏覽:320
上海捷豹空氣壓縮機 瀏覽:451
51單片機換行 瀏覽:733
哪裡可以快速學看建築圖紙app 瀏覽:496
內部排序的演算法比較 瀏覽:177
伺服器如何定期執行指令 瀏覽:931
python下載python腳本 瀏覽:297
台達plc遠程編程 瀏覽:263
雲計算的後台伺服器 瀏覽:589
windows7的我的電腦咋創建文件夾 瀏覽:492
去視頻水印的app哪個好用 瀏覽:384
doc轉為pdf 瀏覽:48
華為加密壁紙怎麼提取 瀏覽:52
曲線命令的描述 瀏覽:454
php模板怎麼修改 瀏覽:999
單片機和微機編程的區別 瀏覽:642
金牛期貨哪個app好 瀏覽:803
程序員越老越貶值嗎 瀏覽:211
安卓手機用計算機如何隱藏應用 瀏覽:459