linux運維基礎(chǔ)(筆記)

一、VMware的使用和Linux系統(tǒng)的安裝
1、VMware的快照、掛起的作用

快照:保存某一個狀態(tài),連命令行的輸入都可以重現(xiàn),比如在實驗是架設(shè)了http服務(wù)器進行快照可以保存初始狀態(tài),以防在設(shè)置時出現(xiàn)問題還要從頭裝的麻煩

掛起:暫停(保持在某一個狀態(tài)),比如在試驗后長時間不用但是等會又需要開啟虛擬機可以使用掛起

2、關(guān)于虛擬機的幾種網(wǎng)絡(luò)設(shè)置所使用的網(wǎng)卡情況

虛擬機:橋接模式 <---------------->宿主機:物理網(wǎng)卡
橋接模式虛擬機使用的就是宿主機的的物理網(wǎng)卡,跟宿主機的網(wǎng)段是一樣的

虛擬機:NAT模式 <---------------->宿主機:VMware Network Adapter VMnet8
NAT模式使用了網(wǎng)絡(luò)地址裝換,使用的VMware net 8這塊網(wǎng)卡,有時候需要自己在網(wǎng)絡(luò)--更改適配器來手動啟動這塊網(wǎng)卡

虛擬機 :僅主機<---------------->宿主機:VMware Network Adapter VMnet1
使用的VMware net 1這塊網(wǎng)卡,有時候需要自己在網(wǎng)絡(luò)--更改適配器來手動啟動這塊網(wǎng)卡

關(guān)于這幾種模式的虛擬機的ip地址設(shè)置可以手動設(shè)置,就在VMware的編輯--虛擬網(wǎng)絡(luò)編輯器

3、如果有時候Linux無法聯(lián)網(wǎng),可以ifconfig檢查是否分配了IP地址,有時候我們自己沒有設(shè)置手動分配IP地址的話就需要dhclient來獲取一個ip或者自己手動更改自動獲取ip的設(shè)置


二、操作系統(tǒng)概念

1、操作系統(tǒng),帶有很多外圍程序的系統(tǒng)、


OS.png

2、程序分為直接作用到硬件上,有些直接作用到內(nèi)核上(效率高)

3、API:application program interface 應(yīng)用程序接口

4、隨系統(tǒng)一起啟動
不隨系統(tǒng)一起啟動應(yīng)用程序:交互式應(yīng)用程序(用戶使用時根據(jù)需要啟動應(yīng)用程序)

5、Linux版本號(內(nèi)核版本號):三部分組成
內(nèi)核版本:3.6.28
3是主版本號
6是次版本號(奇數(shù)代表是開發(fā)版,偶數(shù)是發(fā)行版本)、
28代表第多少次修訂

6、關(guān)于開發(fā)流程
開發(fā)--內(nèi)測(修復(fù)漏洞,開發(fā)新功能)--公測--正式版本生成(正式上線)

7、[root@www ~] #
root:當(dāng)前登陸的用戶名
www:主機名
~:當(dāng)前用戶所處目錄(~代表用戶宿主目錄) ps:這里發(fā)現(xiàn)了一個小東西,如果在開頭行打出“”會不顯示,要在前加一個\,才會正確顯示~,應(yīng)該是編碼問題
#:代表當(dāng)前用戶是管路員 ps:出現(xiàn)了同上的問題

如果是普通用戶最后顯示的是$,代表當(dāng)前登錄用戶是普通用戶


三、Linux設(shè)計哲學(xué)

1、遠程登錄Linux工具有很多比如xshell,putty,CRT

其中xshell的使用可以直接輸出 ssh 10.10.10.137 ,這種格式連接遠程登錄

2、sheel的作用 shell:殼

sheel:使用者和計算機交互的接口(人機交互接口)
sheel中輸入命令,sheel把命令傳遞給內(nèi)核,內(nèi)核把命令結(jié)果反饋給sheel,人從sheel中讀取命令執(zhí)行結(jié)果

內(nèi)核的調(diào)用可以來至圖形界面、字符界面兩種方式的調(diào)用

Linux支持的sheel:bash(Linux默認(rèn)支持的sheel)、ksh、csh

3、內(nèi)核的作用

