liniux課程第一周總結

第一天課程內容

MBR
分區類型:
主分區:1-4,一塊硬盤最多4個主分區,不可以分小區,可以用來啟動操作系統(系統分區),直接建文件系統,存放數據
擴展分區:一塊硬盤最多一個擴展分區,可以沒有,加主分區最多4個,不能創建文件系統,可以再劃分更小的分區(即邏輯分區)
邏輯驅動器(分區):可以創建文件系統,存放數據

系統分區:啟動操作系統的分區
啟動分區:安裝操作系統的分區

活動分區:一個硬盤有多個主分區,只有一個是活動

系統分區一定是主分區,但啟動分區不一定是主分區

uname -r 查看內核版本
cat /etc/centos-release 查看centos版本號
cat /proc/meminfo?? 查看內存
ls /dev/sda*
fdisk -l? 磁盤分區情況
lsblk? 塊設備的情況
ifconfig 查看IP
poweroff 關機
halt? 關機
rpm -qa |wc -l? 查看系統安裝文件數量
rpm -qa 查看系統安裝的所有文件
free 查看內存大小
strace查看系統調用(system call)
ltrace 查看庫調用(libr??? ary)
xshell切換用戶名:
如果是root賬戶,切換到普通賬戶是su – 普通賬戶名
如果是普通用戶,切換到root用戶,輸入su或su -或exit

第二天
xshell5設置alt鍵方法:文件-屬性-鍵盤-將左alt鍵用作Meta鍵
讓網卡開機默認啟用:nano /etc/sysconfig/network-scripts/ifcfg-ens33
將其中?? ONBOOT=NO 改成 yes
自動登陸root賬戶,圖形界面下使用gedit
gedit /etc/gdm/custom.conf
AutomaticLoginEnable=true
AutomaticLogin=root
自動登陸root賬戶,字符界面下使用nano
nano /etc/gdm/custom.conf
AutomaticLoginEnable=true
AutomaticLogin=root
cat 看文本文件,如:cat /etc/gdm/custom.conf

 

系統判斷是管理員還是普通用戶使用id -u ,id -u liu? uid的值是0就是管理員,不是0就是普通用戶

用戶登錄信息查看命令:
whoami: 顯示當前登錄有效用戶名
who am i 顯示當前登陸名字,終端及登錄時間
who: 系統當前所有的登錄會話,pts是遠程登陸,tty是本機登陸
w: 系統當前所有的登錄會話及所做的操作? Xorg代表圖形的意思

init 3 關閉圖形界面,init命令只有root可以操作,普通用戶不可以操作
init 5 打開圖形界面
init 0 關機
init 6? 重啟
startx 只是打開圖形界面,但不是模式切換,相當于開個小軟件,CTRL+c關閉圖形,普通用戶就可以操作
runlevel? 查看模式
如果快捷鍵失效可以使用chavt+數字? 切斷到第幾個終端

>? 創建文件,可以覆蓋原有的文件
touch 創建文件,不可以覆蓋原有的文件,如果原來有的文件不能再touch了
ll? 查看文件大小
hostname 主機名
cd 切換文件夾
如果想存得住,必須存到文件中

執行命令
輸入命令后回車,提請shell程序找到輸入命令所對應的可執行程序或代碼,并由其分析后提交給內核分配資源將其運行起來
在shell中可執行的命令有兩類
內部命令:由shell自帶的,而且通過某命令形式提供
help 內部命令列表
enable 列出所有的內部命令
enable –n cmd 禁用內部命令
enable cmd 啟用內部命令
enable –n 查看所有禁用的內部命令
外部命令:在文件系統路徑下有對應的可執行程序文件
查看外部命令路徑:
which? 顯示外部命令路徑,只顯示path路徑靠前的
which -a 顯示全部外部命令路徑
which –skip-alias? 不顯示別名的路徑,僅顯示外部命令的路徑
whereis? 顯示路徑及該命令的man幫助文檔的路徑

type COMMAND? 查看指定的命令是內部或外部命令

