柚子快報激活碼778899分享:【Linux】常見指令(下)
柚子快報激活碼778899分享:【Linux】常見指令(下)
新建會話?
? ? ? ? 本文中所有的指令都會在普通用戶中進(jìn)行介紹,而非root賬號,這是由于root賬戶在進(jìn)行部分指令的同時并不會出現(xiàn)警告,影響操作。在root賬戶下新建普通用戶的方法在前文中已經(jīng)有展示,這里不做介紹。
? ? ? ? 這里首先會介紹如何在xshell下新建會話以便快速登陸。
剛打開xshell的時候,會彈出會話窗口,這里就可以點擊連接進(jìn)入普通用戶賬戶,而非輸入指令。
那么如何創(chuàng)建這樣的會話呢?
點擊新建按鈕,修改名稱和主機即可,說明可寫可不寫。
再次打開xshell的時候,就會在彈出的會話窗口中顯示。
初次點擊的時候,會顯示登陸的用戶名,也就是輸入你使用root賬號新建的普通用戶名稱(記住用戶名可以下次直接登陸)。
登陸時直接輸入密碼即可。
時間相關(guān)的指令——date顯示
? ? ? ? 在計算機事件中,需要有日志的概念,類似于于在寫日記本的時候需要記錄對應(yīng)的時間一樣,程序每運行到自己的每一個關(guān)鍵時刻,都要自己打日志。
日志會以行的形式打印到文件中(日志文件);
日志內(nèi)容:時間,日志等級,日志信息,其他信息?
date指的格式顯示時間:date +%Y:%m:%d
date用法:date[OPTION]...[+FORMAT]
1.在顯示方面,使用者可以設(shè)定想要顯示的格式,格式設(shè)定為一個加號后接數(shù)個標(biāo)記,其中常用的標(biāo)記列表如下:
%H:小時(00..23)%M:分鐘(00..59)%S:秒(00..61)%X:相當(dāng)于%H:%M:%S%d:日(00..12)%m:月份(01..12)%Y:完整年份(0000..9999)%F:相當(dāng)于%Y-%m-%d
2.在設(shè)定時間方面
date -s // 設(shè)置當(dāng)前時間,只有root權(quán)限才能設(shè)置,其他只能查看date -s 20241014?// 設(shè)置成 20241014,這樣會把具體時間設(shè)置成空00:00:00date -s 01:01:01 // 設(shè)置具體時間,不會對日期做更改date -s "01:01:01?2024-10-14" // 這樣可以設(shè)置全部時間date -s "01:01:01?20241014" // 這樣可以設(shè)置全部時間date -s "2024-10-14 01:01:01" // 這樣可以設(shè)置全部時間date -s "20241014 01:01:01" // 這樣可以設(shè)置全部時間
3.時間戳
時間——>時間戳:date +%s
時間戳——>時間:date -d@1508749502
時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù)?[4]。時間戳是使用數(shù)字簽名技術(shù)產(chǎn)生的數(shù)據(jù),簽名的對象包括了原始文件信息、簽名參數(shù)、簽名時間等信息。時間戳系統(tǒng)用來產(chǎn)生和管理時間戳,對簽名對象進(jìn)行數(shù)字簽名產(chǎn)生時間戳,以證明原始文件在簽名時間之前已經(jīng)存在。
?
多次打印時間戳,可以發(fā)現(xiàn)時間戳是在一直變化著的。這個時間戳可以算是計算機規(guī)定的一個時間,這是由于全球維度的不同,時間是對不上的,對于計算機行業(yè)來說,需要有一個標(biāo)準(zhǔn)來統(tǒng)一時間。
?
將此刻的時間戳換成時間,這與當(dāng)?shù)貢r間是可以對的上的。
我們試著打印時間戳為0時的時間,發(fā)現(xiàn)是1970年的1月1日的早上8點,這是由于此時已經(jīng)換成了北京時間(東八區(qū))。
那么這個時間戳這個時間變量會不會溢出呢???
答案是會的。
cal指令
cal命令可以用來顯示公歷(陽歷)日歷。公歷是現(xiàn)在國際通用的歷法,又稱格列歷,通稱陽歷。“陽歷”又名“太陽歷”,系以地球繞行太陽一周為一年,為西方各國所通用,故又名“西歷”。
命令格式:cal [參數(shù)][月份][年份]
功能:用于查看日歷等時間信息,如只有一個參數(shù),則表示年份(1-9999),如有倆個參數(shù),則表示月份和年份
常用選項:
-3 顯示系統(tǒng)前一個月,當(dāng)前月,下一個月的月歷-j 顯示在當(dāng)年中的第幾天(一年日期按天算,從1月1號算起,默認(rèn)顯示當(dāng)前月再一年中的天數(shù))-y 顯示當(dāng)前年份的日歷。
下面是一些案例展示:
在聽課的時候聽老師講過這樣的一個例子:現(xiàn)在大家查看日歷都是在手機上直接點開日歷app直接看的,以前不一樣,以前用的是老黃歷。?
就是這種可以一張一張手撕下來的,這種日歷可以看黃道吉日。
現(xiàn)在條件好了,家里可以不用買這種老黃歷了,可以讓大家的爺爺奶奶學(xué)一學(xué)Linux,直接輸上一行指令,就可以-查看日歷了(哈哈哈哈哈)
find指令(重要)
find指令就像其漢語意思一樣,可以用于查找。
Linux下find命令在目錄結(jié)構(gòu)中搜索文件,并執(zhí)行指定的操作。Linux下find命令提供了相當(dāng)多的查找條件,功能很強大。由于find具有強大的功能,所以它的選項也很多,其中大部分選項都值得學(xué)習(xí)了解。即使系統(tǒng)中含有網(wǎng)絡(luò)文件系統(tǒng)(NFS),find命令在該文件系統(tǒng)中同樣有效,具有相應(yīng)的權(quán)限。在運行一個非常消耗資源的find命令時,很多人都傾向于把它放在后臺執(zhí)行,因為遍歷一個大的文件系統(tǒng)會花費很長的時間(這里指的是30G字節(jié)以上的文件系統(tǒng))
語法:find pathname -options
功能:用于在文件樹種查找文件,并作出相應(yīng)的處理(可能訪問磁盤)
常用選項:
-name 按照文件名查找文件
find ~ -name test.c?
在特定路徑下尋找特定文件。
這里find的是在全部文件下,去查找text.c文件
(需要注意的是,由于這里是普通用戶,所以只能在普通用戶所管轄的范圍內(nèi)查找文件)
find /ure/ -name pwd輸入這條指令的時候,可能會出現(xiàn)報錯Permission denied,這是因為普通用戶只能在自己/home/名字,家目錄下進(jìn)行查找,find可以在指定的路徑下進(jìn)行文件的搜索——真的是在文件磁盤中搜索。
which指令和whereis指令也可以進(jìn)行查找:
which可以在指令路徑下,/urs/bin/搜索指令文件
whereis 是在系統(tǒng)特定的路徑下查找,既可以找到可執(zhí)行程序,又可以找到手冊,安裝包,壓縮包這些。
grep指令
語法:grep[選項] 搜尋字符串文件
功能:在文件中搜索字符串,講找到的行打印出來
常用選項:
-i:忽略大小寫的不同,所以大小寫視為相同-n:順便輸出行號-v:反向選擇,即顯示除沒有‘搜尋字符串’內(nèi)容的那一行。
輸入shell腳本:
cnt=0; while [ $cnt -le 100000 ]; do echo "hello Linux $cnt"; let cnt++; done >> log.txt
這個shell腳本是將hello Linux 1到100000的數(shù)字循環(huán)打印到log.txt文件中去。
該指令可以將包含9999的行打印出來,也就是說grep是一個行文本過濾工具。
>log.txt可以清空log.txt(前文講過)
nano指令可以在文本文件中編寫內(nèi)容。我們將上述內(nèi)容編寫到og.txt文件中,以便后面學(xué)習(xí)grep指令。
grep選項舉例:
grep也可以和管道(以前講過)一起結(jié)合使用。
這句指令的意思就是,將log.txt里面的內(nèi)容輸出到管道里面,grep指令從管道里面過濾出來含有字符串blog的行。
zip/unzip指令
語法:zip壓縮文件.zip目錄或文件
功能:將目錄或文件壓縮成zip格式
常規(guī)選項:
-r 遞歸處理,將指定目錄下的所有文件和子目錄一并處理
一個問題,為什么需要打包和壓縮呢?
? ? ? ? 這個問題對于這個時間段的我們來說,可以說是不陌生了,打包壓縮嘛!就是將文件放在一起,將內(nèi)存縮小。
能被打包壓縮的,一定是一個整體,由多個文件變成一個文件,不容易造成文件缺失。打包壓縮,體積變小——下載時間變短,存儲占據(jù)的控件變小。
如果出現(xiàn)上面這種情況,可能沒有安裝zip/unzip,需要根據(jù)自己的操作系統(tǒng)進(jìn)行安裝,這里只有root用戶才可以進(jìn)行安裝。
如上圖所示,在目錄d1下面有多個目錄和文本文件,可以將這些文件打包壓縮。
通過d1進(jìn)行打包壓縮,將d1.zip文件移到d2目錄下面,然后在d2目錄下面繼續(xù)解壓,解壓后發(fā)現(xiàn),!what!東西呢??只有一個d1目錄死皮賴臉的跟過來了,d1下面的目錄和文件都哪里去了??
所以,需要添加選項才能將這些目錄和文件一起捆綁過來,我們重新寫幾條指令試試。
這里加上-r選項就可以將文件中的所有內(nèi)容都打包帶走了。
上面說的打包和壓縮,其中壓縮表示清楚了,但是上面的打包好像意識是將文件放在一個目錄下面,這好像不是打包吧。
這里我們將.zip文件后面的文件添加了很多,并且都放在d1.zip壓縮文件下面,這樣就有點打包的意思了。
tar指令(重要)
tar指令可以打包/解壓,不打開它,直接查看內(nèi)容。
ter [-cxtzjvf]文件與目錄 ...參數(shù):
-c:建立一個壓縮文件的參數(shù)指令(create的意思)-x:解開一個壓縮文件的參數(shù)指令-t:查看tarfile里面的文件-z:是否同時具有g(shù)zip的屬性?即是否需要gzip壓縮?-j:是否同時具有bzip2的屬性?即是否需要用bzip2壓縮?-v:壓縮的過程中顯示文件!這個比較常用,但是不建議用在背景執(zhí)行過程中-f:使用檔名,請留意,在f之后要立即接檔名,不要加參數(shù)-C:解壓到指定目錄
在linux下,常見的后綴名有如下:?
tar指令也是可以進(jìn)行壓縮和解壓的。
這里的選項-czf的意思是:
使用tzf選項可以預(yù)覽已經(jīng)壓縮的文件。?
使用xzf可以進(jìn)行解壓縮包
注意:這里的.tgz是壓縮包的縮寫,正常寫法是.tar.gz
?tar -xzf code.tgz -c ..帶上-C選項之后可以將壓縮包解壓到指定目錄下面。?
bc指令
bc命令可以很方便的進(jìn)行浮點運算。
bc指令相當(dāng)于linux下的計算器
也可以與管道進(jìn)行結(jié)合使用
uname -r指令
語法:uname [選項]
功能:uname用來獲取電腦和操作系統(tǒng)的相關(guān)信息。
補充說明:uname可以顯示Linux主機所用的操作系統(tǒng)的版本,硬件的名稱等基本信息。
常用選項:
-a或-all詳細(xì)輸出所有信息,依次為內(nèi)核名稱,主機名,內(nèi)核版本號,硬件名,處理器類型,硬件平臺類型,操作系統(tǒng)名稱。
重要的幾個熱鍵
[Tab]按鍵——具有【命令補全】和檔案補齊的功能[Ctrl]按鍵+r——歷史命令搜索
可以使用ctrl+r回看歷史命令,說明Linux下記錄了歷史命令。
可以使用history指令來查看歷史命令列表。
一般來講,Linux會記錄默認(rèn)最新的1000條指令,這1000條是可以修改的。
[Ctrl]-c按鍵——讓當(dāng)前的程序【停止】[Ctrl]-d按鍵——通常代表著:【鍵盤輸入結(jié)束(End Of File,EOF 即 End OfInput)】的意思;另外,他也可以用來取代exit[shift]-insert按鍵——粘貼[Ctrl]-insert按鍵——復(fù)制
關(guān)機指令
語法:shutdown [選項]
常見選項:
-h:將系統(tǒng)的服務(wù)停止后,立即關(guān)機-r:在將系統(tǒng)的服務(wù)停掉之后就重新啟動-t sec:-t后面加描述,即【過幾秒后關(guān)機】
shutdown -s -t 200
想嘗試的可以試一試,這里由于忙著趕稿子~~嗚嗚嗚~~就不測試了
其他擴展命令:
安裝和登陸命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、In;系統(tǒng)管理相關(guān)命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;網(wǎng)絡(luò)操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup;系統(tǒng)安全相關(guān)命令:passwd、su、umask、chgrp、chmod、chattr、sudo ps、who;其他命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode;
指令的運行原理
以本人為例:
dabai:用戶名@... ... ... :主機名~/blog4/d2?:當(dāng)前目錄$ :命令行提示符
這些都被統(tǒng)稱為bash命令行。
????????Linux嚴(yán)格意義上說是一個操作系統(tǒng),我們稱之為”核心(kernel)“,但我們一般用戶,不能直接使用kernel。而是通過kernel的”外殼“程序,也就是所謂的shell,來與kernel溝通。
這是為什么呢?為什么不能直接使用kernel?
輸入指令的過程,本質(zhì)就是輸入字符串。
舉個例子:
????????張三是一個比較靦腆害羞的男孩(就像我一樣~),上完大學(xué)四年,技術(shù)沒學(xué)多少,對象也沒找到(就像我一樣~)。
????????回到家,他老爹也愁的很,說:”你看看你,你一天天不好好學(xué)習(xí),工作也沒落實下來,大學(xué)四年嘴皮子也沒有練出來“。張三不敢找對象,他老爹看見他就想錘他,那咋辦?只能找村里的王婆來給說說。
????????給王婆說的時候,張三說的可積極了(不知道還以為看上王婆了),他說他就喜歡小學(xué)班上的如花,就喜歡如花那樣的。
? ? ? ? 王婆聽到這就懂了張三的意思了,馬上去看找村里如花去說媒去了。
【看到這里,王婆就是命令行解釋器,張三就是用戶,如花就是操作系統(tǒng),張三不能直接找如花,需要王婆這個中間媒介來介紹】
? ? ? ? 王婆找到如花家里,看到如花正和村長的兒子李四手拉著手,卿卿我我。王婆看了看,回去就給張三說,哎呀,這個如花呀,這我感覺呀,你們呀,不是很配,我感覺如花配不上你,王婆我呀重新給你找一個更好的。
【這里,張三不能直接找操作系統(tǒng)就是為了保護(hù)操作系統(tǒng)】
從技術(shù)角度,Shell最簡單的定義:命令行解釋器(command Interpreter)主要包含:
將使用者的命令翻譯給核心(kernel)處理。同時,將核心的處理結(jié)果翻譯給使用者。
? ? ? ? 指令的本質(zhì)就是編譯好的程序和腳本,一定會在系統(tǒng)的特定路徑下存放。我們所有的指令最終都要在操作系統(tǒng)內(nèi)部運行,但是直接使用操作系統(tǒng)難度比較高,我們用戶不能直接和操作系統(tǒng)打交道。
????????對比Windows Gui,我們操作Windows不是直接操作Windows內(nèi)核,而是通過圖形接口,進(jìn)行點擊操作從而完成我們的操作。
Shell對于Linux,有相同的作用,主要是對我們的指令進(jìn)行解析,解析指令給Linux內(nèi)核。反饋結(jié)果在通過內(nèi)核運行出結(jié)果,通過shell解析給用戶。
指令存在的意義:
進(jìn)行命令行解釋保護(hù)操作系統(tǒng),對于用戶的非法請求,直接攔截
bash/sh與shell的區(qū)別:
bash:王婆sh:李婆shell:媒婆
柚子快報激活碼778899分享:【Linux】常見指令(下)
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。