進程的管理:進程(要執(zhí)行的任務(wù)程序)
內(nèi)存的管理
文件系統(tǒng):存儲設(shè)備上存儲數(shù)據(jù)的方式方法:(NTFS、FAT32、xfs等只是存儲數(shù)據(jù)的方式不一樣,就像裝水的水杯一樣,只是杯子的形狀不一樣,但是數(shù)據(jù)實質(zhì)上是一樣的)
--Windows:NTFS、FAT32 (FAt32最多支持2T的數(shù)據(jù)存儲)
--Linux:ext3、ext4、xfs等
網(wǎng)絡(luò)功能:管理IP地址信息等
硬件驅(qū)動:
安全功能:

4、Linux設(shè)計思想
--a.由很多的小程序組成,每一個小程序完成單一的功能,實現(xiàn)復(fù)雜的任務(wù)(http服務(wù)需要安裝很多小組件)
--b.一切皆文件:所有的外圍設(shè)備(硬件)或者其他程序都是以文件的形式存在,比如硬盤外接設(shè)備等
--c.盡量避免捕獲用戶接口
--d.配置文件保存為純文本格式(可以用文本編輯器編輯,如vim)

5、Linux終端:多用戶多任務(wù)系統(tǒng)
Linux一共有6個字符終端,按Ctrl+Alt+F1--F6可以切換
退出當(dāng)前終端:exit

6、Linux界面:
--GUI:graphical user interface:圖形用戶接口(圖形界面) 切換圖形界面到字符界面:Ctrl+Alt+F7
--CLI:command line interface:命令行接口(字符界面)

Linux的六個終端是基于字符界面,GUI圖形界面(常用的圖形界面的幾種類型:GNOME(Linux默認(rèn)的圖形界面,C語言開發(fā)的),KDE(C++開發(fā)的),xface(簡化的輕量級的圖形界面))

7、用戶名和密碼是用戶獲取資源的憑證

8、切換用戶su(switch user)
su命令:root用戶切換到普通用戶時不需要密碼,但是普通用戶切換到root用戶時需要密碼
退出當(dāng)前用戶exit

9、Linux命令格式:
--命令字 [選項] [命令作用對象] (括號中的表示可以省略不寫)
---命令字:唯一的,實現(xiàn)某一功能的口令(ps:發(fā)現(xiàn)一個功能,就是在緊跟下一行只打---就會把上一行加粗顯示,而先空行在打---就會出現(xiàn)分割線)
---選項:修改命令的執(zhí)行方式(實現(xiàn)待定的功能,比如ls的顯示隱藏文件顯示修改時間文件大小等功能)


windows中的庫文件名字dll:dynamic link library
Linux共享庫名稱 .so:shared object

內(nèi)核版本號和發(fā)行版本號是不一樣的,比如centos 6 等內(nèi)核版本號不是6


結(jié)構(gòu).png

Linux操作系統(tǒng)中中系統(tǒng)是通過識別UID(user ID)來識別不同的用戶,系統(tǒng)不會認(rèn)識用戶名,只認(rèn)識數(shù)字。

3A認(rèn)證:
認(rèn)證機制:authentication
--密碼認(rèn)證:
a、密碼符合復(fù)雜性要求(數(shù)字大小寫字母特殊符號至少三種)
b、密碼長度(至少七位)
c、不要使用易記的密碼(使用隨機字符,一些軟件如keepass)
d、定期更改密碼
e、重復(fù)密碼的時間要長(使用相同密碼的更換周期時間要長)
--授權(quán)機制:authorization
--審計機制:audition(審計日志等)


四、高效獲取命令幫助信息

1、查看Linux登錄信息的設(shè)置:/etc/issue

/etc/issue用法:當(dāng)我們在終端接口登錄的時候,會有幾行提示字符串,那么這個字符串就是設(shè)置在/etc/issue。
issue內(nèi)各代碼說明:
\d 本地端時間的日期
\l 顯示第幾個終端接口
\m 顯示硬件的等級
\n 顯示主機的網(wǎng)絡(luò)名稱
\o 顯示域名
\r 操作系統(tǒng)的版本
\t 顯示本地端的時間
\s 操作系統(tǒng)的名稱
\v 操作系統(tǒng)的版本