執行外部命令
Hash緩存表
系統初始hash表為空,當外部命令執行時,默認會從PATH路徑下尋找該命
令,找到后會將這條命令的路徑記錄到hash表中,當再次使用該命令時,shell解
釋器首先會查看hash表,存在將執行之,如果不存在,將會去PATH路徑下尋找。
利用hash緩存表可大大提高命令的調用速率
hash常見用法
hash 顯示hash緩存
hash –l 顯示hash緩存,可作為輸入使用
hash –p path name 將命令全路徑path起別名為name,如:hash –p /usr/bin/yes no? 將/usr/bin/yes命名為no,執行no就相當于執行yes
hash –t name 打印緩存中name的路徑
hash –d name 清除name緩存
hash –r 清除緩存

時間不對的處理方法:在centos系統上新建一塊網卡,設置-添加-網絡適配器-下一步-橋接模式-完成
輸入ntpdate +IP(此IP為服務器的IP,非本機IP)

echo $PATH?? 顯示PATH變量路徑
運行命令的順序:先別名,再內部命令,再hash緩存,最后外部命令,外部命令從path變量的路徑按順序尋找
cp /usr/bin/yes /usr/local/bin/? 將/usr/bin/yes復制到/usr/local/bin并命名為yes
rm -f 路徑 刪除文件

命令別名
顯示當前shell進程所有可用的命令別名:alias
定義別名NAME,其相當于執行命令VALUE:alias NAME=’VALUE’
取消別名:unalias NAME
取消所有別名:unalias -a
在命令行中定義的別名,僅對當前shell進程有效
如果想永久有效,要定義在配置文件中
僅對當前用戶:~/.bashrc????? nano .bashrc
對所有用戶有效:/etc/bashrc? nano /etc/bashrc
編輯配置給出的新配置不會立即生效,想立刻生效用source或.+路徑,如source /path/to/config_file
如果別名和原始命令名字一樣,想用原始命令,則使用\或”
有的內部命令禁用后還會使用,原因是該命令即是內部命令也是外部命令,究其根本是因為不同的shell內部命令不一樣。

命令格式
COMMAND [OPTIONS…] [ARGUMENTS…]
選項:用于啟用或關閉命令的某個或某些功能
短選項:-c 例如:-l, -h
長選項:–word 例如:–all, –human-readable
參數:命令的作用對象,比如文件名,用戶名等
注意:
多個選項以及多參數和命令之間使用空白字符分隔
取消和結束命令執行:Ctrl+c(強制),Ctrl+d(正常)
多個命令可以用;符號分開
一個命令可以用\分成多行

systemctl restart netwok 重啟網絡服務(如果網絡處于連接狀態,但是沒有IP地址的時候)

日期和時間
Linux的兩種時鐘
系統時鐘:由Linux內核通過CPU的工作頻率進行的
硬件時鐘:主板
相關命令
date 顯示和設置系統時間
date +%s? 計算距離1970.1.1有多少秒
date -d @1509536033? 將描述換算成具體哪一天
date -d “-1 day”? 顯示昨天日期
hwclock,clock: 顯示硬件時鐘
-s, –hctosys 以硬件時鐘為準,校正系統時鐘
-w, –systohc 以系統時鐘為準,校正硬件時鐘
顯示日歷:cal –y
時區:/etc/localtime

例:shutdown -r 5 “system will chongqi”?? 系統將在五分鐘后重啟
wall “nihao”? 發廣播,只要登陸在本機及虛擬機上都能看到

安裝screen包
df或lsblk 查看光盤對應的掛載點
cd 掛載點
ls
cd /Packages/
ls
rpm -ivh screen+tab鍵
或rpm -ivh /掛載點/Package/screen+tab鍵

bc 進入計算器
ibase=2? 輸入的是二進制,輸出的是十進制
obase=2? 輸入的是十進制,輸出的是二進制

echo ”單引號里面全部做字符處理
echo “” 僅能識別部分命令
echo “? 反向單引號里當成命令處理,“等價于$(),命令調命令的輸出信息
touch 創建文件

echo file{a,b,c}.{log,tet}? 顯示的結果是filea.log filea.tet fileb.log fileb.tet filec.log filec.tet
echo file{1,3,5}?? 顯示結果是file1 file3 file5
rm -f file{1,3,5}
echo {1..10}
echo {a..z}
echo {000..20..2}

