linux在xt文件写入内容,0728linux基础内容小记
~- ?上一個工作目錄
~+ ?當前工作目錄
touch f{1..100} 創建名為f1~f100的文件
touch f{a..z} ?創建名為fa~fz的文件
[:lower:] 任意小寫字母
[:upper:] 任意大寫字母
[:digit:] 任意數字,相當于0-9
[:alpha:] 任意大小寫字母
[:alnum:] 任意數字或字母
[:space:] 空格
[:punct:] 標點符號
1.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄ls?/var/l*[[:digit:]]*[[:lower:]]
2.顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄ls?/etc/[0-9]*[^0-9]
3.顯示/etc目錄下以非字母開頭,后面跟了一個字母及其他任意長度任意字符的文件或目錄ls?/etc/[^[:alpha:]][[:alpha:]]*
4.顯示/etc目錄下所有以m開頭以非數字結尾的文件或目錄ls?/etc/m*[^0-9]
5.顯示/etc目錄下所有以.d結尾的文件或目錄ls?-da?/etc/*.d
6.顯示/etc目錄下,所有的.conf結尾,且以m,n,r,p開頭的文件或目錄ls?-da?/etc/[mnrp]*.conf
touch命令
-a ?僅改變atime
-m ?僅改變mtime
-c ?文件存在則刷新,不存在也不會創建
-t [YY]MMDDhhmm[.ss] 改變atimemtimetouch??-t?201605051010.30?file1
cp命令
-a 歸檔,相當于-dR --preserv=all
-d --no-dereference --preserv=links 不復制原文件,只復制鏈接名
-p 等同--preserv=mode,ownership,timestamp
-r recursive 遞歸
-v verbosecp?-r?/etc/sysconfig/?/testdir/xxx
沒有xxx目錄,則把sysconfig目錄復制到testdir下并重命名為xxxcp?-r?/etc/sysconfig/?/testdir/xxx
已存在xxx目錄,則sysconfig復制為xxx目錄中的子目錄
1.定義別名命令baketc,每天將/etc目錄下所有文件,備份到/testdir獨立的子目錄下,并要求子目錄格式 ?為backupYYYY-mm-dd,備份過程可見alias?baketc='cp?-rpv?/etc/?/tmp/testdir1/backup-`date?+%F`'
2.創建/testdir/rootdir目錄并復制/root所有下文件到該目錄內,要求保留原有權限cp?-R??--preserve=mode?/root/?/testdir/rootdir
建多層目錄,例mkdir?-pv?/testdir/dir1/{x,y}/{a,b}
mkdir?-pv?/testdir/dir2/{x/{a,b},y}
mkdir?-pv?/testdir/dir{3,4,5/{dir{6,7}}}
inode工作原理圖
mv 移動并重命名文件a.txt,不影響文件的用戶數據及 inode 號
它們的inode和data block是一樣的,改其中一個的內容,另一個的內容也隨之變化,說明它們是同一個文件,相當于一個文件兩個名字 -rw-r--r-- 2 ? 2是鏈接數。還可以繼續做硬鏈接如ln bb cc,鏈接數隨之增加為3。
刪除如bb文件,aa和cc依然存有數據,鏈接數減少為2。
創建硬鏈接不能跨分區或文件系統
不能對目錄進行創建,只可對文件創建
有時候磁盤空間未滿,但不能創建文件,可能是inode耗盡
實驗耗盡inode號for?id?in?{1..204800};do?touch?f$id;echo?f$id?is?created;donewatch?-n1?'df?-i'????//?df?-i?查看inodes大小,wathc?-n1?每秒查看執行結果
創建的文件即使為空,本身的元數據也會占用磁盤空間
ls -i ?// inode 不同分區的節點號有可能相同
ln -s source softlink
原始文件相對路徑:相對于軟鏈接文件路徑,而不是相對于當前工作目錄
find?/testdir/?-samefile?/testdir/aa???//?查看路徑/testdir有相同inode的所有硬鏈接find?/testdir/?-lname?aa????//?查找在路徑/testdir下的文件aa的軟鏈接
file descriptor 文件描述符
ps aux 看到某個進程的pid
cd /proc/PID/fd 看到有文件
當前tty0ls?>?/dev/pts/1?????//?將ls命令的結果發送到tty1終端上了
stdinput 0
stdouput 1
stderr ? 2
BADCOMMAND 2> file ?記錄錯誤信息
正確錯誤信息都輸出在同一個文件,例:ls?/etc/issue?xxx?&>?file1
等價于ls?/etc/issue?xxx?>?file1?2>&1
(ls;pwd)>f3??????//多條命令(用括號引起來)同時執行輸出到一個文件
ls?/testdir/?xxx?1>?right.txt?2>?fail.txt
set+C 允許覆蓋
set-C 禁止覆蓋,可以追加
echo?cenotos?|?passwd?--stdin?wang?&>?/dev/nullmail?-s?hello?user1
hi
how are you
. ? ? ? ? ? ? ? ?//以點結束
EOT
cat /var/spool/mail/user1 可以讀到郵件
或者user1登錄 ?敲命令 mail 可以收到郵件
群發郵件,將郵件內容保存到一個文件mail.txt
mail -s tongzhi user1 < mail.txt ? 每次將user1更改用戶即可
練習題
1、將/etc/issue文件中的內容轉換為大寫后保存至/tmp/issue.out文件中cat?/etc/issue|tr?'a-z'?'A-Z'?>?/tmp/issue.out
2、將當前系統登錄用戶的信息轉換為大寫后保存至/tmp/who.out文件中echo?`who`|tr?'a-z'?'A-Z'?>?/tmp/who.out
3、一個linux用戶給root發郵件,要求郵件標題為”help”,郵件正文如下:
Hello, I am 用戶名,the system version is here,pleasehelp me to check it ,thanks!
操作系統版本信息echo?-e?"I?am?`whoami`.\nThe?system?is?`cat?/etc/redhat-release?`."|mail?-s?help?root
4、將/root/下文件列表,顯示成一行,并文件名之間用空格隔開ls?-1?/root/?|tr?'\n'?'?'????//方法一
echo?$(ls?-a)??????????????????????//方法二
5、file1文件的內容為:”1 2 3 4 5 6 7 8 9 10” 計算出所有數字的總和cat?file1?|tr?'?'?'\n'|awk?'{sum+=$1}END{print?sum}'??//方法一
i=$((`tr?"?"?"+"?
echo?'1?2?3?4?5?6?7?8?9?10'|tr?'?'?'+'|bc?????//方法三
echo?$[`echo?'1?2?3?4?5?6?7?8?9?10'|tr?'?'?'+'`]
6、刪除Windows文本文件中的'^M'字符sed?-i?"s/\^M//g"?wintxt????//方法一
cat?a.txt|tr?-d?'\015'?>?f2??再cat?-A?f2?看到沒^M了???//?^M對應十進制13,八進制015?//方法二
7、處理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的數字和空格cat?string1|tr?-d?[[:alpha:]][[:punct:]]?或
echo?'xt.,l?1?jr#!$mn2?c*/fe3?uz4'|tr?-d?-c?'[:digit:]?\n'
8、將PATH變量每個目錄顯示在獨立的一行echo?$PATH|tr?':'?'\n'
9、刪除指定文件的空行sed?/^$/d?file2?或?sed?/^[[:space:]]*$/d?file2???//方法一
cat?b.txt|tr?-s?'\n'???//方法二
10、將文件中每個單詞(字母)顯示在獨立的一行,并無空行cat?/etc/init.d/functions?|tr?-cs?'[:alpha:]'?'\n'
總結
以上是生活随笔為你收集整理的linux在xt文件写入内容,0728linux基础内容小记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ryzen平台内存支持:为什么选择它?
- 下一篇: 内存条选购攻略:游戏玩家必看