示例.jpg

2、Linux命令分類:

--內(nèi)部命令:shell自帶的命令
--外部命令:在Linux文件系統(tǒng)中存在一個應(yīng)用程序

type:查看Linux命令類型


示例.png

cd is a shell builtin 有builtin關(guān)鍵字說明是內(nèi)部命令,builtin是內(nèi)嵌的意思
mkdir is /bin/mkdir 有路徑顯示說明是外部命令

路徑:
--絕對路徑:從根目錄(/)開始的路徑是絕對路徑,Linux系統(tǒng)中只有一個根
--相對路徑:以所處的工作目錄為參照點 (. 代表當(dāng)前路徑 .. 代表上一級目錄 ~代表所處的是宿主目錄)

3、ls(list):列出目錄

-l(long):以長格式顯示
-rw-r--r--. 1 root root 1546 5月 18 07:07 anaconda-ks.cfg
--關(guān)于長格式顯示的說明
--
-第一位:文件類型
-:代表普通文件(file)
d:代表目錄(directory)
b:塊設(shè)備(block)如硬盤,U盤等
c:字符設(shè)備(char)如鍵盤等
s:套接字文件(socket)
p:命名管道(pipe)
l:符號鏈接文件(symbolic link file)
--
rw-r--r--第二到第十位:權(quán)限位(rwx:讀寫執(zhí)行)
234位:文件所有者權(quán)限(owner)
567位:文件屬組權(quán)限(group)
8910位:其他用戶權(quán)限(other)
--
1:代表文件硬鏈接的次數(shù)
--
第一個root:代表文件所有者(owner)
第二個root:代表文件所屬組(group)
--
1546:代表文件大小
--
5月 18 07:07:文件最后被訪問的時間戳
文件的時間戳說明:(stat filename可以查看時間戳)
a、access:訪問的時間戳
b、Modify:文件被修改的時間戳(修改文件數(shù)據(jù):添加刪除數(shù)據(jù)等)
c、change:文件被更改的時間戳(更改文件屬性:更改權(quán)限等)
--
anaconda-ks.cfg:文件名

-h:為文件大小添加單位
-a:顯示目錄下所有文件(包括. .. 和以.開頭的隱藏文件)
-A:和-a相同,但是不顯示.和..
-R:遞歸顯示目錄中的內(nèi)容(一并顯示子目錄中的所有內(nèi)容)
-r:逆序顯示目錄內(nèi)容

4、環(huán)境變量:內(nèi)存中的命名空間

--PATH變量 :存放系統(tǒng)命令路徑,以冒號隔開
--查看PATH變量的方法:echo $PATH(Linux嚴(yán)格區(qū)分大小寫)
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
如果在以上路徑中沒有找到相關(guān)命令,提示用戶command not found,則該命令為外部命令。
如果一個命令在以上多個路徑中存在,系統(tǒng)會按照從前往后的順序查找,查找到該命令后,后面的路徑不管有沒有這個命令都不再查找了。

5、hash:查看命令緩存及命中率