tab鍵
命令補全
內部命令:
外部命令:bash根據PATH環境變量定義的路徑,自左而右在每個路徑搜尋
以給定命令名命名的文件,第一次找到的命令即為要執行的命令
用戶給定的字符串只有一條惟一對應的命令,直接補全,否則,再次Tab會給出列表路徑補全
把用戶給出的字符串當做路徑開頭,并在其指定上級目錄下搜索以指定的字符串開頭的文件名,如果惟一則直接補全,否則再次Tab給出列表

 

命令行歷史
保存你輸入的命令歷史。可以用它來重復執行命令
登錄shell時,會讀取命令歷史文件中記錄下的命令~/.bash_history
登錄進shell后新執行的命令只會記錄在緩存中;這些命令會用戶正常退出時“追加”至命令歷史文件中

history命令
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg…]
-c: 清空內存中的命令歷史,而非磁盤文件上的
-d offset: 刪除歷史中指定的第offset個命令
n: 顯示最近的n條歷史
-a: 追加本次會話新執行的命令歷史列表至歷史文件
-r: 讀歷史文件附加到歷史列表
-w: 保存歷史列表到指定的歷史文件
-n: 讀歷史文件中未讀過的行到歷史列表
-p: 展開歷史參數成多行,但不存在歷史列表中(即執行命令但不在歷史列表中留有歷史)例:history -p `id` `hostname`? 命令已執行,但是在命令歷史列表中沒有記錄
-s: 展開歷史參數成一行,附加在歷史列表后(即偽造歷史,這個命令未執行但是能在命令歷史列表中看到)例:history -s “rm -f /etc/profile.d”

先rm -f .bash_history? 后history -c,則干壞事不留痕跡

makewhatis centos6創建whatis數據庫
mandb centos7創建whatis數據庫

獲得幫助
內部命令:help COMMAND 或man bash
外部命令:
(1) COMMAND –help或COMMAND -h
(2) 使用手冊(manual)
man COMMAND
(3) 信息頁
info COMMAND
(4) 程序自身的幫助文檔
README
INSTALL
ChangeLog
(5) 程序官方文檔
官方站點:Documentation
(6) 發行版的官方文檔
(7) Google

–help和-h選項
顯示用法總結和參數列表
使用的大多數,但并非所有的
示例:date –help
Usage: date [OPTION]… [+FORMAT] or: date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
[] 表示可選項
CAPS或 <> 表示變化的數據
… 表示一個列表
x |y| z 的意思是“ x 或 y 或 z “
-abc的 意思是-a -b –c
{ } 表示分組
練習題,借助help幫助
1、顯示當前時間,格式:2016-06-18 10:20:30 答: date “+%F %H:%M:%S”或date +”%F %T”或date “+%F %S”
2、顯示前天是星期幾?? date -d “-2 day” +%A
3、設置當前日期為2019-08-07 06:05:10? date 080706052018.10

man命令
提供命令幫助的文件
手冊頁存放在/usr/share/man
幾乎每個命令都有man的“頁面”
man頁面分組為不同的“章節”,查詢章節號使用whatis COMMAND或man -f COMMAND
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE:? 指明man文件搜索位置
man – M /PATH/TO/SOMEWHERE COMMAND : 到指定位置下搜索
COMMAND 命令的手冊頁并顯示

man幫助段落說明:
NAME 名稱及簡要說明
SYNOPSIS 用法格式說明
[] 可選內容
<>? 必選內容
a|b 二選一
{ } 分組
… 同一內容可出現多次
DESCRIPTION 詳細說明
OPTIONS 選項說明
EXAMPLES 示例
FILES 相關文件
AUTHOR 作者
COPYRIGHT 版本信息
REPORTING BUGS bug信息
SEE ALSO 其它幫助參考

查看man手冊頁:man [章節] keyword
列出所有幫助:man –a keyword
搜索man手冊:man -k keyword 列出所有匹配的頁面,是使用 whatis 數據庫
相當于whatis:man –f keyword
打印man幫助文件的路徑:man –w [章節] keyword

man命令的操作方法:使用less命令實現
space, ^v, ^f, ^F: 向文件尾翻屏
b, ^b: 向文件首部翻屏
d, ^d: 向文件尾部翻半屏
u, ^u: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行 y or ^Y or ^P or k or ^K:向文件首部翻一行
q: 退出
#:跳轉至第#行
1G: 回到文件首部
G:翻至文件尾部

