1、删除一個目錄下的所有檔案,但保留一個指定檔案
比如環境如下:要保留sos.txt 其他全部删除
通過!取反操作
以上兩種方式
grep查找 -v顯示沒有比對到的内容 以下兩種也可以
腳本中删除檔案或目錄時,生産環境的使用方法一般為:
find . -type f -name “*.log” -mtime +15 | xargs rm -f
删除目前目錄下以.log結尾的檔案,且修改時間在15天以上的
find . -type d -name “*.heihei” -mtime +30 | xargs rm -rf
删除目前目錄下以.heihei結尾的目錄,且修改時間在30天以上的
2、已知/tmp目錄下存在了no1.txt檔案,如何執行指令才能把/test/no1.txt拷貝到/tmp下覆寫掉
/tmp/test.txt,而讓Linux系統不提示是否覆寫(root權根下)
兩種方法
(1)、\cp 作用是使用指令自身的意義
像cp是有指令别名的,實際系統中是cp -i
(2)、取消其指令别名
(3)、使用指令的全路徑來執行
不過這裡的取消指令别名隻是目前生效
怎麼設定别名,下圖 這裡也是目前生效
如何全局有效,編輯/etc/profile檔案,在最後加上
再重讀下檔案(#source /etc/profile),配置生效。
而隻想對目前使用者有效,定義在~/.bashrc檔案中。
3、隻檢視ett.txt檔案(100行)内第20到第30行的内容(企業常見問題)
第20行到第30行,一共是11行
以下四種方式:
sed -n '20,30'p a.txt也可以
-n 取消預設輸出
p 列印
NR 行号
-B 除顯示比對的,并顯示該行之前的N行 before
-A 除顯示比對的,并顯示該行之後的N行 after
-C 除顯示比對的,并顯示該行之前後各的N行
4、查找pq目錄,以其子目錄中,以.txt結尾的檔案中,把oldboy替換為gogo
先找到以.txt結尾的目錄
然後用sed替換,并顯示到标準輸出界面,确認是否正确,無誤再-i,替換原檔案内容
ps:-g參數 globle全局的 沒有的話,隻替換該檔案比對到的第一個内容
也可這樣寫
-o 或者
-s 指定分隔符 預設是回車 這裡是空格
!!重新執行上一條指令
!m 最近使用m開頭的指令 !c !i !s 等等
!數字
cd - 傳回目前目錄上一次的目錄
ctrl+d 退出目前登入 再按回車就行
類似exit logout
ctrl+l 清屏 類似clear
複制粘貼 ctrl+shift+c ctrl+shift+v
ctrl+a 跳到指令開頭 ctrl+e 跳到指令結尾
ABCDEFGHIJK
ctrl+u 目前光标前的删除
EFGHIJK
ctrl+k 目前光标及後面的删除
ctrl+r 搜尋
(reverse-i-search)`cat': cat /etc/issue
檢視作業系統、檢視核心版本
tree -a 全部 包括隐藏 -L num 向下顯示幾層 -d 顯示目錄
-i 不顯示樹枝 -f 顯示全路徑
-dfiL 連用
方法二
5、在/etc/profile或者 /etc/bashrc 裡面定義
echo alias rm='echo do not use it' >> /etc/profile
6、#find /tmp-type f ! -name "passwd" | xargs rm -f
7、
8、
9、
顯示的就是檔案裡面的内容
這就是xargs的作用
10、
下面兩條為删除作用(沒考慮檔案大小)
find /test -type f -name "*.txt" -mtime +7 -exec rm -f {} \;
find /test -type f -name "*.txt" -mtime +7 | xargs rm -f
date -s "2017/10/01 00:04"修改時間
11、cat/etc/inittab
自己看
12、
cache 是為了彌補高速裝置和低速裝置的鴻溝而引入的中間層,最終起到加快通路速度的作用。
buffer 的主要目的進行流量×××,把突發的大數量較小規模的 I/O 整理成平穩的小數量較大規模的I/O,以減少響應次數(比如從網上下電影,你不能下一點點資料就寫一下硬碟,而是積攢一定量的資料以後一整塊一起寫,不然硬碟都要被你玩壞了)。
怎麼顯示行号
還能用vim 指令行模式 set nu
#awk '{print NR,$0}'gogogo.txt 這樣也行
但是上面用grep的方式不能把空行也顯示行号
grep這樣才能把空行的行号顯示出來
Linux系統中檢視中文亂碼,如何解決?
檢視檔案多少行 專門看行号的
wc -l 顯示檔案行數
wc -L 顯示一個檔案中的最長行的長度
添加20個使用者,給随機5位密碼
檢視/var/log下有多少檔案
#tree -L 1 /var/log/ | cut -d " " -f3
43
檢視端口
顯示一個檔案的前三行:
将/tmp/d1目錄下大于100K的檔案,轉移到/tmp/d2
-t 反轉 源和目标反轉 目标tmp放前面 就可以了
将監控腳本“/usr/local/nginx/libexe/m.sh”放入crontab内,使每10分鐘執行一次。
每天0點0分将/var/log/nginx目錄下7天前以前大于等于800k的日志檔案移動到/tmp/date/201712xx(以前一天的日期命名)目錄中。
模拟環境:
寫法一:
寫法二:
*/1 是每分鐘,而不是60分/1 次
每星期一下午5:50将/data目錄下的所有目錄和檔案歸檔并壓縮為檔案:201712120600.backup.tar.gz
這個可行
下面這個不行,不知道為什麼。
找出系統内大于50K,小于100K的檔案,并删除它們。
用sed指令實作直接将檔案B.txt中的abc換成def
修改源檔案得加-i
格式要對
列出某目錄下,各個子目錄占用空間的大小
在目錄/tmp下找到10個以abc開頭的檔案,并把這些檔案的第一行儲存到檔案new中
想到一個排序的問題,與本題無關
root密碼忘記
方法一:
按b,重新開機
修改密碼
方法二:
删除密碼
重新登入,建立密碼
方法三:
就是chroot /mnt/sysimage/
passwd root 修改