hash命令:顯示、添加或清除哈希表
linux系統(tǒng)下的hash指令
說明:
linux系統(tǒng)下會有一個hash表,當(dāng)你剛開機時這個hash表為空,每當(dāng)你執(zhí)行過一條命令時,hash表會記錄下這條命令的路徑,就相當(dāng)于緩存一樣。第一次執(zhí)行命令shell解釋器默認(rèn)的會從PATH路徑下尋找該命令的路徑,當(dāng)你第二次使用該命令時,shell解釋器首先會查看hash表,沒有該命令才會去PATH路徑下尋找。
hash表的作用:
大大提高命令的調(diào)用速率。
hash的參數(shù)
root@redhat ~]# hash  //輸入hash或hash -l 可以查看hash表的內(nèi)容,我剛開機所以為空
hash: hash table empty
[root@redhat ~]# hash -l
hash: hash table empty
當(dāng)我執(zhí)行過2條命令后再看:
[root@redhat ~]# hash  //hash表會記錄下執(zhí)行該命令的次數(shù),以及命令的絕對路徑
hits command
1 /bin/cat
1 /bin/ls
[root@redhat ~]# hash -l  //加參數(shù)-l既可以看到hash表命令的路徑,也可以看到它的名字,說不定會有別名哦
builtin hash -p /bin/cat cat
builtin hash -p /bin/ls ls
[root@redhat ~]# hash -p /bin/ls bb  //添加hash表,可以看到我把ls命令重新寫了一遍,改名為bb
[root@redhat ~]# bb    //當(dāng)我執(zhí)行bb時就是執(zhí)行l(wèi)s命令
anaconda-ks.cfg icmp_echo_ignore_aly~ pub.key
dead.letter icmp_echo_ignore_alz~ rpmbuild
icmp_echo_ignore_all~ install.log RPM-GPG-KEY-useradd
icmp_echo_ignore_alw~ install.log.syslog RPM-GPG-KEY-westos
icmp_echo_ignore_alx~ passwd
[root@redhat ~]# hash -t ls  //-t參數(shù)可以查看hash表中命令的路徑,要是hash表中沒有怎么辦?
/bin/ls
[root@redhat ~]# hash -t df  //我沒使用過df,執(zhí)行hash,就會提示找不到該命令
-bash: hash: df: not found
[root@redhat ~]# hash -r  //清楚hash表,清楚的是全部的
[root@redhat ~]# hash -l
hash: hash table empty
[root@redhat ~]# hash -l
builtin hash -p /bin/cat cat
builtin hash -p /bin/ls ls
[root@redhat ~]# hash -d cat   //清楚其中的某一條
[root@redhat ~]# hash -l
builtin hash -p /bin/ls ls

6、Linux命令的幫助信息man

--針對內(nèi)部命令(外部命令無法用這個查詢語句):help [command]
--針對外部命令(內(nèi)部命令無法用這個查詢語句):[command] --help
man:幫助(命令的使用說明)(查看內(nèi)部命令時,顯示的是bash幫助信息,因為內(nèi)部命令是集成在bash中)內(nèi)外部命令都可以查詢幫助的命令語句
--語法:man [command]
上下方向鍵:翻行
enter:向下翻行
pagedown:向下翻頁
pageup:向上翻頁
/Word:從上往下查找關(guān)鍵字
?Word:從下往上查找關(guān)鍵字
q:退出當(dāng)前幫助信息

7、man目錄說明

1 Executable programs or shell commands可執(zhí)行程序或shell命令,普通用戶命令,一般存放在bin目錄下(/bin,/usr/bin,/usr/local/bin)binary二進制
2 System calls (functions provided by the kernel)系統(tǒng)調(diào)用庫
3 Library calls (functions within program libraries)庫調(diào)用
4 Special files (usually found in /dev)特殊文件(硬件設(shè)備存放在/dev)
5 File formats and conventions eg /etc/passwd查看配置文件格式
6 Games游戲
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)雜項
8 System administration commands (usually only for root)系統(tǒng)管理命令,一般存放在sbin目錄下(/sbin,/usr/sbin,/usr/local/sbin)sbin:secret binary
9 Kernel routines [Non standard]
man的使用說明:
--NAME:命令名稱及簡要用法
--SYNOPSIS:語法格式,可能包括一些選項的使用
--DESCRIPTION:命令和命令選項的詳細(xì)說明
--EXIT status:退出狀態(tài)碼
--AUTHOR:作者信息
--REPORTING BUGS(BUG):發(fā)現(xiàn)BUG時如何反饋信息
--COPYRIGHT:該命令的版權(quán)信息
--SEE ALSO:另外參照的幫助信息
--OPTIONS:說明該命令每一個選項的詳細(xì)用法
--EXAMPLES:命令的使用示例

man書冊頁目錄:/usr/share/doc(工作中主要是查看內(nèi)核信息)

在某些命令選項參數(shù)里可能存在某些特殊符號:
<>:必須使用的選項或者參數(shù),不可以省略
[]:可以省略的選項或參數(shù)
...:可以使用多個選項或參數(shù)
|:代表多選一
{}:分組,沒有特殊意義

info:在線查看幫助,雖然也有一些用法說明,但是更注重于Linux命令的歷史或者版權(quán)信息

8、cd:change directory(切換目錄)