man搜索
/KEYWORD:以KEYWORD指定的字符串為關鍵字,從當前位置向文件尾部搜索;不區分字符大小寫;
n: 下一個
N:上一個
?KEYWORD:以KEYWORD指定的字符串為關鍵字,從當前位置向文件首部搜索;不區分字符大小寫;
n: 跟搜索命令同方向,上一個
N:跟搜索命令反方向,下一個

passwd 修改口令
passwd liu? 修改liu用戶的密碼,前提你是管理員

練習
1、在本機字符終端登錄時,除顯示原有信息外,再顯示當前登錄終端號,主機名和當前時間
man issue
2、今天18:30自動關機,并提示用戶
shutdown 18:30 “systerm will poweroff”

info
man常用于命令參考 ,GNU工具info適合通用文檔參考
沒有參數,列出所有的頁面
info 頁面的結構就像一個網站
每一頁分為“節點”
鏈接節點之前 *
info [ 命令 ]

導航info頁
方向鍵,PgUp,PgDn 導航
Tab鍵 移動到下一個鏈接
d顯示主題目錄
Home 顯示主題首部
Enter進入 選定鏈接
n/p/u/l 進入下/前/上一層/最后一個鏈接
s 文字 文本搜索
q 退出 info

 

第三章文件管理

/misc 實現光盤的自動掛載位置,如果是登陸圖形界面,則自動掛在/media,如果不登錄圖形界面,則沒有掛,作為普通用戶方法:cd /misc/cd就掛上了,此方法在centos7上不好用,如果想用,則執行systemctl start autofs.

