linux命令比較命令
㈠ linux中的命令有哪些
linux命令有內部命令和外部命令之分。內部命令實際伍喚上是shell程序的一部分,其中包含的是一些比較簡練的linux系統命令,腔氏凱這些命令由shell程序識別並在shell程序內部完成運行核滲,通常在linux系統載入運行時shell就被載入並駐留在系統內存中。外部命令是linux系統中的實用程序部分,因為實用程序的功能通常都比較強大,所以它們包含的程序量也會很大,在系統載入時並不隨系統一起被載入到內存中,而是在需要時才將其調進內存。通常外部命令的實體並不包含在shell中,但是其命令執行過程是由shell 程序控制的。shell程序管理外部命令執行的路徑查找、載入存放,並控制命令的執行。
㈡ linux中,有哪些命令是比較好用的呢
mount 掛載設備 cat 查看文件內容 find 查找 tail查看文件內容後10行
head查看文件內容前十行 grep檢索文件內容 mkdir創建文件夾
touch創建文件 cp復制 mv移動 像這些都是些比較常用的命令
㈢ Linux系統常用命令與DOS命令的類似之處和本質區別各是什麼
Linux是一個非常優秀的操作系統,與MS-WINDOWS相比具有可靠、穩定、速度快等優點,且擁有豐富的根據UNIX版本改進的強大功能。下面做一個簡單的對比。x0dx0a一、啟動x0dx0aLinux的啟動操作過程和DOS相似(盡管如此,但作為操作系統本身,Linux在啟動和退出時所作的工作要比DOS多得多),也可以通過按下Ctrl+Alt+Del三鍵進行熱啟動。不同的是Linux啟動到最後時,需要進行登錄。下面是一個典型的登錄過程:x0dx0a??x0dx0aRedHat Linux release 5.1x0dx0aKernel 2.0.32 on an i686x0dx0alogin:x0dx0a鍵入:root後,計算機顯示輸口令(password:),輸入的口令(如果是第一次啟動,則是在安裝時所輸入的口令)即可。當計算機出現一個「#」提示 符時,表明登錄成功。x0dx0a [root@localhost root]#_ //Linux提示符x0dx0a C:>_ //DOS提示符x0dx0a二、常用的一些命令:x0dx0a1.顯示文件目錄命令ls(DOS下為DIR)x0dx0a在Linux中用ls命令顯示文件及目錄(當然,你仍然也可用DIR命令,只不過在這里的參數不同)。例如:x0dx0a#ls -F+root/ mnt/ boot/ dev/ bin/ usr/ xiong* tmp/ etc/ games / readmex0dx0a帶*為可執行文件(相當於DOS中的EXE和COM文件),帶/為子目錄,其它的為通用文件。另外,可用ls -l顯示文件目錄的詳細情況(相當於DOS中的DIR命令)。千萬注意區分大小寫!!如LS -f;Ls等都是錯誤的。另外,ls命令還有許多參數,可以用man ls或ls--help去進一步了解。x0dx0a2.改變當前目錄命令cd(DOS下為CD)x0dx0a在DOS中,可以用C:>CDMNTcdrom或cdmntcdromx0dx0aC:mntcdrom>cd ..或cd..或CD..x0dx0aC:mnt>cd或C:mnt>cdx0dx0a而在Linux中為cd /mnt/cdrom,目錄名的大小寫必須與實際相同,cd後必須有空格。x0dx0apwd 顯示當前目錄x0dx0acd .. 必須為小寫,必須有空格x0dx0acd / 總目錄為/,cd與/? 有空格x0dx0a3.建立子目錄mkdir(DOS下為MD或MKDIR)x0dx0a在Linux中只能用mkdir,可用相對路徑和絕對路徑,請比較:x0dx0aC:>md xiong或md xiong或mdxiongx0dx0aDOS系統x0dx0a[root@localhost /]#mkdir xiong或mkdir /xiongx0dx0aLinux系統x0dx0a4.刪除子目錄命令rmdir(DOS下為RD)x0dx0a在Linux中用rmdir命令刪除子目錄,例如:x0dx0armdir /mnt/cdrom 相當於rd mntcdromx0dx0a注意:同DOS一樣,要刪除的子目錄必須是空的,而且必須在上一級目錄中才能刪除下一級 子目錄。x0dx0a5.刪除文件命令RM(DOS下為DEL或EARSE)x0dx0a在Linux中用RM命令刪除文件,例:x0dx0arm /ucdos.bat 相當於del ucdos.batx0dx0a6.文件改名命令MV(DOS下為REN或RENAME)x0dx0a在Linux中用mv命令給文件改名,例:x0dx0amv /mntfloppy p相當於 ren mntfloppy px0dx0a說明:在Linux中的mv命令除了文件改名外,還有文件移動的功能,請看例子:x0dx0amv /mnt/floppy /bin 相當於DOS中的命令 move mntfloppy inx0dx0a7.文件復制命令cp(DOS下為COPY)x0dx0a在Linux中用cp命令進行文件復制,例:x0dx0acp /ucdos/* /fox 相當於 ucdos*.* foxx0dx0a注意:DOS中的*.*在Linux中用*代替。x0dx0a8.獲取幫助信息命令man(DOS下為HELP)x0dx0a在Linux中用man命令獲取幫助信息,例:x0dx0aman ls 相當於help dirx0dx0als --help 相當於dir/x0dx0a以上講到的僅僅是與DOS功能相似的一些Linux命令,而作為一個多用戶、多任務的操作系統,其強大的功能還遠不止於此。
㈣ linux文件查找命令比較
有啊。
locate:這個在部分linux中沒有,運行之前,需要先updatedb,更侍棚新其數據老畢則庫,特別是第一次和有數扒新生成的文件的時候。
grep命令:如果你知道文件是在哪個目錄下,可以使用ls | grep 文件名
which:查看系統命令的存放地址,比如:which ls
whereis
等等。。。。。。。。。
㈤ linux常用命令有哪些
linux 常用命令有:
pwd 命令
cd 命令
ls 命令
cat 命令
cp 命令
mv 命令
mkdir 命令
rmdir 命令
rm 命令
touch 命令
locate 命令
find 命令
sudo 命令
df 命令
命令
head 命令
tail 命令
diff 命令
tar 命令
chmod 命令
chown 命令
Jobs 命令
kill 命令
ping 命令
wget 命令
uname 命令
top 命令
history 命令
man 命令
echo 命令
zip,unzip 命令
hostname 命令
useradd,userdel 命令
使用 pwd 命令找出您所在的當前工作目錄(文件夾)的路徑。該命令將返回一個絕對(完整)路徑,該路徑基本上是所有以 / 開頭的目錄的路徑。絕對路徑的一個示例是 /home/username。
要瀏覽 Linux 文件和目錄,請使用 cd 命令。根據您所在的當前工作目錄,它需要目錄的完整路徑或名稱。假設您位於 /home/username / Documents 中,並且想要轉到 Documents 的子目錄 Photos。為此,只需鍵入以下命令:cd Photos。另一種情況是,如果您想切換到一個全新的目錄,例如 /home/username / Movies。在這種情況下,您必須輸入 cd,然後輸入目錄的絕對路徑:cd /home/username / Movies。有一些快捷方式可幫助您快速導航:cd ..(帶有兩個點)將一個目錄向上移動 cd 直接轉到主文件夾 cd-(帶連字元)移動到上一個目錄附帶說明一下,Linux 的 shell 是區分大小寫的。因此,您必須准確輸入名稱的目錄。
LS 命令用於查看目錄的內容。默認情況下,此命令將顯示當前工作目錄的內容。如果要查看其他目錄的內容,請鍵入 ls,然後鍵入目錄的路徑。例如,輸入 LS / 家 / 用戶名 / 文檔查看的內容的文件。您可以使用 ls 命令使用以下變體:ls -R 還將列出子目錄中的所有文件 ls -a 將顯示隱藏的文件 ls -al 將列出文件和目錄以及詳細信息,例如許可權,大小,所有者等。
cat(連接的縮寫)是 Linux 中最常用的命令之一。它用於在標准輸出(sdout)上列出文件的內容。要運行此命令,請鍵入 cat,然後輸入文件名及其擴展名。例如:cat file.txt。以下是使用 cat 命令的其他方法:cat> filename 創建一個新文件 cat filename1 filename2> filename3 連接兩個文件(1 和 2),並將它們的輸出存儲在新文件中(3)將文件轉換為大寫或小寫使用,cat filename | tr a-z A-Z >output.txt
使用 cp 命令將文件從當前目錄復制到另一個目錄。例如,命令 cp scenery.jpg/home /username/ Pictures 將在您的 Pictures 目錄中創建一個 Scene.jpg 副本(來自當前目錄)。
mv 命令的主要用途是移動文件,盡管它也可以用於重命名文件。mv 中的參數類似於 cp 命令。您需要輸入 mv,文件名和目標目錄。例如:mv file.txt/home /username/ Documents。
使用 mkdir 命令創建一個新目錄 - 如果鍵入 mkdir Music,它將創建一個名為 Music 的目錄。還有一些額外的 mkdir 命令:要在另一個目錄中生成新目錄,請使用此 Linux 基本命令 mkdir Music / Newfile 使用 p(父級)選項在兩個現有目錄之間創建一個目錄。例如,mkdir -p Music / 2022 / Newfile 將創建新的 「2022」 文件。
如果需要刪除目錄,請使用 rmdir 命令。但是,rmdir 僅允許您刪除空目錄。
該 RM 命令用於刪除目錄以及其中的內容。如果只想刪除目錄(作為 rmdir 的替代方法),請使用 rm -r。注意:使用此命令時要格外小心,並仔細檢查您所在的目錄。這將刪除所有內容,並且沒有撤消操作。
該觸摸命令允許您創建通過 Linux 命令行新的空白文件。例如,輸入 touch /home/username/Documents/Web.html 在 Documents 目錄下創建一個名為 Web 的 HTML 文件。
您可以使用此命令來定位文件,就像 Windows 中的搜索命令一樣。此外,將 - i 參數與該命令一起使用將使其不區分大小寫,因此即使您不記得其確切名稱,也可以搜索文件。要搜索包含兩個或多個單詞的文件,請使用星號(*)。例如,locate -i school * note 命令將搜索包含單詞 「school」 和 「 note」 的任何文件,無論它是大寫還是小寫。
在類似定位命令,使用 查找也搜索文件和目錄。區別在於,您可以使用 find 命令在給定目錄中查找文件。例如,find /home/-name notes.txt 命令將在主目錄及其子目錄中搜索名為 notes.txt 的文件。使用查找時的其他變化 是:要查找當前目錄中使用的文件,請使用 find . -name notes.txt 要查找目錄,請使用 /-type d -name notes. txt13. grep 命令無疑對日常使用很有幫助的另一個基本 Linux 命令是 grep。它使您可以搜索給定文件中的所有文本。為了說明這一點,grep blue notepad.txt 將在記事本文件中搜索單詞 blue。包含搜索到的單詞的行將被完整顯示。
該命令是 「SuperUser Do」 的縮寫,使您能夠執行需要管理或超級用戶許可權的任務。但是,建議不要將此命令用於日常使用,因為如果您做錯了一些事情,很容易發生錯誤。
使用 df 命令可獲取有關系統磁碟空間使用情況的報告,以百分比和 KB 表示。如果要以兆位元組為單位查看報告,請輸入 df -m。
如果要檢查文件或目錄佔用了多少空間,答案是 (磁碟使用情況)命令。但是,磁碟使用情況摘要將顯示磁碟塊號,而不是通常的大小格式。如果要以位元組,千位元組和兆位元組為單位查看它,請在命令行中添加 - h 參數。
所述頭命令用於查看任何文本文件的第一行。默認情況下,它將顯示前十行,但是您可以根據自己的喜好更改此數字。例如,如果只想顯示前五行,則鍵入 head -n 5 filename.ext。
該命令與 head 命令具有相似的功能,但是 tail 命令將顯示文本文件的最後十行,而不是顯示第一行。例如,tail -n filename.ext。
diff 命令是差異的縮寫,diff 命令逐行比較兩個文件的內容。分析文件後,它將輸出不匹配的行。程序員在需要進行程序更改時經常使用此命令,而不是重寫整個源代碼。此命令最簡單的形式是 diff file1.ext file2.ext
該 tar 命令是最常用的命令歸檔多個文件到一個壓縮包。類似於 zip 格式常見的 Linux 文件格式,壓縮是可選的。該命令具有很長的功能列表,非常復雜,例如將新文件添加到現有檔案中,列出檔案內容,從檔案中提取內容等等。查看一些實際示例,以了解有關其他功能的更多信息。
chmod 是另一個 Linux 命令,用於更改文件和目錄的讀取,寫入和執行許可權。由於此命令相當復雜,因此您可以閱讀完整的教程以正確執行它。
在 Linux 中,所有文件均歸特定用戶所有。該 CHOWN 命令使您可以更改或文件的所有權轉讓給指定的用戶名。例如,chown linuxuser2 file.ext 將使 linuxuser2 成為 file.ext 的所有者。
jobs 命令將顯示所有當前作業及其狀態。作業基本上是由 Shell 啟動的進程。
如果您的程序無響應,則可以使用 kill 命令手動終止它。它將向運行異常的應用發送特定信號,並指示該應用自行終止。您總共可以使用 64 個信號,但是人們通常只使用兩個信號:SIGTERM(15) — 請求程序停止運行,並給它一些時間來保存其所有進度。如果在輸入 kill 命令時未指定信號,則將使用此信號。SIGKILL(9) - 強製程序立即停止。未保存的進度將丟失。除了知道信號之外,您還需要知道要殺死的程序的進程標識號(PID)。如果您不知道 PID,只需運行命令 ps ux。在知道您要使用什麼信號以及程序的 PID 之後,輸入以下語法:kill [signal option] PID.
使用 ping 命令檢查與伺服器的連接狀態。例如,只需輸入 ping google.com,該命令將檢查您是否能夠連接到 Google 並測量響應時間。
Linux 命令行非常有用 - 您甚至可以在 wget 命令的幫助下從 Internet 下載文件。為此,只需鍵入 wget,然後輸入下載鏈接即可。
該 UNAME 命令,短期對於 Unix 名,將列印您的 Linux 系統,如計算機名稱的詳細信息,操作系統,內核,等等。
作為與 Windows 中的任務管理器等效的終端,top 命令將顯示正在運行的進程的列表以及每個進程使用的 CPU 數量。監視系統資源使用情況非常有用,尤其是知道哪個進程由於消耗太多資源而需要終止時。
當您使用 Linux 一段時間後,您會很快注意到每天可以運行數百個命令。因此,如果您想查看之前輸入的命令,運行歷史記錄命令特別有用。
對某些 Linux 命令的功能感到困惑嗎?不用擔心,您可以使用 man 命令從 Linux 的外殼程序中輕松地學習如何使用它們。例如,輸入 man tail 將顯示 tail 命令的手動指令。
此命令用於將一些數據移到文件中。例如,如果要將文本 「Hello,我的名字叫 John」 添加到名為 name.txt 的文件中,則可以鍵入 echo Hello, my name is John >> name.txt
使用 zip 命令將文件壓縮到 zip 歸檔文件中,然後使用 unzip 命令從 zip 歸檔文件中提取壓縮文件。
如果您想知道主機 / 網路的名稱,只需鍵入 hostname。在末尾添加 - I 將顯示您的網路的 IP 地址。
㈥ 紅帽linux系統與UOS命令對比
目前在各 Linux 發行版中, 比較著名的軟體包管理系統有如下兩種:
RPM: Red Hat/Fedora,Suse,Mandriva 使用的是這類管理系統。
DPKG: Debian,ubuntu使用的是這類管理系統。
UOS是基於Debian發行版本,因此UOS使用的是DPKG包管理機制。
Redhat的rpm軟體包管理相信大家都很熟悉,這里主要講UOS系統的軟體升級的源配置,在/etc/apt/sources.list。文件內容的格式如下:
deb [by-hash=force] https://packages.chinauos.cn/ eagle main contrib non-free
其中,第一列描述了文件類型,是deb類型還是deb-src類型,deb是已經編譯好的二進制軟體包,deb-src是源碼包,第二列是使用的鏡像地址,apt可以使用多種類型的鏡像地址,衫攜如:http、ftp、file等。其中,eagle 是系統的codename。 main non-free contrib是源下面不同的目錄,每個目錄放一類軟體,即不同的子倉庫。
在每次修改sources.list文件後,都需要運行apt-get update命令更新源列表系統中所有packages的信息都在 /var/lib/dpkg/目錄下, 其子目錄 /var/lib/dpkg/info 用於保存鎮畢各個軟體包的配置文件列表,/var/lib/dpkg/available文件的內容是軟體包的描述信息, 該軟體包括當前系統所使用的深度安裝源中的所有軟體包,其中包括當前系統中已安裝的和未安裝的軟體包。/var/cache/apt/archives目錄是在用 apt-get install 安裝軟體包時,軟體包的臨時存放路徑,而/etc/apt/sources.list 存放的是軟體源站點, 當執行 apt-get install package-name 時,軟體包就去這些站點下載軟體包到本地並執行安裝。
紅帽系統與UOS的基本操作命令基本相同,屬於Linux基本操作命令。二者命令的主要區別在軟體包的管理上,下面就針對二者對軟體包的管理命令進行對比。
表1 rpm與dpkg軟體包管理常用命令對比
表2 yum與apt軟或旅伏件包管理常用命令對比
註:yumdownloader命令需要安裝yum-utils*
㈦ Linux命令
快照功能:記錄當前的硬碟的狀態。剛建快照時快照佔用內存為0,標記了當前硬碟的存儲狀態。當虛擬機對快照標記的內容改寫時,會將改寫的內容存儲進快照,與未改寫的部分整合得到完整的快照。當快照標記的部分被完全改寫,那麼快照存儲空間完整記錄了當時拍攝時的內存狀態。
參數形式
第一種:參數用一橫的說明後面的參數是字元形式。
第二種:參數用兩橫的說明後面的參數是單詞形式。
第三種:參數前有橫的是 System V風格。
第四種:參數前沒有橫的是 BSD風格。
cat、more、less、head、tail命令的比較:
cat命令可以一次顯示整個文件,如果文件比較大,使用不是很方便;
more命令可以讓屏幕在顯示滿一屏幕時暫停,按空格往前翻頁,按b往後翻頁。
less命令也可以分頁顯示文件,和more命令的區別就在於: 支持上下鍵卷動屏幕、查找;不需要在一開始就讀取整個文件,打開大文件時比more、vim更快。
head命令用於查看文件的前n行。
tail命令用於查看文件的後n行,加上-f命令,查看在線日誌非常方便,可以列印最新增加的日誌。
一般模式:
編輯模式:
命令模式:
編碼
多行操作(列編輯模式)
插入:ctrl+v進入列編輯模式,上下移動游標選擇需要插入的位置,然後輸入大寫I,輸入需要文本,最後按esc鍵退出,就會發現文本會在選擇的多行中插入。
刪除:ctrl+v進入列編輯模式,上下移動游標選中需要刪除的部分,然後按d,就會刪除選中的內容。
①head:顯示文件頭部內容
②tail:輸出文件尾部內容
注意:用vim和vi修改內容會刪除源文件並生成新文件,所以tail -f會失效。需要用到
追加和覆蓋語句(>或>>),才能被tail -f監視到。
一般用於查看小文件
查看壓縮文件中的文本內容
例:
①more:文件內容分屏查看器
②less:分屏顯示文件內容,效率比more高
1、簡單讀取
運行腳本如下
測試結果為:
2、-p 參數,允許在 read 命令行中直接指定一個提示。
運行腳本如下
測試結果為:
echo [選項] [輸出內容] (輸出內容到控制台)
輸出給定文本的sha256加密後的內容
①顯示當前時間信息
②顯示當前時間年月日
③顯示當前時間年月日時分秒
④顯示昨天
⑤顯示明天時間
⑥顯示上個月時間
需要注意的是取下個月的命令存在bug,執行如下命令會得到21-10,但是正常應該得到21-09,需要注意
date -d "2021-08-31 +1 month" +%y-%m
⑦修改系統時間
⑧獲取當前時間戳
獲取秒時間戳: date +%s
獲取毫秒時間戳:$[ (date +%s%N) /1000000]
查看日歷
(1)查看當前月的日歷
(2)查看2017年的日歷
例:
對比gzip/gunzip,zip/unzip可以壓縮文件和目錄且保留源文件。
①zip:壓縮
②unzip:解壓縮
只能壓縮文件不能壓縮目錄,不保留原來的文件。
gzip 文件 (只能將文件壓縮為*.gz文件)
gunzip 文件.gz (解壓縮文件命令)
例: crontab -e
(1)進入crontab編輯界面。會打開vim編輯你的工作。
(2)每隔1分鍾,向/root/longma.txt文件中添加一個11的數字
*/1 * * * * /bin/echo 」11」 >> /root/longma.txt
(3)可以用tail -f 目標文件來實施監控追加的內容
查看日誌
可以用tail -f /var/log/cron.log觀察
Cron表達式見文章: https://www.jianshu.com/writer#/notebooks/46619194/notes/75177408
ls [選項] [目錄或是文件]
cd [參數]
例: cd -P $(dirname $p1) ; pwd 先跳轉到文件的所在目錄,再列印$p1文件的實際路徑
概述
①cp():只能在本機中復制
②scp(secure ):可以復制文件給遠程主機
scp -r test.sh hxr@hadoop102:/root
③rsync(remote sync):功能與scp相同,但是不會改文件屬性
rsync -av test.sh test.sh hxr@hadoop102:/root
④nc(netcat):監聽埠,可以實現機器之間傳輸文件。
nc -lk 7777 (-l表示listen,-k表示keep)
強制覆蓋不提示的方法:cp
例:scp -r test.sh hxr@bigdata1:/root
例:rsync -av test.sh hxr@bigdata1:/root
例:
nc -lp 10000 > nc_test.txt
nc -w 1 hadoop102 < nc_test.txt
遠程登錄時默認使用的私鑰為~/.ssh/id_rsa
生成密鑰對
將公鑰發送到本機
將密鑰發送到需要登錄到本機的伺服器上
修改密鑰的許可權
遠程登陸
如果有多個節點需要遠程登陸,可以在.ssh下創建config並輸入
再次登陸
①正向代理:
②反向代理:
所謂「反向代理」就是讓遠端啟動埠,把遠端埠數據轉發到本地。
HostA 將自己可以訪問的 HostB:PortB 暴露給外網伺服器 HostC:PortC,在 HostA 上運行:
那麼鏈接 HostC:PortC 就相當於鏈接 HostB:PortB。
使用時需修改 HostC 的 /etc/ssh/sshd_config 的一條配置如下,不然啟動的進程監聽的ip地址為127.0.0.1,即只有本機可以訪問該埠。
相當於內網穿透,比如 HostA 和 HostB 是同一個內網下的兩台可以互相訪問的機器,HostC是外網跳板機,HostC不能訪問 HostA,但是 HostA 可以訪問 HostC。
那麼通過在內網 HostA 上運行 ssh -R 告訴 HostC,創建 PortC 埠監聽,把該埠所有數據轉發給我(HostA),我會再轉發給同一個內網下的 HostB:PortB。
同內網下的 HostA/HostB 也可以是同一台機器,換句話說就是 內網 HostA 把自己可以訪問的埠暴露給了外網 HostC。
例: 比如在我的內網機192.168.32.244上有一個RabbitMQ的客戶端,埠號為15672。現在我希望在外網上訪問固定ip的雲伺服器chenjie.asia的6009埠,通過跳板機192.168.32.243來轉發請求到192.168.32.244:15672,從而實現在外網訪問內網服務的功能,即內網穿透。
①在192.168.32.244上啟動RabbitMQ服務
②將chenjie.asia雲伺服器的私鑰復制到跳板機192.168.32.243的~/.ssh下,並重命名為id_rsa。通過如下命令看是否可以遠程登陸到雲服務,可以登陸則進行下一步。
③修改chenjie.asia伺服器的ssh配置文件 /etc/ssh/sshd_config ,允許其他節點訪問
然後重啟sshd服務
④在跳板機192.168.32.243啟動ssh反向代理
這個進程在關閉session時會停止,可以添加啟動參數 -CPfN
例:
以 root 身份執行的程序有了所有特權,這會帶來安全風險。Kernel 從 2.2 版本開始,提供了 Capabilities 功能,它把特權劃分成不同單元,可以只授權程序所需的許可權,而非所有特權。
例如:linux不允許非root賬號只用1024以下的埠,使用root啟動命令nginx,會導致nginx許可權過高太危險。所以用setcap命令
sudo setcap cap_net_bind_service=+eip /bigdata/nginx/sbin/nginx
正確的關機流程為 :sync > shutdown > reboot > halt
(1)sync (功能描述:將數據由內存同步到硬碟中)
(2)halt (功能描述:關閉系統,等同於shutdown -h now 和 poweroff)
(3)reboot (功能描述:就是重啟,等同於 shutdown -r now)
(4)shutdown [選項] [時間]
安裝
yum install -y telnet-server telnet
ls -i 顯示文件的節點號
find -inum 節點號 -delete 刪除指定的節點即可刪除對應的文件
啟動一個服務: systemctl start postfix.service
關閉一個服務: systemctl stop postfix.service
重啟一個服務: systemctl restart postfix.service
顯示一個服務的狀態: systemctl status postfix.service
在開機時啟用一個服務: systemctl enable postfix.service
在開機時禁用一個服務: systemctl disable postfix.service
註:在enable的時候會列印出來該啟動文件的位置
列出所有已經安裝的服務及狀態:
systemctl list-units
systemctl list-unit-files
查看服務列表狀態:
systemctl list-units --type=service
查看服務是否開機啟動: systemctl is-enabled postfix.service
查看已啟動的服務列表: systemctl list-unit-files | grep enabled
查看啟動失敗的服務列表: systemctl --failed
查看服務日誌: journalctl -u postfix -n 10 -f
命令類似systemctl,用於操作native service。
添加腳本為服務(需要指定啟動級別和優先順序): chkconfig --add [腳本]
刪除服務: chkconfig --del [腳本]
單獨查看某一服務是否開機啟動的命令 : chkconfig --list [服務名]
單獨開啟某一服務的命令 : chkconfig [服務名] on
單獨關閉某一服務的命令: chkconfig [服務名] off
查看某一服務的狀態: /etc/intd.d/[服務名] status
啟用服務就是在當前"runlevel"的配置文件目錄 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 裡面對應服務配置文件的軟鏈接;禁用服務就是刪除此軟鏈接,添加服務就是添加軟連接。
su 用戶名稱 (切換用戶,只能獲得用戶的執行許可權,不能獲得環境變數)
su - 用戶名稱 (切換到用戶並獲得該用戶的環境變數及執行許可權)
echo $PATH 列印環境變數
設置普通用戶具有root許可權
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下 所示:
或者配置成採用sudo命令時,不需要輸入密碼
修改完畢,現在可以用hxr 帳號登錄,然後用命令 sudo ,即可獲得root許可權進行操作。
以azkaban用戶執行引號中的命令
gpasswd -d [username] [groupname] 將用戶從組中刪除
gpasswd -a [username] [groupname] 將用戶加入到組中
用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對 /etc/group文件的更新。
0首位表示類型 - 代表文件 d 代表目錄 l 鏈接文檔(link file)
三種特殊許可權suid、sgid、sticky
例子:
變更文件許可權方式一
例:chmod u-x,o+x houge.txt
變更文件許可權方式二
例:chmod -R 777 /mnt/ 修改整個文件夾的文件許可權
在linux中創建文件或者目錄會有一個默認許可權的,這個默認許可權是由umask決定的(默認為0022)。umask設置的是許可權的「補碼」,而我們常用chmod設置的是文件許可權碼。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中設置umask值。
umask計算
如root用戶的默認umask為0022(第一個0 代表特殊許可權位,這里先不考慮),創建的文件默認許可權是644(即默認666掩上umask的022),創建的目錄是755(即默認777掩上umask的022)。
對於root用戶的umask=022這個來說,777許可權二進制碼就是(111)(111)(111),022許可權二進制碼為(000)(010)(010)。
上面就是一個umask的正常計算過程,但是這樣實在是太麻煩了。我們使用如下的簡單的方法快速計算。
上面的這個方法計算是非常方便的, 為何得到奇數要+1呢?
文件的最大許可權是666,都是偶數,你得到奇數,說明你的umask有奇數啊,讀為4,寫為2,都是偶數,說明你有執行許可權的。
就按照上面的umask=023為例,在計算其他用戶許可權的時候6-3=3 ,6是讀寫,3是寫和執行,其實應該是讀寫許可權減去讀許可權的得到寫許可權的,相當於我們多減去了一個執行許可權。所以結果加1。
umask修改
如果想單獨修改某個文件夾的新建文件的許可權,可以使用setfacl命令。
例:遞歸改變文件所有者和所有組 chown -R hxr:hxr /mnt
例:
㈧ Linux文件比較命令的diff命令
1>diff命令的功能
linux中diff命令的功能為逐行比較兩個文本文件,列出其不同之處。它對給出的文件進行系統的檢查,並顯示出兩個文件中所有不同的行,不要求事先對文件進行排序。
2>語法
diff
[options]
file1
file2
該命令告訴用戶,為了使兩個文件file1和file2一致,需要修改它們的哪些行。如果用」-」表示file1或file2,則表示標准輸入。如果file1或file2是目錄,那麼diff將使用該目錄中的同名文件進行比較。
3>[options]主要參數
-a:將所有文件當作文本文件來處理。
-b或–ignore-space-change
忽略空格造成的不同。
-b或–ignore-blank-lines
忽略空行造成的不同。
-c:使用綱要輸出格式。
-h:利用試探法加速對大文件的搜索。
-i:忽略大小寫的變化。
-n
–rcs:輸出rcs格式。
-n或–new-file
在比較目錄時,若文件a僅出現在某個目錄中,會顯示:only
in目錄;文件a若使用-n參數,則diff會將文件a與一個空白的文件比較。
-r或–recursive
比較子目錄中的文件。
-u,-u<列數>或–unified=<列數>
以合並的方式來顯示文件內容的不同。
4>使用方法的實例說明
例如:
diff
/usr/xu
mine
把目錄/usr/xu
中名為mine的文件與當前目錄中的mine文件進行比較。
通常輸出由下述形式的行組成:
n1
a
n3,n4
n1,n2
d
n3
n1,n2
c
n3,n4
這些行類似ed命令把filel轉換成file2。字母(a、d和c)之前的行號(n1,n2)是針對file1的,其後面的行號(n3,n4)是針對file2的。字母a、d和c分別表示附加、刪除和修改操作。
在上述形式的每一行的後面跟隨受到影響的若干行,以」<」打頭的行屬於第一個文件,以」>」打頭的行屬於第二個文件。
diff能區別塊和字元設備文件以及fifo(管道文件),不會把它們與普通文件進行比較。
如果file1和file2都是目錄,則diff會產生很多信息。
5>diff最常用的功能
diff有很多功能平時我們不常用到,最常用的功能莫過於生成patch文件了:
diff
-urn
old/
new/
>
mysoft.patch
參數
-u
表示使用
unified
格式,-r
表示比較目錄,-n
表示將不存在的文件當作空文件處理,這樣新添加的文件也會出現在patch文件中。
然後在需要應用patch的地方使用下述命令即可:
patch
-p0
<
mysoft.patch
diff的
-y
命令(長格式為
–side-by-side)可以將屏幕分成左右兩部分,來比較兩個文件之間的差異。許多圖形化的比較工具都有這個功能,但如果只能使用命令行,這個參數就相當有用了。如果要改變左右各部分的寬度,可以通過
-w
(–width)參數來指定。
–ignore-blank-lines
參數可以不檢查空白行。這樣dos格式和unix格式的文件互相比較時,就不至於因為換行符不一致而出現大量的差異。
㈨ Linux中 service 和 systemctl 命令比較
本文將比較 Linux 中 service 和 systemctl 命令,先分別簡單介紹這兩個命令的基礎用法,然後進行比較。
從 CentOS 7.x 開始,CentOS 開始使用 systemd 服務來代替 service服務(daemon),原來管理系統啟動和管理系統服務的相關命令全部由 systemctl命令來代替。
service命令是Redhat Linux兼容的發行版中用來控制系統服務的實用工具,它以啟動、停止、重新啟動和關閉系統服務,還可以顯示所有系統服務的當前狀態。
語法: service option > | --status-all | [ service_name [ command | --full-restart ] ]
option 的值:
可以理解成 service 就是init.d 的一種實現方式。
所以這兩者啟動方式(或者是停止、重啟)並沒有什麼區別。
這種方式有如下缺點:
查看所有的服務狀態:
顯示系統當前的clickhouse進程狀態,可以看到pid是一致的。
在較新的linux系統上,都使用systemd 取代了init,成為系統的第一個進程(PID 等於 1),其他進程都是它的子進程。systemd為系統啟動和管理提供了完整的解決方案。它提供了一組命令。字母d是守護進程(daemon)的縮寫。
查看systemd 的版本:
列出所有服務(包括啟用和禁用):
systemd 的優點是功能強大,使用方便;缺點是體系龐大,非常復雜。事實上,現在還有很多人反對使用 systemd,理由就是它過於復雜,與操作系統的其他部分強耦合,違反 「keep simple, keep stupid」 的Unix 哲學。
下面是service和systemctl命令格式對比:
㈩ Linux文件比較命令的Comm命令
如果想對兩個有序的文件進行比較,可以使用comm命令。
語法:comm [- 123 ] file1 file2
說明:該命令是對兩個已經排好序的文件進行比較。其中file1和file2是已排序的文件。comm讀取這兩個文件,然後生成三列輸出:僅在file1中出現的行;僅在file2中出現的行;在兩個文件中都存在的行。如果文件名用「- 」,則表示從標准輸入讀取。
comm -1 不顯示只出現在第一個文件的行。
comm -2 不顯示只出現在第二個文件的行。
comm -3 不顯示同時出現在兩個文件的行。
comm file1 file2 顯示三列,第一列代表只出現在file1的行,第二列代表只出現在file2的行,第三列代表倆個文件同時出現的行
comm -12 顯示兩個文件同時出現的行 也就是交集
comm -13 顯示只出現在第二個文件的行
comm -23 顯示只出現在第一個文件的行
例如:假設要對文件myfile1和myfile2進行比較
$ cat myfile1
main( )
{
float a,b, i, j ,z ;
a=i=10 ; b=j=5 ;
z= i + j ;
printf(「z=%d\\n」,z) ;
}
$ cat myfile2
#include< stdio.h >
main( )
{
float i, j ,z ;
i=10 ; j=5 ;
z= i + j ;
printf(「z=%f\\n」,z) ;
}
$ comm - 12 myfile1 myfile2
main( )
{
z= i + j ;
}
就只顯示文件myfile1和myfile2中共有的行。