cd:不加選項,返回到當(dāng)前用戶的宿主目錄
-:返回到上一次的工作路徑
~username:切換到username的宿主目錄

pwd:print working directory,打印當(dāng)前所在目錄名字

--which:查看命令所在的路徑

--whatis:查看命令所在的幫助信息目錄。該命令在系統(tǒng)啟動大概七十分鐘后會生成whatis的數(shù)據(jù)庫,如果時間太短,該命令不會執(zhí)行,我們可以使用makewhatis來初始化該命令
[root@localhost ~]# whatis mkdir
mkdir (1) - make directories
mkdir (1p) - make directories
mkdir (2) - create a directory
mkdir (3p) - make a directory
當(dāng)多個路徑存在mkdir時,要查看具體哪個目錄下的該命令的意思就可以用man 1 mkdir來查看具體的該命令幫助信息,man 2 mkdir ,前面的序號就是要查找的命令目錄


五、Linux根文件系統(tǒng)

1、Linux文件類型

-:普通文件
--純文本文件(ASCII):配置文件
--二進制文件(binary file):命令
--數(shù)據(jù)格式文件(data):/var/log/wtmp
d:目錄文件
l:鏈接文件:軟鏈接文件
設(shè)備文件:(/dev)
b:block塊設(shè)備
c:character字符集設(shè)備:一次性讀取,按順序讀取
s:socket套接字文件:通常用在網(wǎng)絡(luò)上數(shù)據(jù)連接: IP:PORT e.g. 192.168.1.1:80
p:管道:特殊的文件類型,解決多個程序同時訪問一個文件所造成的錯誤問題

file:查看Linux中文件類型
語法:file [options] file_name

2、Linux文件名限制

--單個文件或目錄的名稱不能超過255個字符
--文件名中不能包含特殊字符(/ . - +等)

FHS標(biāo)準(zhǔn)(filesystem hierarchy standard):希望用戶可以了解已經(jīng)安裝的程序在哪個目錄下

根文件系統(tǒng)(/):rootfs:root filesystem