ldd+路徑? 查看命令引用的庫? 例:ldd /bin/ls
du -sh /* 顯示/目錄下大小

文件系統
文件和目錄被組織成一個單根倒置樹結構
文件系統從根目錄下開始,用“/”表示
根文件系統(rootfs):root filesystem
文件名稱區分大小寫
以.開頭的文件為隱藏文件
路徑分隔的 /
文件有兩類數據:
元數據:metadata? 即文件屬性信息,如修改時間,大小,是誰的等
數據:data??????? 即文件里面存放的具體內容

文件名規則
文件名最長255個字節
包括路徑在內文件名稱最長4095個字節
藍色–>目錄 綠色–>可執行文件 紅色–>壓縮文件 淺藍色–>鏈接文件(相當于快捷方式) 粉色–>socket文件(與網絡通訊相關) 淺黃色–>管道文件 白色–>普通文件 灰色–>其他文件
除了斜杠和NUL,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用,
有些字符需要用引號來引用它們。
標準Linux文件系統(如ext4),文件名稱大小寫敏感。例如:MAIL, Mail, mail, mAiL

touch /root/-a創建一個名字為-a的文件?? rm -f /root/-a 刪除一個名字為-a的文件

文件系統結構

Linux下的文件類型
-:普通文件
d: 目錄文件
b: 塊設備
c: 字符設備
l: 符號鏈接文件
p: 管道文件pipe
s: 套接字文件socket

創建1個G的文件:dd if=/dev/zero of=/date/bigfile bs=1M count=1024? if就是放文件的意思inputfile? of的意思是輸出文件outputfile?? bs是blockszie
/dev/zero 存放的是字符設備?? 字符設備是按照順序訪問
/dev/sda? 存放的是塊設備???? 塊設備是隨機訪問
hexdump -c /data/bigfile? 看文件里面的內容,顯示的是十六進制

顯示當前工作目錄
每個shell和系統進程都有一個當前的工作目錄
CWD:current work directory
顯示當前shell CWD的絕對路徑
pwd: printing working directory
-P 顯示真實物理路徑
-L 顯示鏈接路徑(默認)

絕對和相對路徑
絕對路徑:
以正斜杠開始
完整的文件的位置路徑
可用于任何想指定一個文件名的時候
相對路徑:
不以斜線開始
指定相對于當前工作目錄或某目錄的位置
可以作為一個簡短的形式指定一個文件名
基名:basename
目錄名:dirname
..表示上級目錄? ls ../
.表示當前目錄?? ls ./? 默認不寫

第三天
vim /etc/DIR_COLORS?? 修改系統文件顏色
當打開vim /etc/DIR_COLORS時,非正常關閉后,需要刪除vim /etc/DIR_COLORS.swp文件
注意?。。。合鄬β窂揭话闶侵赶鄬τ诋斍奥窂?,特殊情況下相對的就不是當前目錄

更改目錄
cd 改變目錄
使用絕對或相對路徑:
cd /home/wang/
cd home/wang
切換至父目錄: cd ..
切換至當前用戶主目錄: cd或cd ~
切換到liu用戶的家目錄:cd ~liu
切換至以前的工作目錄: cd –
選項:-P
相關的環境變量:
PWD:當前目錄路徑
OLDPWD:上一次目錄路徑?? OLDPWD=/etc/sysconfig

列出目錄內容
列出當前目錄的內容或指定目錄
用法:ls [options] [ files_or_dirs ]
示例:
ls -a 包含隱藏文件
ls -l 顯示額外的信息
ls -R 目錄遞歸通過
ls -d 僅顯示目錄 ,顯示符號鏈接文件本身,而不顯示其所指向的目錄列表,如:ls -d /etc/?? 顯示的是/etc/?? ls -d /etc?? 顯示的是/etc
ls -ld 目錄和符號鏈接信息
ls -1 文件分行顯示(是數字一)
ls –S 按從大到小排序
ls -r 反向排序
ls –t 按mtime排序
ls –u 配合-lt選項,顯示并按atime從新到舊排序
ls? -c 配合-lt選項,顯示并按ctime從新到舊排序
ls –U 按目錄存放順序顯示(即創建時間)
ls –X 按文件后綴排序
ls -d */? 顯示當前目錄下的所有文件夾? ls -d /etc/*/意思是顯示etc下的所有文件夾
在centos7上ll /bin/顯示的是bin下的所有文件列表,ll /bin 顯示的是bin的詳細信息,因為/bin是個軟連接,如果是普通文件夾結果都一樣,都顯示文件夾內的所有文件及目錄的詳細信息

查看文件狀態
stat?? 例stat a? 查看a文件的三個時間戳
文件:metadata, data
三個時間戳:
access time:訪問時間,atime,讀取文件內容???????? ls -l –time=atime /data/a??? 查看a文件的訪問時間
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變

更改文件的所有者chowm liu /data/file6??? 將data下的file6文件的所有者改成liu擁有
ls -l –time=ctime /data/file6?? 查看data目錄下file6的元數據改變時間

文件通配符(glob),匹配的是文件名,不是文件內容
* 匹配零個或多個字符
? 匹配任何單個字符
~ 當前用戶家目錄
~mage 用戶mage家目錄
~+ 當前工作目錄
~- 前一個工作目錄? 例:cd /etc/ cd /data/ 如果想列出etc下的hosts文件及目錄,則ls ~-/hosts
[0-9] 匹配數字范圍? 即0-9當中的任何一個,0或1或2或3..或9
例:ls file[137]? 顯示的是file1 file3 file7
例:ls f[1-7] 顯示的是f1 f2 f3 f4 f5 f6 f7
例:ls f[1-789] 意思是1-7以及8和9,顯示的是f1 f2 f3 f4 f5 f6 f7 f8 f9
例:ls f[1..789] 意思是1以及7和8和9,顯示的是f1 f7 f8 f9
[a-z]:字母
例: touch f{a-d}? 顯示的是fa fA fb fB fc fC fd
原因是字母顯示按照“小大小大”的順序進行的
[A-Z]:字母
[wang] 匹配列表中的任何的一個字符
例如:ls f[liu]?? 顯示的是fl fi fu
[^wang] 匹配列表中的所有字符以外的字符(即排除包含這四個字母的),也會顯示“f我”

預定義的字符類:man 7 glob
[:digit:]:任意數字,相當于0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母?? 為什么能顯示數字?
[:alnum:]:任意數字或字母,數字范圍是0-9
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:標點符號
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:圖形字符
[:xdigit:]:十六進制字符

ls -d .*或l.顯示所有的隱藏文件及目錄
如果想顯示目錄內的隱藏文件及隱藏目錄內的隱藏文件:ls -R .[^.]*
如果不想進到子目錄內,則輸入ls -d .[^.]*
還可以ls -ad .[^.]*
練習
1、顯示/data目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄
ls /data/i*[[:digit:]]*[[lower]]或ls /data/i[0-9]*[[:lower:]]
2、顯示/data目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄
ls /data/[0-9]*[^[:digit:]]
3、顯示/data/目錄下以非字母開頭,后面跟了一個字母及其它任意長度任意字符的文件或目錄
ls /data/[^[:alpha:]][[:alpha:]]*或ls /data/[^[a-zA-Z]][[:alpha:]]*
4、顯示/data/目錄下所有以rc開頭,并后面是0-6之間的數字,其它為任意字符的文件或目錄
ls -d /data/rc[0-6]*
5、顯示/data目錄下,所有以.d結尾的文件或目錄
ls -d /data/*.d
6、顯示/data目錄下,所有.conf結尾,且以m,n,r,p開頭的文件或目錄
ls -d /data/[mnrp]*.conf
7、只顯示/root下的隱藏文件和目錄
ls -d /root/.*
8、只顯示/etc下的非隱藏目錄
ls -d /etc/[^.]*/