[root@localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

/bin:二進制,存放命令
/boot:存放啟動和內(nèi)核相關(guān)的文件
/dev:存放設(shè)備文件
/etc:存放應(yīng)用程序的配置文件
/home:普通用戶的家目錄,默認(rèn)為/home/username
/lib和/lib64:存放系統(tǒng)開機時需要用的函數(shù)庫以及/bin和/sbin命令調(diào)用函數(shù)庫
--/lib/modules:存放內(nèi)核相關(guān)的模塊(驅(qū)動程序等)
/media和/mnt:掛載點,/media掛載移動設(shè)備,/mnt掛載臨時設(shè)備
/opt:第三方軟件存放目錄(用戶自行安裝的軟件存放處),現(xiàn)在一般安裝到/usr/local下
/proc:偽文件系統(tǒng),數(shù)據(jù)存放在內(nèi)存中,存放關(guān)于進程的相關(guān)信息(一旦關(guān)機重啟這些文件就會消失,因為是存放在內(nèi)存中不是存儲器)
/root:管理員的家目錄
/sbin:存放管理員使用的命令,即root用戶,普通用戶無法使用的命令
/srv:service的縮寫,存放服務(wù)數(shù)據(jù)的目錄,如可以把www服務(wù)的網(wǎng)頁放到該目錄下
/tmp:存放臨時文件,所有用戶都可以訪問創(chuàng)建文件,但是每個用戶只能刪除自己的文件
/sys:偽文件系統(tǒng),存放在內(nèi)存中,記錄內(nèi)核相關(guān)的信息,包括目前加載內(nèi)核模塊和內(nèi)核檢測到的硬件設(shè)備等
/usr:UNIX software resource:存放安裝的應(yīng)用程序
--/usr/bin:普通用戶使用的命令(和/bin目錄的區(qū)別:是否與開機有關(guān))
--/usr/sbin:網(wǎng)絡(luò)服務(wù)器命令
--/usr/lib和/usr/lib64:包含各種應(yīng)用程序函數(shù)庫
--/usr/share:存放共享文件目錄(在線幫助文件,雜項,時區(qū)文件等)
--/usr/include:存放頭文件
--/usr/src:釋放源代碼目錄
/var:vary的縮寫,存放經(jīng)常變動的文件,比如日志,mail等
--/var/cache:存放應(yīng)用程序運行時產(chǎn)生的緩存文件
--/var/lib:程序運行時,需要使用的數(shù)據(jù)文件的存放目錄
--/var/lock:設(shè)備或資源一次只能被一個應(yīng)用程序使用,如果多應(yīng)用程序會產(chǎn)生錯誤,所以要為設(shè)備或資源上鎖(存放鎖文件)
--/var/log:存放日志目錄(系統(tǒng),用戶登錄,服務(wù)日志等)
--/var/mail:存放個人電子郵件(系統(tǒng)報警產(chǎn)生郵件信息等)
--/var/run:存放應(yīng)用程序運行時PID文件(進程號.pid結(jié)尾)
--/var/spool:存放隊列數(shù)據(jù),排隊等待其他用戶程序使用的數(shù)據(jù),數(shù)據(jù)通常使用后會被刪除

FHS規(guī)定:/etc /bin /dev /lib /sbin五個目錄必須要和根目錄位于同一文件系統(tǒng)


六、Linux常用命令
基本命令:ls、cd、pwd
學(xué)習(xí)內(nèi)容:file、cat、cp、mv、rm、mkdir、touch、tree、which、whereis
文件管理、目錄管理、網(wǎng)絡(luò)管理等

1、file

file:查看文件類型(Windows是用擴展名識別文件類型)
語法:file [options] [file_name]
-b:顯示結(jié)果時,不顯示文件名
-c:顯示執(zhí)行file命令的執(zhí)行過程(file是如何去判斷文件類型),便于排錯或分析file命令執(zhí)行過程
-i:輸出MIME類型的字符串
[root@localhost ~]# file -i anaconda-ks.cfg
anaconda-ks.cfg: text/plain; charset=us-ascii
[root@localhost ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text
-z:顯示壓縮文件的內(nèi)容
-L:查看軟鏈接對應(yīng)的文件類型
-f:查看文件中文件名的類型

2、cat

cat:一次性查看整個文件
語法:cat [options] [file_name]
從鍵盤輸入創(chuàng)建一個新文件或向現(xiàn)有文件中添加新數(shù)據(jù):
--新建新文件:
cat >new_file_name <<EOF //EOF:end of file結(jié)束文件的意思
----->文件內(nèi)容 //從鍵盤輸入
----->文件內(nèi)容 //從鍵盤輸入
----->EOF //從鍵盤輸入,以結(jié)束書寫


image.png

--向現(xiàn)有文件中追加數(shù)據(jù):
cat >> file_name <<EOF (無論是追加還是寫入EOF都是兩個尖括號)
----->文件內(nèi)容
----->文件內(nèi)容
----->EOF
--把多個文件內(nèi)容合并到一個文件輸出:
cat file1 file2 > file3
e.g: cat /etc/passwd /etc/shadow > /root/user.txt

--options選項說明:
-n:顯示文件內(nèi)容時同時顯示行號,包括空行
-b:和-n功能相同,但不包括空行
-s:當(dāng)文件中有多個空行時,合并為一個空行
-E:在顯示內(nèi)容時,結(jié)尾添加$符號


image.png

3、cp

cp:復(fù)制文件或目錄(copy的簡寫),cp命令用來將一個或多個源文件或者目錄復(fù)制到指定的目的文件或目錄。它可以將單個源文件復(fù)制成一個指定文件名的具體的文件或一個已經(jīng)存在的目錄下。cp命令還支持同時復(fù)制多個文件,當(dāng)一次復(fù)制多個文件時,目標(biāo)文件參數(shù)必須是一個已經(jīng)存在的目錄,否則將出現(xiàn)錯誤。

語法:cp [options] [ src_file(源文件)] [des_file(目標(biāo)文件)]

源文件:制定源文件列表。默認(rèn)情況下,cp命令不能復(fù)制目錄,如果要復(fù)制目錄,則必須使用-R選項;

目標(biāo)文件:指定目標(biāo)文件。當(dāng)“源文件”為多個文件時,要求“目標(biāo)文件”為指定的目錄。

-a:此參數(shù)的效果和同時指定"-dpR"參數(shù)相同;
-d:當(dāng)復(fù)制符號連接時,把目標(biāo)文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強行復(fù)制文件或目錄,不論目標(biāo)文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶(當(dāng)輸入cp的時候默認(rèn)帶有-i的屬性都會詢問,cp=cp -i);
-l:對源文件建立硬連接,而非復(fù)制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復(fù)制文件;
-u:使用這項參數(shù)后只會在源文件的更改時間較目標(biāo)文件更新時或是名稱相互對應(yīng)的目標(biāo)文件并不存在時,才復(fù)制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認(rèn)后綴;
-b:覆蓋已存在的文件目標(biāo)前將目標(biāo)文件備份;
-v:詳細(xì)顯示命令執(zhí)行的操作。

4、mv

mv:(move)mv命令用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。source表示源文件或目錄,target表示目標(biāo)文件或目錄。如果將一個文件移到一個已經(jīng)存在的目標(biāo)文件中,則目標(biāo)文件的內(nèi)容將被覆蓋。

mv命令可以用來將源文件移至一個目標(biāo)文件中,或?qū)⒁唤M文件移至一個目標(biāo)目錄中。源文件被移至目標(biāo)文件有兩種不同的結(jié)果:

  1. 如果目標(biāo)文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變。
  2. 如果目標(biāo)文件不是目錄文件,則源文件名(只能有一個)會變?yōu)榇四繕?biāo)文件名,并覆蓋己存在的同名文件。如果源文件和目標(biāo)文件在同一個目錄下,mv的作用就是改文件名。當(dāng)目標(biāo)文件是目錄文件時,源文件或目錄參數(shù)可以有多個,則所有的源文件都會被移至目標(biāo)文件中。所有移到該目錄下的文件都將保留以前的文件名。

注意事項:mv與cp命令的結(jié)果不同,mv好像文件“搬家”,文件個數(shù)并未增加。而cp對文件進行復(fù)制,文件個數(shù)增加了。

格式: mv [options] [源文件] [目標(biāo)文件]

參數(shù)
--backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當(dāng)文件存在時,覆蓋前,為其創(chuàng)建一個備份;
-f:若目標(biāo)文件或目錄與現(xiàn)有的文件或目錄重復(fù),則強制覆蓋現(xiàn)有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標(biāo)文件或目標(biāo)目錄中的文件同名,則詢問用戶是否覆蓋目標(biāo)文件。用戶輸入”y”,表示將覆蓋目標(biāo)文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
--strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<后綴>:為備份文件指定后綴,而不使用默認(rèn)的后綴;
--target-directory=<目錄>:指定源文件要移動到目標(biāo)目錄;
-u:當(dāng)源文件比目標(biāo)文件新或者目標(biāo)文件不存在時,才執(zhí)行移動操作。
-t:將多個文件移動到同一個目錄(目標(biāo)目錄在前,后面跟文件 mv -t [directory] file1 file2 ...)

5、rm

rm:(remove)rm命令可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。

注意:使用rm命令要格外小心。因為一旦刪除了一個文件,就無法再恢復(fù)它。所以,在刪除文件之前,最好再看一下文件的內(nèi)容,確定是否真要刪除。rm命令可以用-i選項,這個選項在使用文件擴展名字符刪除多個文件時特別有用。使用這個選項,系統(tǒng)會要求你逐一確定是否要刪除。這時,必須輸入y并按Enter鍵,才能刪除文件。如果僅按Enter鍵或其他字符,文件不會被刪除。

格式:rm [options] [文件或目錄]

參數(shù):
-d:直接把欲刪除的目錄的硬連接數(shù)據(jù)刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
--preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細(xì)執(zhí)行過程。

6、mkdir

mkdir:(make directory)mkdir命令用來創(chuàng)建目錄。該命令創(chuàng)建由dirname命令命名的目錄。如果在目錄名的前面沒有加任何路徑名,則在當(dāng)前目錄下創(chuàng)建由dirname指定的目錄;如果給出了一個已經(jīng)存在的路徑,將會在該目錄下創(chuàng)建一個指定的目錄。在創(chuàng)建目錄時,應(yīng)保證新建的目錄與它所在目錄下的文件沒有重名。