創建空文件和刷新時間
touch命令:
touch命令創建名字為a的空文件,如果之前有a,則不能覆蓋,但會刷新a文件的三個時間戳
touch [OPTION]… FILE…
-a 僅改變 atime和ctime?? touch -a f2
-m 僅改變 mtime和ctime?? touch -m f2
-t [[CC]YY]MMDDhhmm[.ss]指定atime和mtime的時間戳?? 例:touch -t 201910200830.50 /etc.hosts
-c 如果文件不存在,則不予創建,如果文件存在刷新三個時間戳

touch `date -d “-1 day” +%F`.log??? 創建一個名字為前一天的log日志

復制文件和目錄cp
cp [OPTION]… [-T] SOURCE(源) DEST(目標)??? 意思是把單個源復制到某個目標內
cp [OPTION]… SOURCE… DIRECTORY(文件夾)??? 意思是把多個源復制到某個文件夾內
cp [OPTION]… -t DIRECTORY SOURCE…
cp SRC DEST
cp常用選項
-i:覆蓋前提示? –n:不覆蓋,注意兩者順序
-r, -R: 遞歸復制目錄及內部的所有內容
-a: 存檔,相當于-dR –preserv=all???? 把所有的信息都復制,用作存檔備份。
-d:–no-dereference –preserv=links 不復制原文件,只復制鏈接名
-f? 強制覆蓋?? 例如權限不夠,可以強制覆蓋,本質是先刪除再創建,如果是單純的覆蓋會保留原來的屬性
-p:–preserv[=ATTR_LIST]?? 僅保留權限,所有者及時間戳
-p: 等同–preserv=mode,ownership,timestamp
-v: –verbose?? 顯示復制的過程
-u:–update 只復制源比目標更新的文件或目標不存在的文件
–backup=numbered 目標存在,覆蓋前先備份加數字后綴
例:cp –backup=numbered f1 /data/f1?? 將f1覆蓋data下的f1,同時將原data下的f1備份
建議加入別名alias cp=cp -i –backup=numbered

練習
1、定義別名命令baketc,每天將/etc/目錄下所有文件,備份到
/data獨立的子目錄下,并要求子目錄格式為 backupYYYY-mm-dd,
備份過程可見
alias backetc=”cp -av /etc /data/backup`date +%F`”
alias backetc=”cp -av /etc/* /data/backup`date +%F`”這個不行,因為etc下的隱藏文件不復制
2、創建/data/rootdir目錄,并復制/root下所有文件到該目錄內,
要求保留原有權限
cp -a /root /data/rootdir
特殊文件(塊設備、字符設備)的復制方法:
正確復制方法cp -a /dev/sda /data
錯誤復制方法cp /dev/sda /data

例:touch file{1..100}.conf? ,將所有文件改名,后面加.bak后綴
批量改名使用:rename “conf” “conf.bak” file*
刪除.bak?? rename “.bak” ” ” file*

移動和重命名文件及文件夾
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-i: 交互式
-f: 強制

如果不在同一個目錄下,屬于移動
如果再同一個目錄下,mv a b 意思是將a改名為b

刪除:rm [OPTION]… FILE…
常用選項:
-i? 交互式
-f? 強制刪除
-r? 遞歸
–no-preserve-root 刪除/
rm -rf / -no-preserve-root或rm -rf /* 刪除/及/下的所有文件
示例:
rm -rf /data?? data里面的所有文件及文件夾全部刪除,本身刪不了,原因是data是個掛載點

生產中可以將rm改成別名mv,將刪除的文件移到data下,alias rm=”mv -t /data”

刪除大文件,釋放磁盤空間的方法
生產環境中,如果/boot下的空間即將滿了,有一個大文件如果有程序正在訪問,我即便使用rm命令刪了這個大文件空間也無法立刻釋放出來,如何解決?
使用lsof |grep deleted 命令是查看系統當中哪些文件已經被刪除但未釋放空間的
使用killall vim? 意思是強行關閉vim程序
或> bigfile? 創建一個同名的文件將其覆蓋即可,再使用rm -f bigfile命令,生產中常用此方法

目錄操作
tree 顯示目錄樹
-d: 只顯示目錄
-L level:指定顯示的層級數目? 如:tree -L 1 /boot? 只顯示boot目錄下的一級目錄
-P pattern: 只顯示由指定pattern匹配到的路徑
mkdir 創建目錄
-p: 存在于不報錯,且可自動創建所需的各目錄
mkdir -p /data/dir1/dir2/dir3/dir4??? dir1,dir2,dir3均不存在
-v: 顯示詳細信息
-m MODE: 創建目錄時直接指定權限
rmdir 刪除空目錄,只能刪空文件夾
-p: 遞歸刪除父空目錄
例:rmdir -p /data/dir1/dir2/dir3/dir4? 意思是刪除dir4后,看dir3,如果dir3是空的,刪除dir3,依此類推
rmdir /data/dir1/dir2/dir3/dir4 意思是只刪除dir4
-v: 顯示詳細信息
rm -r 遞歸刪除目錄樹

練習
(1) 如何創建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a,
/testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b
答:mkdir -p ./testdir/dir1/{x,y}/{a,b}
(2) 如何創建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a,
/testdir/dir2/x/b
答:mkdir -p ./testdir/dir2/{x/{a,b},y}
(3) 如何創建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6,
/testdir/dir5/dir7
答:mkdir -p ./testdir/dir{3,4,5/dir{6,7}}

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94299

(0)
柳寶玉柳寶玉
上一篇 2018-04-01 17:31
下一篇 2018-04-01 17:32

相關推薦

  • 正則表達式

    正則表達式REGEXP 有一類特殊符號表是控制伙同裴的功能程序支持:grep,seb,。。?;菊齽t表達式:BRE擴展正則表達式;ere采用不同算法經檢查處理正則表達式的軟件模塊PCRE元字符:字符匹配,匹配次數,位置錨定,分組 man7詳細文檔 字符匹配.表示任意的單一字符 放在[]里表示.本身不需要轉義\.轉義(回歸字符本身的含義)表示.本身[]表示字符…

    Linux筆記 2018-04-08
  • 腳本編程基礎環境設置

    ?程序:指令+數據?程序編程風格:過程式:以指令為中心,數據服務于指令對象式:以數據為中心,指令服務于數據?shell程序:提供了編程能力,解釋執行 ?計算機:運行二進制指令?編程語言:低級:匯編高級:編譯:高級語言–>編譯器–>目標代碼java,C#解釋:高級語言–>解釋器–>機器代碼…

    Linux筆記 2018-04-15
  • Docker容器技術之Docker Image

    鏡像是Docker容器的基石,容器是鏡像的運行實例,有了鏡像才能啟動容器。

    2018-08-02
  • Centos7登陸顏色修改

    ? 在用遠程登陸軟件登陸Centos時,登陸提示符是一串黑色的字符,假如登陸的窗口多時很容易造成各種運維事故。本來要在機器A上修改文件配置,結果沒看清在機器B上修改文件配置,造成不必要的麻煩。這時修改登陸字符顏色就顯得很重要,設置一個醒目的提示字符顏色可減少不必要的麻煩,也能夠提醒自己謹慎操作!下面給大家說明下相關配置要求。 ? ? ? ? ? ? ? ? …

    Linux筆記 2018-03-31
  • 羅列Linux發行版的基礎目錄名稱命名法則及功用規定

    FHS: ? ? Filesystem Hierarchy Standard http://refspecs.linuxfoundation.org/ http://refspecs.linuxfoundation.org/fhs.shtml ? ? /bin:所有用戶可用的基本命令程序文件; ? ? /sbin:工系統管理使用的工具程序; ? ? /boo…

    Linux筆記 2018-05-13
欧美性久久久久