注意:在創(chuàng)建文件時,不要把所有的文件都存放在主目錄中,可以創(chuàng)建子目錄,通過它們來更有效地組織文件。最好采用前后一致的命名方式來區(qū)分文件和目錄。例如,目錄名可以以大寫字母開頭,這樣,在目錄列表中目錄名就出現(xiàn)在前面。

在一個子目錄中應(yīng)包含類型相似或用途相近的文件。例如,應(yīng)建立一個子目錄,它包含所有的數(shù)據(jù)庫文件,另有一個子目錄應(yīng)包含電子表格文件,還有一個子目錄應(yīng)包含文字處理文檔,等等。目錄也是文件,它們和普通文件一樣遵循相同的命名規(guī)則,并且利用全路徑可以唯一地指定一個目錄。

格式: mkdir [options] [目錄名]

參數(shù):
-Z:設(shè)置安全上下文,當(dāng)使用SELinux時有效;
-m<目標(biāo)屬性>或--mode<目標(biāo)屬性>建立目錄的同時設(shè)置目錄的權(quán)限;
-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一并建立上層目錄;
--version 顯示版本信息。
-v:顯示創(chuàng)建目錄的過程

關(guān)于mkdir運用的小技巧.PNG

7、touch

touch:創(chuàng)建新文件或者修改文件時間戳;touch命令有兩個功能:一是用于把已存在文件的時間標(biāo)簽更新為系統(tǒng)當(dāng)前的時間(默認(rèn)方式),它們的數(shù)據(jù)將原封不動地保留下來;二是用來創(chuàng)建新的空文件。

-a:或--time=atime或--time=access或--time=use 只更改存取時間;
-c:或--no-create 不建立任何文件;
-d:<時間日期> 使用指定的日期時間,而非現(xiàn)在的時間;
-f:此參數(shù)將忽略不予處理,僅負(fù)責(zé)解決BSD版本touch指令的兼容性問題;
-m:或--time=mtime或--time=modify 只更該變動時間;
-r:<參考文件或目錄> 把指定文件或目錄的日期時間,統(tǒng)統(tǒng)設(shè)成和參考文件或目錄的日期時間相同;
-t:<日期時間> 使用指定的日期時間,而非現(xiàn)在的時間;
--help:在線幫助;
--version:顯示版本信息。

8、tree

tree:查看目錄樹(tree = ls -R)
如果命令提示
[root@localhost ~]# tree
bash: tree: 未找到命令...
則運行安裝這個命令即可
[root@localhost ~]# yum -y install tree

捕獲.PNG

9、which

which:查找命令所在路徑

10、whereis

whereis:查看命令所在路徑,源代碼文件,幫助信息文件所在的位置

-b:只查看文件所在的位置(等同于which命令)
-m:只查看幫助信息所在的位置
-s:只查看源代碼所在的位置

11、查找文件命令 :locate

非實時性,根據(jù)自己的數(shù)據(jù)庫查找文件,CentOS每天更新一次數(shù)據(jù)庫,安裝完locate后,生成/var/lib/mlocate目錄,存放數(shù)據(jù)庫

是一種模糊匹配

/var/lib/mlocate/mlocate.db //locate工具的數(shù)據(jù)庫

yum -y install mlocate //安裝locate工具
locate file_name
updatedb //更新locate數(shù)據(jù)庫


Linux和Windows中文件內(nèi)容行尾標(biāo)記是不同的:

  • Linux中是以$為結(jié)尾
  • Windows中是以Enter鍵結(jié)尾

六、查看文本文件內(nèi)容的命令:cat、more、less、head、tail

1、cat

一次性查看文件內(nèi)容

2、more

more:可以翻頁查看文本文件內(nèi)容

enter鍵:向下翻一行
空格鍵:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+F:向下翻一屏
=:顯示當(dāng)前的行號
V:調(diào)用vi編輯器
!command:調(diào)用shell執(zhí)行命令
q:退出

more +num file_name //從num行開始查看文件內(nèi)容

3、less

less:可以翻頁查看文本文件內(nèi)容

enter鍵:向下翻一行
空格鍵:向下翻一屏
pagedown:向下翻一屏
pageup:向上翻一屏
上下方向鍵:向上/下翻一行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容