Linux是一個命令行組成的操作系統,精髓在命令行,無論圖形界面發展到什麼水平這個原理都是無法改變的,Linux命令有許多強大功能:從簡單的磁碟操作、文件存取以及復雜的多媒體圖像和媒體文件都會使用到命令。
Linux常用的命令有哪些?老男孩教育為大家總結一下:
安裝和登錄命令:login 、shutdown 、halt 、reboot 、mount 、umount 、chsh
文件處理命令:file 、mkdir 、grep 、dd 、find 、mv 、ls 、diff 、cat 、ln
網路操作命令:ifconfig 、ip 、ping 、netstat 、telnet 、ftp 、route 、rlogin rcp 、finger
、mail 、nslookup
系統安全相關命令:passwd 、su 、umask 、chgrp 、chmod 、chown 、chattr、sudo、pswho
系統管理相關命令:df 、top 、free 、quota 、at 、lp 、 adser 、groupadd kill 、 crontab 、tar、unzip 、gunzip 、last
『貳』 linux運維面試常見問題
linux運維面試常見問題
這里給大家整理了一些Linux系統運維相關的面試題,有些問題沒有標准答案,如下是我給大家整理的linux運維面試常見問題,希望對大家有所作用。
一、Linux操作系統知識
1.常見的Linux發行版本都有什麼?你最擅長哪一個?它的官網網站是什麼?說明你擅長哪一塊?
2.Linux開機啟動流程詳細步驟是什麼?系統安裝完,忘記密碼如何破解?
3.企業中Linux伺服器系統分區標準是什麼?(以硬碟為300G,內存16G為例)
4.某一天突然發現Linux系統文件只讀,該怎麼辦呢?完整操作步驟。
5.安裝一台系統使用DVD光碟安裝,如何安裝50台Linux系統如何安裝呢?思考一下。
6.用虛擬機安裝了一台Linux系統,突然想克隆一台伺服器,克隆後發現無法上網,如何解決?
7.Linux網卡配置文件路徑是什麼?要使伺服器上外網,必須滿足的條件有哪些?需要配置什麼?
8.一般可以使用什麼軟體遠程linux伺服器?通過什麼上傳文件和下載文件?
9./mnt目錄主要用於什麼?/root目錄跟root用戶有什麼關系?/根目錄與/boot目錄有什麼聯系?
10.某一天誤操作,執行了rm -rf * ,會有哪些情況發生?請舉例。
二、Linux命令及文件操作
1.在/tmp/目錄下創建test.txt文件,內容為: Hello,World! ,用一個命令寫出來。
2.給test.txt文件除所有者之外增加執行許可權,最終以數字寫出文件的許可權。
3.用vi命令編輯test.txt,如何跳轉到末行,首行,行首、行末,如何在游標行下一行插入,如何復制5行,刪除10行,查找jingfeng的字元、把jingfeng替換為jfe.net
4.查找linux系統下以txt結尾,30天沒有修改的文件大小大於20K同時具有執行許可權的文件並備份到/data/backup/目錄下。
5.當前test.txt所屬的用戶為root,組為abc,請將test.txt使擁有者為abc,組為root,寫出命令。
6.如何修改Linux啟動級別為字元模式並永久生效,如何臨時、永久關閉selinux及防火牆,請分別寫出操作方法。
7.每次開機在/tmp目錄下創建一個當天的日期文件夾(提示:當前日期表示的方法為:`date +%Y%m%d`)
8.如何查看文件內容,命令有哪些?查看文件第1行到3行,查看文件最後一行。
9.查看linux伺服器IP的命令,同時只顯示包含ip所在的行列印出來。
10.將普通用戶test加入root組的命令是?
三、Linux磁碟及軟體管理操作
1.如何添加一塊新的50G硬碟到linux伺服器系統作為單獨的分區,並正在使用?需要哪些操作步驟?
2.有個金士頓U盤,需要往伺服器/var/www/html/目錄下上傳一個index.html文件,如何操作並完成。
3.有一塊移動硬碟,上面有300G數據,如何快速cp到linux伺服器?
4.光碟裡面有一個httpd-2.2.15.xx.rpm包,如何掛載並安裝呢?
5.使用rpm命令安裝、卸載、刪除、更新ntp-0.7.12.x86_64.rpm這個軟包。
6./var/www/html/是網站的發布目錄,如何每天凌晨0點30對其進行自動備份,寫出操作步驟?
7.使用tar命令打包並壓縮/root目錄,然後移動到/tmp下,將其許可權設置其他人只讀。
8.Yum命令與rpm命令的區別?如何使用rpm安裝一個有依賴的包?
9.在這個月內,每天的早上 6 點到 12 點中,每隔 2 小時創建一個test.txt文件,內容為ok,如何實現?
10.將/usr/local/test目錄下大於100K 的文件轉移到/tmp 目錄下。
11.簡述 raid0 raid1 raid5三種工作模式的工作原理及特點。
12.如何查看佔用埠 8080 的進程。
四、Linux服務配置及管理
1.請寫出 apache2.X 版本的兩種工作模式,以及各自工作原理。如何查看apache 當前所支持的'模塊,並且查看是工作在哪種模式下?
2.Linux下nfs在客戶端無法掛載,請寫出排查步驟?
3.Linux下已經部署了dhcp伺服器,客戶端無法獲取的IP,如何解決?
4.常見的FTP軟體有哪些?Linux最常用的是?如何共享一個資源讓他人使用用戶名和密碼訪問?
5.如何禁止FTP使用匿名用戶登錄?命令行如何訪問ftp伺服器?
6.ApacheWEB伺服器的發布目錄在哪裡?
7.ApacheWEB伺服器有幾種工作模式,每種模式的簡單區別?
8.MySQL伺服器的用途是?Apache和mysql可以安裝在一台機器嗎?如何查看apache和mysql埠和進程?
9.如何在虛擬機上面部署4個網站,訪問的域名分別為www.a1.com test.a1.com www.a2.com test.a2.com?
10.假設 Apache 產生的日誌文件名為access_log,在 apache 正在運行時,執行命令 mv access_log access_log.bak,執行完後,請問新的 apache的日誌會列印到哪裡,為什麼?
11.我們都知道 FTP 協議有兩種工作模式,說說它們的大概的一個工作流程?
12.Linux內核引導時,從哪個文件中讀取要載入的文件系統。
13.寫出下面服務的常用埠ftp http dns snmp pop3、dhcp、nfs、mysql、samba等服務。
14.Mysql創建資料庫的命令,創建表的命令,插入語句的命令?
15.Mysql備份命令?Mysql如何給root用戶對jfe授權訪問,密碼為jfe.net,請寫出命令?
16.Mysql忘記密碼該如何操作呢?
17.Linux運維工程師都需要具備哪些技能和職業品質?
;『叄』 linux常用命令有哪些
linux 常用命令有:
pwd 命令
使用 pwd 命令找出您所在的當前工作目錄(文件夾)的路徑。該命令將返回一個絕對(完整)路徑,該路徑基本上是所有以 / 開頭的目錄的路徑。絕對路徑的一個示例是 /home/username。
cd 命令
要瀏覽 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 命令使用以下變體:ls -R 還將列出子目錄中的所有文件 ls -a 將顯示隱藏的文件 ls -al 將列出文件和目錄以及詳細信息,例如許可權,大小,所有者等。
cat 命令
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 命令將文件從當前目錄復制到另一個目錄。例如,命令 cp scenery.jpg/home /username/ Pictures 將在您的 Pictures 目錄中創建一個 Scene.jpg 副本(來自當前目錄)。
mv 命令
mv 命令的主要用途是移動文件,盡管它也可以用於重命名文件。mv 中的參數類似於 cp 命令。您需要輸入 mv,文件名和目標目錄。例如:mv file.txt/home /username/ Documents。
mkdir 命令
使用 mkdir 命令創建一個新目錄 - 如果鍵入 mkdir Music,它將創建一個名為 Music 的目錄。還有一些額外的 mkdir 命令:要在另一個目錄中生成新目錄,請使用此 Linux 基本命令 mkdir Music / Newfile 使用 p(父級)選項在兩個現有目錄之間創建一個目錄。例如,mkdir -p Music / 2022 / Newfile 將創建新的 「2022」 文件。
rmdir 命令
如果需要刪除目錄,請使用 rmdir 命令。但是,rmdir 僅允許您刪除空目錄。
rm 命令
該 RM 命令用於刪除目錄以及其中的內容。如果只想刪除目錄(作為 rmdir 的替代方法),請使用 rm -r。注意:使用此命令時要格外小心,並仔細檢查您所在的目錄。這將刪除所有內容,並且沒有撤消操作。
touch 命令
該觸摸命令允許您創建通過 Linux 命令行新的空白文件。例如,輸入 touch /home/username/Documents/Web.html 在 Documents 目錄下創建一個名為 Web 的 HTML 文件。
locate 命令
您可以使用此命令來定位文件,就像 Windows 中的搜索命令一樣。此外,將 - i 參數與該命令一起使用將使其不區分大小寫,因此即使您不記得其確切名稱,也可以搜索文件。要搜索包含兩個或多個單詞的文件,請使用星號(*)。例如,locate -i school * note 命令將搜索包含單詞 「school」 和 「 note」 的任何文件,無論它是大寫還是小寫。
find 命令
在類似定位命令,使用 查找也搜索文件和目錄。區別在於,您可以使用 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。包含搜索到的單詞的行將被完整顯示。
sudo 命令
該命令是 「SuperUser Do」 的縮寫,使您能夠執行需要管理或超級用戶許可權的任務。但是,建議不要將此命令用於日常使用,因為如果您做錯了一些事情,很容易發生錯誤。
df 命令
使用 df 命令可獲取有關系統磁碟空間使用情況的報告,以百分比和 KB 表示。如果要以兆位元組為單位查看報告,請輸入 df -m。
命令
如果要檢查文件或目錄佔用了多少空間,答案是 (磁碟使用情況)命令。但是,磁碟使用情況摘要將顯示磁碟塊號,而不是通常的大小格式。如果要以位元組,千位元組和兆位元組為單位查看它,請在命令行中添加 - h 參數。
head 命令
所述頭命令用於查看任何文本文件的第一行。默認情況下,它將顯示前十行,但是您可以根據自己的喜好更改此數字。例如,如果只想顯示前五行,則鍵入 head -n 5 filename.ext。
tail 命令
該命令與 head 命令具有相似的功能,但是 tail 命令將顯示文本文件的最後十行,而不是顯示第一行。例如,tail -n filename.ext。
diff 命令
diff 命令是差異的縮寫,diff 命令逐行比較兩個文件的內容。分析文件後,它將輸出不匹配的行。程序員在需要進行程序更改時經常使用此命令,而不是重寫整個源代碼。此命令最簡單的形式是 diff file1.ext file2.ext
tar 命令
該 tar 命令是最常用的命令歸檔多個文件到一個壓縮包。類似於 zip 格式常見的 Linux 文件格式,壓縮是可選的。該命令具有很長的功能列表,非常復雜,例如將新文件添加到現有檔案中,列出檔案內容,從檔案中提取內容等等。查看一些實際示例,以了解有關其他功能的更多信息。
chmod 命令
chmod 是另一個 Linux 命令,用於更改文件和目錄的讀取,寫入和執行許可權。由於此命令相當復雜,因此您可以閱讀完整的教程以正確執行它。
chown 命令
在 Linux 中,所有文件均歸特定用戶所有。該 CHOWN 命令使您可以更改或文件的所有權轉讓給指定的用戶名。例如,chown linuxuser2 file.ext 將使 linuxuser2 成為 file.ext 的所有者。
Jobs 命令
jobs 命令將顯示所有當前作業及其狀態。作業基本上是由 Shell 啟動的進程。
kill 命令
如果您的程序無響應,則可以使用 kill 命令手動終止它。它將向運行異常的應用發送特定信號,並指示該應用自行終止。您總共可以使用 64 個信號,但是人們通常只使用兩個信號:SIGTERM(15) — 請求程序停止運行,並給它一些時間來保存其所有進度。如果在輸入 kill 命令時未指定信號,則將使用此信號。SIGKILL(9) - 強製程序立即停止。未保存的進度將丟失。除了知道信號之外,您還需要知道要殺死的程序的進程標識號(PID)。如果您不知道 PID,只需運行命令 ps ux。在知道您要使用什麼信號以及程序的 PID 之後,輸入以下語法:kill [signal option] PID.
ping 命令
使用 ping 命令檢查與伺服器的連接狀態。例如,只需輸入 ping google.com,該命令將檢查您是否能夠連接到 Google 並測量響應時間。
wget 命令
Linux 命令行非常有用 - 您甚至可以在 wget 命令的幫助下從 Internet 下載文件。為此,只需鍵入 wget,然後輸入下載鏈接即可。
uname 命令
該 UNAME 命令,短期對於 Unix 名,將列印您的 Linux 系統,如計算機名稱的詳細信息,操作系統,內核,等等。
top 命令
作為與 Windows 中的任務管理器等效的終端,top 命令將顯示正在運行的進程的列表以及每個進程使用的 CPU 數量。監視系統資源使用情況非常有用,尤其是知道哪個進程由於消耗太多資源而需要終止時。
history 命令
當您使用 Linux 一段時間後,您會很快注意到每天可以運行數百個命令。因此,如果您想查看之前輸入的命令,運行歷史記錄命令特別有用。
man 命令
對某些 Linux 命令的功能感到困惑嗎?不用擔心,您可以使用 man 命令從 Linux 的外殼程序中輕松地學習如何使用它們。例如,輸入 man tail 將顯示 tail 命令的手動指令。
echo 命令
此命令用於將一些數據移到文件中。例如,如果要將文本 「Hello,我的名字叫 John」 添加到名為 name.txt 的文件中,則可以鍵入 echo Hello, my name is John >> name.txt
zip,unzip 命令
使用 zip 命令將文件壓縮到 zip 歸檔文件中,然後使用 unzip 命令從 zip 歸檔文件中提取壓縮文件。
hostname 命令
如果您想知道主機 / 網路的名稱,只需鍵入 hostname。在末尾添加 - I 將顯示您的網路的 IP 地址。
useradd,userdel 命令
『肆』 如何才能學好linux
來自網路經驗針對如何才能學好linux的網路資料
目前比較學習Linux系統比較火的論壇
談談如何學習Linux操作系統,來自51cto網路資料,參考資料http://ixdba.blog.51cto.com/2895551/569329
真正想學好linux系統,還是要研究linux內核源碼。
為什麼這么說呢?
無論是使用linux裡面的一些命令,還是做linux應用層的開發,其實都是在使用linux內核的功能,但是其實你對linux底層的機制並不了解。長遠來看,其實對你技術的提升不大。
比如:
1. 你天天使用linux里的docker命令,那你知道docker是如何做到這種隔離性的嗎?
2. 你寫linux應用程序,會看到入口是main()函數。那麼,問題來了,為什麼是main()呢?為什麼不是hello()、不是fuck(),不是love()呢?
3. 你寫linux應用程序,也會用write()函數。這個write函數,我們代碼里並沒有實現它,那是誰實現了它?是c庫嗎?有可能。但是如果我是寫磁碟呢?c庫能做到嗎?
顯然不能!還是需要linux內核的功能。
4. 我們知道,在linux里,不同的應用程序可以共享一個動態鏈接庫,這又是怎麼做到的?不是說進程是隔離的嗎?為什麼對動態鏈接庫就不做隔離了?
5. linux應用層調用malloc是直接調用到內核嗎?
很顯然不是! c庫里也有內存管理,c庫里的內存管理單元會向內核批發內存(以page為單位),然後向應用程序零售內存(更小的粒度,可以是int大小,char大小等)
6. linux里進程和線程的共同點和差別究竟是什麼?不要拿教科書里那一套來說教,從代碼里得到的才是真知。
....
問題太多了,難道你不好奇嗎?
如果你不好奇,那很顯然你不太適合做技術,在技術這條路上可能走不遠,應該早日轉行;如果你很好奇,那就從現在開始,研究linux內核吧。
對於這個問題作為一個在linux下開發代碼十幾年的人,忍不住說幾句
任何一門技能的學習,想要學精學透,都要付出巨大的努力,尤其是一些專業性比較強的技能,更需要持之以恆長期不斷的投入大量的精力去學習和實踐,比如linux的學習,就是一門專業性非常強的技能,如何能學好這項技能。
如何才能學好那?
思想上的重視首先要明白自己為什麼要學習linux,學習linux能給自己帶來什麼,也就是說要知道學好linux對自己的重要性。當從思想上認識到一件事對自己的重要性有多大的時候,就會投入多大的精力去做這件事。
行動上的具體
有了思想上的重視,下面就需要具體的行動
(1)從基礎知識學習,打好基本功;任何一門新知識的學習,都要了解它的一些基本內容,基本概念等等,這樣就需要找一本介紹linux的專業書籍,先大致了解一下linux的相關內容,不至於後期學習linux的時候,連一些最基本的專業名稱都搞不懂。
(2)勤學多練,多多思考;linux是一門實用性非常強的技術,基礎理論的學習就是為了應用的更好實現,應用的實現反過來也會使理論的知識更加鞏固;找一套功能比較齊全的開發板,在開發板上實現各種功能,不斷地去實踐,帶著問題去尋找答案,當看著自己設計的功能在開發板上實現,會樂此不彼。
總之,學好 Linux 絕非一朝一夕之事,時間、知識的積累是必不可少的
Linux是一個很大的概念,建議先從簡單的入手,結合你的興趣、工作內容,在某一方面深挖,來張圖介紹Linux的學習升級。
初學入門Linux的話,可以先安裝一個桌面版的Linux虛擬機(Ubuntu、CentOS7等都行),以熟悉常用命令為主,待基本掌握環境後,可以研究一下 內核源碼 及 常用伺服器的搭建,加深理解和應用,下面我簡單介紹一下Linux的學習過程,感興趣的朋友可以嘗試一下:
01 安裝Linux這里建議安裝一個桌面版的Linux虛擬機(Ubuntu、CentOS7等發行版本都行),初學入門的話,如果對Linux完全不熟悉,安裝迷你版會非常不適應,許多功能和包都需要自己適配下載,可以先使用桌面版,不至於完全手足無措,後期熟悉環境後,可以使用無界面版,操作起來也會非常容易:
02 入門Linux
Linux虛擬機安裝好後,就是Linux基礎入門,這里網上教程和資料非常多,像慕課網、菜鳥教程、B站等都有大量優質視頻和文檔,當然,你也可以找一本專業的Linux書籍,一邊學習一邊練習,《 鳥哥的私房菜 》就非常不錯,覆蓋面比較廣,講解的也非常細致,常見的基礎命令和配置等都要熟悉掌握,這些是使用Linux的基礎:
03 深入Linux
Linux基礎熟悉後,就是深入Linux的過程,這里可以學習和研究的東西就非常多了,基礎的Linux應用,包括伺服器搭建、嵌入式開發等,都有非常光明的前景,當然,你也可以研究一下Linux內核,包括內存管理、進程管理、文件系統、驅動等,對於深入理解操作系統來說,可以說是大有裨益:
Linux畢竟只是個操作系統,只要掌握了正確的學習方法,不會有多難。今天咱們就好好看看,Linux到底怎麼學才是正確的學習方法。轉自——馬哥linux運維
一、從命令開始從基礎開始
常常有些朋友一接觸Linux 就是希望構架網站,根本沒有想到要先了解一下Linux 的基礎。這是相當困難的。雖然Linux桌面應用發展很快,但是命令在Linux中依然有很強的生命力。Linux是一個命令行組成的操作系統,精髓在命令行,無論圖形界面發展到什麼水平這個原理是不會變的,Linux命令有許多強大的功能:從簡單的磁碟操作、文件存取、到進行復雜的多媒體圖象和流媒體文件的製作。這里筆者把它們中比較重要的和使用頻率最多的命令,按照它們在系統中的作用分成幾個部分介紹給大家,通過這些基礎命令的學習我們可以進一步理解 Linux系統:
安裝和登錄命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh
文件處理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln
系統管理相關命令: df、 top、 free、 quota 、at、 lp、 adser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last
網路操作命令:ifconfig、 ip 、ping 、 netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup
系統安全相關命令: passwd 、su、 umask 、chgrp、 chmod、chown、chattr、sudo、 pswho
二、選擇一本好的Linux書籍
在各個Linux論壇中,我們看到最多的問題往往是某個新手,在安裝或使用linux的過程中遇到一個具體的問題就開始提問,很多都是重復性的問題,甚至有不少人連基本的問題描述都不是很清楚。這說明很多初學linux的人還沒有掌握基本功。怎樣才能快速提高掌握linux的基本功呢? 最有效的方法莫過於學習權威的linux工具書,工具書對於學習者而言是相當重要的。一本錯誤觀念的工具書卻會讓新手整個誤入歧途。目前國內關於 linux的書籍有很多不過精品的不多,筆者強烈建議閱讀《鳥哥的Linux私房菜 基礎篇》,現在出到了第三版。新手最好能夠買一本紙版書來仔細研讀,並認真做好學習筆記。當然,如果習慣看電子書,也可以從這里 下載 PDF電子書。
三 、養成在命令行下工作的習慣
一定要養成在命令行下工作的習慣,要知道X-window只是運行在命令行模式下的一個應用程序。在命令行下學習雖然一開始進度較慢,但是熟悉後,您未來的學習之路將是以指數增加的方式增長的。從網管員來說,命令行實際上就是規則,它總是有效的,同時也是靈活的。即使是通過一條緩慢的數據機線路,它也能操縱幾千公里以外地遠程系統。
四、用Unix思維思考Linux
由於Linux是參照Unix的思想來設計的,理解和掌握它就必須以Unix的思維來進行,而不能以Windows思維。不可否認,windows 在市場上的成功很大一部分在於技術思想的獨到之處。可是這個創新是在面對個人用戶的前提下進行的,而面對著企業級的服務應用,它還是有些力不從心。多年來在計算機操作系統領域一直是二者獨大:unix在伺服器領域,Windows在個人用戶領域。由此可見,用戶需求決定了所採用的操作系統。不管什麼原因,如果要學習Linux,那麼首先要將思維從Windows的「這個小河」 中拖出來,放入Unix的海洋。
五、學習shell
對於Shell(中文名稱殼),習慣Windows的讀者肯定是非常陌生的,因為Windows只有一個「Shell」(如果可以說是Shell的話),那就是Windows自己。用一句話容易理解的解釋就是,shell是用戶輸入命令與系統解釋命令之間的中介。最直觀的說法,一種Shell有一套自己的命令。舉一個容易理解的例子,Linux的標准Shel是Bash Shel;Solaris的shell是B shell;Linux的Shell是以命令行的方式表現出來的。讀者可能會不理解,Windows從命令行「進化」到了圖形界面,那麼Linux現在還使用命令行豈不是一種倒退?
當初我剛剛接觸Linux時就曾有過這種想法。可是後來發現,如果使用圖形界面,那麼分配給應用軟體的資源就少了,在價格昂貴的伺服器上,能夠以較低的硬體配置實現同樣的功能是非常重要的。
下面舉例說明,一台伺服器有1GB內存,假設其中512MB用於處理圖形界面,若要安裝一個需要784MB內存的資料庫軟體,惟一的辦法就是擴大內存。但是如果使用命令行,系統可能只需要64MB內存,其它的內存就可以供資料庫軟體使用了。使用命令行,不僅是內存,而且CPU及硬碟等資源的佔用都要節省很多。所以,作為伺服器使用命令行是優點而不是缺點。既然Shell有這么多優點,就必須要學習它。
簡單來說就是:興趣,堅持,方法。
興趣第一對於任何事情,興趣在很大程度上會影響你做這件事的結果。去做一件自己很感興趣的事情,和做一件自己本來毫無興趣卻由於某種原因而不得不做的事情,其結果往往是天地之別。究其緣由,無非是對於自己感興趣的事情,是以一種享受其中樂趣的心態去做,在不自覺中就會投入更多的心思在上面,也會更加專注,更容易一直堅持下去。而對於毫無興趣的事情,往往是迫於某種壓力才不得不做,心裡或多或少會有一定排斥拒絕,甚至會有煎熬的感覺,其結果也可想而知。
對於程序開發,也是一樣的。工作中,同樣是程序員,卻經常會有兩種不同的人。一種對程序開發真的是很感興趣,一天不寫代碼不看代碼就如坐針氈,感覺這一天總缺少點什麼,往往這種人才能成為技術人口中的大神。另外一種人,則是相反,看代碼寫代碼完全是因為完成任務而不得不做,處理問題時能靠嘴忽悠過去的,絕不會看一眼代碼,所以這種人往往技術平庸。當然,這只是從技術角度說,如果單純看收入的話,第一種人卻不見得比第二種人收入高。
所以,首先要確定自己是否對程序開發感興趣,如果沒有興趣,那就自然不必繼續下去了,完全可以換一個職業選擇。然後再選擇一個自己最感興趣的方向,如內核開發,驅動開發,應用開發等等,選定方向後由淺入深,循序漸進。
持之以恆在互聯網迅猛發展的今天,我們處在一個知識迅速爆發和更新更新時代,每一天都有各種各樣的新事物層出不窮,當然也會伴隨著各種老的舊的東西消失。計算機技術更是如此,從編程語言到開發工具,從設計模式到系統框架,每一天每個領域都會有新的技術出現,從也會有舊的技術被淘汰被丟棄被遺忘。
這就意味著,從成為程序員的那一天開始,就不可能停止學習的腳步,不得不面對各種技術的更新換代,因此,必須要持續學習,及時更新自己的知識結構,以適應各種業務需求的變化,否則,可能就不得不面對被淘汰的結果。
找到適合自己的學習方法就像看電影一樣,同一部電影,有的人覺得精彩,有的人覺得無趣。每個人的習慣、個性、思維、背景、基礎不同,學習的方法也不同,沒有什麼放之皆準的方法,適合自己的才是最好的。
對於入門,找到一本自己能看得懂適合自己的書。很多別人推薦的堪稱聖經的經典書籍,不妨嘗試一下,看自己是否能夠很容易的理解和消化。如果實在看不懂,果斷換一本,切忌過於勉強。剛入門時,如果長時間處於一種雲里霧里的感覺,往往會對自己信心造成打擊,繼而一點點消耗掉繼續學下去的興趣。很多聖經級的書籍往往適合在有一定基礎之後再細細品讀的,卻並非入門首選。
入門之後就是逐步深入了。一般來說,在實際項目中進行學習是效果最好的。做項目過程中往往能夠鞏固已經學到的技能,同時發現自己的知識盲點,進而消滅盲點。
此外,多讀代碼,多寫代碼。
最後的最後, 珍惜你現在的每一根頭發。
linux系列有兩種發行版本
1).Red
Hat系,包括RHEL、fedora、centos等
2).Debian系,包括Debian、Ubuntu、Mint等
想要學習的話如果個人學習,推薦使用Ubuntu。如果是工作的話,則使用centos學習
1.學習Linux,首先就是安裝Linux系統,通過鏡像安裝,這個過程可以先大概的了解一下linux的啟動過程,對一些概念有個大致的印象
2.在安裝好的系統之上,學習一些基本命令的操作,比如ls . 列出當前文件夾下的子文件和子目錄,cd /root 切換到root的目錄下,top命令查看一些進程的cpu,內存等資源的使用情況,ps命令同樣也可以查看進程的內存等資源使用情況,pwd查看當前所在的路徑等等,將這一些命令熟練的掌握
3.在掌握了linux的一些基本命令之後,那麼可以進行一些服務的安裝搭建練習,比如在Linux下安裝搭建DNS伺服器,搭建nginx伺服器等等
4.進階階段的話,可以嘗試進行內核參數的調優,比如tcp關閉連接之後保持高速通道,擴大linux系統的最大句柄打開數之類的內核參數的優化,sysctl -a可以查看目前已經載入的內核參數
5.學會了造句子,那麼之後就可以寫作文了。同理學會了linux的命令之後,那麼可以學習一下shell的基本語句,awk sed的學習,用shell實現一些特定功能的腳本,比如可以通過cat /proc/cpuinfo加上awk命令來實現對cpu相關信息的統計等
如果你在Linux上是一個小白請看下面的回答~
想學好Linux,先問自己幾個問題。
1. 你對計算機感興趣嗎?
2. 為什麼學習Linux(他能給你帶來什麼價值,這個價值點是否可以支持你一直堅持下去)
3.你每天可以在工作生活之餘或者大學課余抽出多少時間去學習(任何的技能都是需要時間去練習+時間才能掌握的)
如果這三個問題的答案都是肯定的,那麼請看下文:
我也是一個從0技術基礎的小白開始學習的
推薦你一個教程:【菜鳥教程】
http://www.runoob.com/linux/linux-tutorial.html
一定要有耐心、有恆心的堅持學完,這樣你對Linux才能有一定的理解
學習的中間需要您自己不斷的實操,自己去敲命令,去安裝,去驗證
『伍』 基本linux命令
基本linux命令有哪些呢?
1、ls命令
就是 list 的縮寫,通過 ls 命令不僅可以查看 linux 文件夾包含的文件,而且可以查看文件許可權(包括目錄、文件夾、文件許可權)查看目錄信息等等。
常用參數搭配:
ls -a 列出目錄所有文件,包含以.開始的隱藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改時間排序
ls -S 以文件大小排序
ls -h 以易讀大小顯示
ls -l 除了文件名之外,還將文件的許可權、所有者、文件大小等信息詳細列出來
實例:
(1) 按易讀方式按時間反序排序,並顯示文件詳細信息
ls -lhrt
(2) 按大小反序顯示文件詳細信息
ls -lrS
(3)列出當前目錄中所有以"t"開頭的目錄的詳細內容
ls -l t*
(4) 列出文件絕對路徑(不包含隱藏文件)
ls | sed "s:^:`pwd`/:"
(5) 列出文件絕對路徑(包含隱藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
2、cd 命令
cd(changeDirectory) 命令語法:
cd [目錄名]
說明:切換當前目錄至 dirName。
實例:
(1)進入要目錄
cd /
(2)進入 "home" 目錄
cd ~
(3)進入上一次工作路徑
cd -
(4)把上個命令的參數作為cd參數使用。
cd !$
3、pwd 命令
pwd 命令用於查看當前工作目錄路徑。
實例:
(1)查看當前路徑
pwd
(2)查看軟鏈接的實際路徑
pwd -P
4、mkdir 命令
mkdir 命令用於創建文件夾。
可用選項:
-m: 對新建目錄設置存取許可權,也可以用 chmod 命令設置;
-p: 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不在的目錄,即一次可以建立多個目錄。
實例:
(1)當前工作目錄下創建名為 t的文件夾
mkdir t
(2)在 tmp 目錄下創建路徑為 test/t1/t 的目錄,若不存在,則創建:
mkdir -p /tmp/test/t1/t
5、rm 命令
刪除一個目錄中的一個或多個文件或目錄,如果沒有使用 -r 選項,則 rm 不會刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復原狀。
rm [選項] 文件…
實例:
(1)刪除任何 .log 文件,刪除前逐一詢問確認:
rm -i *.log
(2)刪除 test 子目錄及子目錄中所有檔案刪除,並且不用一一確認:
rm -rf test
(3)刪除以 -f 開頭的文件
rm -- -f*
6、rmdir 命令
從一個目錄中刪除一個或多個子目錄項,刪除某目錄時也必須具有對其父目錄的寫許可權。
注意:不能刪除非空目錄
實例:
(1)當 parent 子目錄被刪除後使它也成為空目錄的話,則順便一並刪除:
rmdir -p parent/child/child11
7、mv 命令
移動文件或修改文件名,根據第二參數類型(如目錄,則移動文件;如為文件則重命令該文件)。
當第二個參數為目錄時,第一個參數可以是多個以空格分隔的文件或目錄,然後移動第一個參數指定的多個文件到第二個參數指定的目錄中。
實例:
(1)將文件 test.log 重命名為 test1.txt
mv test.log test1.txt
(2)將文件 log1.txt,log2.txt,log3.txt 移動到根的 test3 目錄中
mv llog1.txt log2.txt log3.txt /test3
(3)將文件 file1 改名為 file2,如果 file2 已經存在,則詢問是否覆蓋
mv -i log1.txt log2.txt
(4)移動當前文件夾下的所有文件到上一級目錄
mv * ../
8、cp 命令
將源文件復制至目標文件,或將多個源文件復制至目標目錄。
注意:命令行復制,如果目標文件已經存在會提示是否覆蓋,而在 shell 腳本中,如果不加 -i 參數,則不會提示,而是直接覆蓋!
-i 提示
-r 復制目錄及目錄內所有項目
-a 復制的文件與原文件時間一樣
實例:
(1)復制 a.txt 到 test 目錄下,保持原文件時間,如果原文件存在提示是否覆蓋。
cp -ai a.txt test
(2)為 a.txt 建議一個鏈接(快捷方式)
cp -s a.txt link_a.txt
9、cat 命令
cat 主要有三大功能:
1.一次顯示整個文件:
cat filename
2.從鍵盤創建一個文件:
cat > filename
只能創建新文件,不能編輯已有文件。
3.將幾個文件合並為一個文件:
cat file1 file2 > file
-b 對非空輸出行號
-n 輸出所有行號
實例:
(1)把 log2012.log 的文件內容加上行號後輸入 log2013.log 這個文件里
cat -n log2012.log log2013.log
(2)把 log2012.log 和 log2013.log 的文件內容加上行號(空白行不加)之後將內容附加到 log.log 里
cat -b log2012.log log2013.log log.log
(3)使用 here doc 生成新文件
cat >log.txt <<EOF
>Hello
>World
>PWD=$(pwd)
>EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test
(4)反向列示
tac log.txt
PWD=/opt/soft/test
World
Hello
10、more 命令
功能類似於 cat, more 會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示。
命令參數:
+n 從笫 n 行開始顯示
-n 定義屏幕大小為n行
+/pattern 在每個檔案顯示前搜尋該字串(pattern),然後從該字串前兩行之後開始顯示
-c 從頂部清屏,然後顯示
-d 提示「Press space to continue,』q』 to quit(按空格鍵繼續,按q鍵退出)」,禁用響鈴功能
-l 忽略Ctrl+l(換頁)字元
-p 通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似
-s 把連續的多個空行顯示為一行
-u 把文件內容中的下畫線去掉
常用操作命令:
Enter 向下 n 行,需要定義。默認為 1 行
Ctrl+F 向下滾動一屏
空格鍵 向下滾動一屏
Ctrl+B 返回上一屏
= 輸出當前行的行號
:f 輸出文件名和當前行的行號
V 調用vi編輯器
!命令 調用Shell,並執行命令
q 退出more
實例:
(1)顯示文件中從第3行起的內容
more +3 text.txt
(2)在所列出文件目錄詳細信息,藉助管道使每次顯示 5 行
ls -l | more -5
按空格顯示下 5 行。
11、less 命令
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會載入整個文件。
常用命令參數:
-i 忽略搜索時的大小寫
-N 顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-s 顯示連續空行為一行
/字元串:向下搜索「字元串」的功能
?字元串:向上搜索「字元串」的功能
n:重復前一個搜索(與 / 或 ? 有關)
N:反向重復前一個搜索(與 / 或 ? 有關)
-x <數字> 將「tab」鍵顯示為規定的數字空格
b 向後翻一頁
d 向後翻半頁
h 顯示幫助界面
Q 退出less 命令
u 向前滾動半頁
y 向前滾動一行
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁
實例:
(1)ps 查看進程信息並通過 less 分頁顯示
ps -aux | less -N
(2)查看多個文件
less 1.log 2.log
可以使用 n 查看下一個,使用 p 查看前一個。
12、head 命令
head 用來顯示檔案的開頭至標准輸出中,默認 head 命令列印其相應文件的開頭 10 行。
常用參數:
-n<行數> 顯示的行數(行數為復數表示從最後向前數)
實例:
(1)顯示 1.log 文件中前 20 行
head 1.log -n 20
(2)顯示 1.log 文件前 20 位元組
head -c 20 log2014.log
(3)顯示 t.log最後 10 行
head -n -10 t.log
13、tail 命令
用於顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日誌文件。
常用參數:
-f 循環讀取(常用於查看遞增的日誌文件)
-n<行數> 顯示行數(從後向前)
(1)循環讀取逐漸增加的文件內容
ping 127.0.0.1 > ping.log &
後台運行:可使用 jobs -l 查看,也可使用 fg 將其移到前台運行。
tail -f ping.log
(查看日誌)
14、which 命令
在 linux 要查找某個文件,但不知道放在哪裡了,可以使用下面的一些命令來搜索:
which 查看可執行文件的位置。
whereis 查看文件的位置。
locate 配合資料庫查看文件位置。
find 實際搜尋硬碟查詢文件名稱。
which 是在 PATH 就是指定的路徑中,搜索某個系統命令的位置,並返回第一個搜索結果。使用 which 命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
常用參數:
-n 指定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名。
實例:
(1)查看 ls 命令是否存在,執行哪個
which ls
(2)查看 which
which which
(3)查看 cd
which cd(顯示不存在,因為 cd 是內建命令,而 which 查找顯示是 PATH 中的命令)
查看當前 PATH 配置:
echo $PATH
或使用 env 查看所有環境變數及對應值
15、whereis 命令
whereis 命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。whereis 及 locate 都是基於系統內建的資料庫進行搜索,因此效率很高,而find則是遍歷硬碟查找文件。
常用參數:
-b 定位可執行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。
實例:
(1)查找 locate 程序相關文件
whereis locate
(2)查找 locate 的源碼文件
whereis -s locate
(3)查找 lcoate 的幫助文件
whereis -m locate
『陸』 如何在Linux伺服器中備份
LINUX通常使用tar命令進行數據備份,但外面很多資料所介紹的比較專業,也就比較復雜些,初學者很難看明白。現介紹一種「傻瓜式備份方案」,供初建LINUX伺服器者參考。
1、首先我們要知道需要備份哪些數據。
一般包括資料庫和網站數據,在本例中,資料庫位於/var/lib/mysql/目錄;網站位於/www/users/目錄。
2、確定需要將數據備份在哪裡,在這個分區中創建一個目錄
應該挑選一個空間較大的分區,例: /var
鍵入命令:
cd /var
mkdir backup
3、創建備份目錄後,進入備份目錄
cd /var/backup
4、資料庫一般應該完全備份,建議每次備份以當前日期命名
tar -czvf mysql20051015.tar.gz /var/lib/mysql/*
這個命令的意思是,在當前目錄下生成一個備份,備份的內容是/var/lib/mysql/目錄下的所有內容
5、如果網站數據不多,可以每次將網站數據完全備份
tar -czvf users20051015.tar.gz /www/users/*
6、如果網站數據較多(尤其是運營E站通,商城等每天更新文件量較大的系統),建議每月一次完全備份,每天(或每周)一次更新備份。這個備份方式即所謂的「差分備份」,差分備份要求每一次更新的備份都要針對上一次完全備份的時間。
例如:在10月15日進行一次完全備份:
tar -czvf users20051015.tar.gz /www/users/*
在下一次完全備份前針對10月15日的完全備份進行更新備份(如每周一次):
tar -czvf users20051015.tar.gz /www/users/* --newer 10/15/2005/
在進行「差分備份」後,如果需要恢復數據,應該是先恢復完全備份,再將最近的一次更新備份覆蓋完全備份
『柒』 tar壓縮,日誌,FTP
老師筆記
命令詳解
1、目前計算機系統中都是用bytes(位元組)單位來計量
2、事實上計算機最小的計量單位是bits(位)
3、1byte=8 bits
4、假設byte可以看成底下到模樣
5、8個空格就是8個位,而每個空格可以是0或1,現在假設我們只存入了一個1,那會剩餘到7個空位,默認情況下這7個空位無法在寫入數據。
6、但壓縮技術就是把這些沒用到到空間提出來,以讓檔案佔用到空間變小
重點!
Linux 系統不以擴展名為文件類型識別的依據,這里的擴展名只是讓用戶易於分辨。
常見命令工具
gzip, bzip2 以及 xz ,這些都只能對單個文件進行壓縮,不能操作目錄。
tar 可以對一個到多個文件或者一個目錄進行打包成一個單一的文件,但單獨使用 tar 命令時,只是打包,不壓縮。
後來, GNU 計劃 中,將整個 tar 與壓縮的功能結合在一起,如此一來提供使用者更方便並且更強大的壓縮與打包功能!
示例: 備份系統的配置文件,並且保留源文件的許可權和屬性信息
查看
打包壓縮的時候可以排除一個或者多個文件或者目錄
老師筆記
記錄系統活動信息有幾個文件,他們分別記錄了不同的信息。
例如:何時、何地 (來源 IP)、何人 (賬戶或者服務名稱)、做了什麼動作 。
換句話說就是:記錄系統在什麼時候由哪個程序做了什麼樣的行為時,發生了何種的事件等等
其實,不止系統有日誌,在系統上運行的很多應用程序(軟體) 都有自己的日誌記錄。比如 MySQL 默認的日誌是 /var/log/mysqld.log
這些日誌是我們排除的首要入手點,假如系統或者服務出現了錯誤,要第一時間分析日誌中的報錯信息。而不是去到網上搜索報錯信息。因為大部分時候,一個報錯信息,有可能會有多種情況導致,所以要結合自己的系統環境分析具體的情況。
CentOS 使用 rsyslog.service 這個服務來統一管理這些系統日誌文件。
既然是服務,就會有配置文件.
配置文件用於設置
比如:
Linux 核心的 syslog 認識的服務類型主要有下面這些:
Linux 核心的 syslog 定義的日誌級別:
編輯 /etc/rsyslog.conf 文件
保存退出後
重啟服務
通過配置 /etc/rsyslog.conf 可以把一個 Linux 主機配置成一台 日誌伺服器,這樣其他 Linux 主機的日誌,除了記錄在自己的本地外,還會發送的這台日誌到伺服器上一份。
編輯 /etc/rsyslog.conf
重啟服務
檢查監聽埠
編輯 /etc/rsyslog.conf
什麼是日誌輪轉,為什麼要輪轉
日誌輪轉也叫日誌的切割,通俗來講就是對日誌文件進行大小的控制。
Linux 系統通常會長時間的不停機運行,這樣就會產生好多信息記錄到不同的日誌中。隨著時間的推移,日誌的容量自然會越來越大,那問題就來了,硬碟的空間是有限的,那為了控制日誌文件的大小,就需要對日誌文件進行控制。
同時是把目前的日誌文件改名,緊接著創建一個新的日誌文件,名稱和原來的一樣,重啟服務進程,讓其向新的日誌文件中寫日誌。
logrotate 負責對系統日誌的輪轉。
通過定時任務每天都會執行一次。
logrotate 的主要功能就是將舊的日誌文件改成舊文件, 並且重新創建一個新的空的文件來記錄。
如下圖:
/etc/logrotate.conf 的默認值
假如,想對某個日誌文件實現輪轉,建議在 /etc/logrotate.d/ 目錄中添加子配置文件
比如
在 目錄下編輯一個文件
可以使用 logrotate 命令測試
老師筆記
『捌』 linux,unix常用基本命令
1.常用指令
ls 顯示文件或目錄
-l 列出文件詳細信息l(list)
-a 列出當前目錄下所有文件及目錄,包括隱藏的a(all)
mkdir 創建目錄
-p 創建目錄,若無父目錄,則創建p(parent)
cd 切換目錄
touch 創建空文件
echo 創建帶有內容的文件。
cat 查看文件內容
cp 拷貝
mv 移動或重命名
rm 刪除文件
-r 遞歸刪除,可刪除子目錄及文件
-f 強制刪除
find 在文件系統中搜索某文件
wc 統計文本中行數、字數、字元數
grep 在文本文件中查找某個字元串
rmdir 刪除空目錄
tree 樹形結構顯示目錄,需要安裝tree包
pwd 顯示當前目錄
ln 創建鏈接文件
more、less 分頁顯示文本文件內容
head、tail 顯示文件頭、尾內容
ctrl+alt+F1 命令行全屏模式
2.系統管理命令
stat 顯示指定文件的詳細信息,比ls更詳細
who 顯示在線登陸用戶
whoami 顯示當前操作用戶
hostname 顯示主機名
uname 顯示系統信息
top 動態顯示當前耗費資源最多進程信息
ps 顯示瞬間進程狀態 ps -aux
查看目錄大小 -h /home帶有單位顯示目錄信息
df 查看磁碟大小 df -h 帶有單位顯示磁碟信息
ifconfig 查看網路情況
ping 測試網路連通
netstat 顯示網路狀態信息
man 命令不會用了,找男人 如:man ls
clear 清屏
alias 對命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill 殺死進程,可以先用ps 或 top命令查看進程的id,然後再用kill命令殺死進程。
3.打包壓縮相關命令
tar: 打包壓縮
-c 歸檔文件
-x 壓縮文件
-z gzip壓縮文件
-j bzip2壓縮文件
-v 顯示壓縮或解壓縮過程 v(view)
-f 使用檔名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不壓縮
tar -zcvf /home/abc.tar.gz /home/abc 打包,並用gzip壓縮
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,並用bzip2壓縮
當然,如果想解壓縮,就直接替換上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的「c」 換成「x」 就可以了。
3.關機/重啟機器
shutdown
-r 關機重啟
-h 關機不重啟
now 立刻關機
halt 關機
reboot 重啟
4.Linux管道
將一個命令的標准輸出作為另一個命令的標准輸入。也就是把幾個命令組合起來使用,後一個命令除以前一個命令的結果。
例:grep -r "close" /home/* | more 在home目錄下所有文件中查找,包括close的文件,並分頁輸出。
5.Linux軟體包管理
dpkg(Debian Package)管理工具,軟體包名以.deb後綴。這種方法適合系統不能聯網的情況下。
比如安裝tree命令的安裝包,先將tree.deb傳到Linux系統中。再使用如下命令安裝。
sudo dpkg -i tree_1.5.3-1_i386.deb 安裝軟體
sudo dpkg -r tree 卸載軟體
註:將tree.deb傳到Linux系統中,有多種方式。VMwareTool,使用掛載方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高級軟體工具。這種方法適合系統能夠連接互聯網的情況。
依然以tree為例
sudo apt-get install tree 安裝tree
sudo apt-get remove tree 卸載tree
sudo apt-get update 更新軟體
sudo apt-get upgrade
6.將.rpm文件轉為.deb文件
.rpm為RedHat使用的軟體格式。在Ubuntu下不能直接使用,所以需要轉換一下。
sudo alien abc.rpm
7.vim使用
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q 退出
:q! 強制退出
:wq 保存並退出
:set number 顯示行號
:set nonumber 隱藏行號
/apache 在文檔中查找apache 按n跳到下一個,shift+n上一個
yyp 復制游標所在行,並粘貼
h(左移一個字元←)、j(下一行↓)、k(上一行↑)、l(右移一個字元→)
8.用戶及用戶組管理
/etc/passwd 存儲用戶賬號
/etc/group 存儲組賬號
/etc/shadow 存儲用戶賬號的密碼
/etc/gshadow 存儲用戶組賬號的密碼
useradd 用戶名
userdel 用戶名
adser 用戶名
groupadd 組名
groupdel 組名
passwd root 給root設置密碼
/etc/profile 系統環境變數
bash_profile 用戶環境變數
.bashrc 用戶環境變數
su user 切換用戶,載入配置文件.bashrc
su - user 切換用戶,載入配置文件/etc/profile ,載入bash_profile
更改文件的用戶及用戶組
sudo chown [-R] owner[:group] {File|Directory}
例如:還以jdk-7u21-linux-i586.tar.gz為例。屬於用戶hadoop,組hadoop
要想切換此文件所屬的用戶及組。可以使用命令。
sudo chown root:rootjdk-7u21-linux-i586.tar.gz
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
UNIX操作系統(尤尼斯),是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統,最早由KenThompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。目前它的商標權由國際開放標准組織所擁有,只有符合單一UNIX規范的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIX(UNIX-like)。
『玖』 Linux命令chmod是什麼英文單詞的縮寫
每天一個linux命令(37):date命令相關鏈接:每天一個linux命令(1):ls命令/os/201210/163049.html;每天一個linux命令(2):cd命令/os/201210/163050.html;每天一個linux命令(3):pwd命令/os/201210/163462.html;每天一個linux命令(4):mkdir命令/os/201210/163463.html;每天一個linux命令(5):rm命令/os/201210/163662.html;每天一個linux命令(6):rmdir命令/os/201210/164017.html;每天一個linux命令(7):mv命令/os/201210/164247.html;每天一個linux命令(8):cp命令/os/201210/164254.html;每天一個linux命令(9):touch命令/os/201211/165699.html;每天一個linux命令(10):cat命令/os/201211/165989.html;每天一個linux命令(11):nl命令/os/201211/165990.html每天一個linux命令(12):more命令/os/201211/165994.html每天一個linux命令(13):less命令/os/201211/165998.html每天一個linux命令(14):head命令/os/201211/166191.html每天一個linux命令(15):tail命令/os/201211/168702.html每天一個linux命令(16):which命令/os/201211/168890.html每天一個linux命令(17):whereis命令/os/201211/168893.html每天一個linux命令(18):locate命令/os/201211/168895.html每天一個linux命令(19):find命令概覽/os/201211/168897.html每天一個linux命令(20):find命令之exec/os/201211/168901.html每天一個linux命令(21):find命令之xargs/os/201211/168903.html每天一個linux命令(22):find命令的參數詳解/os/201211/168912.html每天一個linux命令(23):linux目錄結構/os/201211/170430.html每天一個linux命令(24):linux文件類型與擴展名/os/201211/170431.html每天一個linux命令(25):linux文件屬性詳解/os/201211/170434.html每天一個linux命令(26):用SecureCRT來上傳和下載文件/os/201211/172022.html每天一個linux命令(27):linux chmod命令/os/201211/172028.html每天一個linux命令(28):tar命令/os/201212/172641.html每天一個linux命令(29):chgrp命令/os/201212/172983.html每天一個linux命令(30):chown命令/os/201212/173239.html每天一個linux命令(31):/etc/group文件詳解/os/201212/174429.html每天一個linux命令(32):gzip命令/os/201212/174431.html每天一個linux命令(33):df命令/os/201212/174434.html每天一個linux命令(34):命令/os/201212/174701.html每天一個linux命令(35):ln命令/os/201212/174993.html每天一個linux命令(36):diff命令/os/201212/176333.html在linux環境中,不管是編程還是其他維護,時間是必不可少的,也經常會用到時間的運算,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便。1.命令格式: date [參數]... [+格式]2.命令功能: date 可以用來顯示或設定系統的日期與時間。3.命令參數:必要參數:%H 小時(以00-23來表示)。%I 小時(以01-12來表示)。%K 小時(以0-23來表示)。%l 小時(以0-12來表示)。%M 分鍾(以00-59來表示)。%P AM或PM。%r 時間(含時分秒,小時以12小時AM/PM來表示)。%s 總秒數。起算時間為1970-01-01 00:00:00 UTC。%S 秒(以本地的慣用法來表示)。%T 時間(含時分秒,小時以24小時制來表示)。%X 時間(以本地的慣用法來表示)。%Z 市區。%a 星期的縮寫。%A 星期的完整名稱。%b 月份英文名的縮寫。%B 月份的完整英文名稱。%c 日期與時間。只輸入date指令也會顯示同樣的結果。%d 日期(以01-31來表示)。%D 日期(含年月日)。%j 該年中的第幾天。%m 月份(以01-12來表示)。%U 該年中的周數。%w 該周的天數,0代表周日,1代表周一,異詞類推。%x 日期(以本地的慣用法來表示)。%y 年份(以00-99來表示)。%Y 年份(以四位數來表示)。%n 在顯示時,插入新的一行。%t 在顯示時,插入tab。MM 月份(必要)DD 日期(必要)hh 小時(必要)mm 分鍾(必要)ss 秒(選擇性)選擇參數: -d<字元串> 顯示字元串所指的日期與時間。字元串前後必須加上雙引號。-s<字元串> 根據字元串來設置日期與時間。字元串前後必須加上雙引號。-u 顯示GMT。--help 在線幫助。--version 顯示版本信息4.使用說明:1.在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號後接數個標記,其中可用的標記列表如下: % : 列印出 %:%n : 下一行%t : 跳格%H : 小時(00..23)%I : 小時(01..12)%k : 小時(0..23)%l : 小時(1..12)%M : 分鍾(00..59)%p : 顯示本地 AM 或 PM%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數%S : 秒(00..61)%T : 直接顯示時間 (24 小時制)%X : 相當於 %H:%M:%S%Z : 顯示時區 %a : 星期幾 (Sun..Sat)%A : 星期幾 (Sunday..Saturday)%b : 月份 (Jan..Dec)%B : 月份 (January..December)%c : 直接顯示日期與時間%d : 日 (01..31)%D : 直接顯示日期 (mm/dd/yy)%h : 同 %b%j : 一年中的第幾天 (001..366)%m : 月份 (01..12)%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)%w : 一周中的第幾天 (0..6)%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)%x : 直接顯示日期 (mm/dd/yy)%y : 年份的最後兩位數字 (00.99)%Y : 完整年份 (0000..9999)2.在設定時間方面:date -s //設置當前時間,只有root許可權才能設置,其他只能查看。date -s 20080523 //設置成20080523,這樣會把具體時間設置成空00:00:00date -s 01:01:01 //設置具體時間,不會對日期做更改date -s 01:01:01 2008-05-23″ //這樣可以設置全部時間date -s 01:01:01 20080523″ //這樣可以設置全部時間date -s 2008-05-23 01:01:01″ //這樣可以設置全部時間date -s 20080523 01:01:01″ //這樣可以設置全部時間3.加減:date +%Y%m%d //顯示前天年月日date +%Y%m%d --date=+1 day //顯示前一天的日期date +%Y%m%d --date=-1 day //顯示後一天的日期date +%Y%m%d --date=-1 month //顯示上一月的日期date +%Y%m%d --date=+1 month //顯示下一月的日期date +%Y%m%d --date=-1 year //顯示前一年的日期date +%Y%m%d --date=+1 year //顯示下一年的日期5.使用實例:實例1:顯示當前時間命令:datedate '+%c'date '+%D'date '+%x'date '+%T'date '+%X'輸出:[root@localhost ~]# date2012年 12月 08日 星期六 08:31:35 CST[root@localhost ~]# date '+%c'2012年12月08日 星期六 08時34分44秒[root@localhost ~]# date '+%D'12/08/12[root@localhost ~]# date '+%x'2012年12月08日[root@localhost ~]# date '+%T'08:35:36[root@localhost ~]# date '+%X'08時35分54秒[root@localhost ~]#說明:實例2:顯示日期和設定時間命令:date --date 08:42:00輸出:[root@localhost ~]# date '+%c'2012年12月08日 星期六 08時41分37秒[root@localhost ~]# date --date 08:42:002012年 12月 08日 星期六 08:42:00 CST[root@localhost ~]# date '+%c' --date 08:45:002012年12月08日 星期六 08時45分00秒[root@localhost ~]#說明: 實例3:date -d參數使用命令:輸出:[root@localhost ~]# date -d nov 222012年 11月 22日 星期四 00:00:00 CST[root@localhost ~]# date -d '2 weeks'2012年 12月 22日 星期六 08:50:21 CST[root@localhost ~]# date -d 'next monday'2012年 12月 10日 星期一 00:00:00 CST[root@localhost ~]# date -d next-day +%Y%m%d20121209[root@localhost ~]# date -d tomorrow +%Y%m%d20121209[root@localhost ~]# date -d last-day +%Y%m%d20121207[root@localhost ~]# date -d yesterday +%Y%m%d20121207[root@localhost ~]# date -d last-month +%Y%m201211[root@localhost ~]# date -d next-month +%Y%m201301[root@localhost ~]# date -d '30 days ago'2012年 11月 08日 星期四 08:51:37 CST[root@localhost ~]# date -d '-100 days'2012年 08月 30日 星期四 08:52:03 CST[root@localhost ~]# date -d 'dec 14 -2 weeks'2012年 11月 30日 星期五 00:00:00 CST[root@localhost ~]# date -d '50 days'2013年 01月 27日 星期日 08:52:27 CST說明:date 命令的另一個擴展是 -d 選項,該選項非常有用。使用這個功能強大的選項,通過將日期作為引號括起來的參數提供,您可以快速地查明一個特定的日期。-d 選項還可以告訴您,相對於當前日期若干天的究竟是哪一天,從現在開始的若干天或若干星期以後,或者以前(過去)。通過將這個相對偏移使用引號括起來,作為 -d 選項的參數,就可以完成這項任務。具體說明如下:date -d nov 22 今年的 11 月 22 日是星期三date -d '2 weeks' 2周後的日期date -d 'next monday' (下周一的日期)date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%ddate -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%ddate -d last-month +%Y%m(上個月是幾月)date -d next-month +%Y%m(下個月是幾月)使用 ago 指令,您可以得到過去的日期:date -d '30 days ago' (30天前的日期)使用負數以得到相反的日期:date -d 'dec 14 -2 weeks' (相對:dec 14這個日期的兩周前的日期)date -d '-100 days' (100天以前的日期)date -d '50 days'(50天後的日期)實例4:顯示月份和日數命令:date '+%B %d'輸出:[root@localhost ~]# date '+%B %d'十二月 08[root@localhost ~]#說明:實例5:顯示時間後跳行,再顯示目前日期命令:date '+%T%n%D'輸出:[root@localhost ~]# date '+%T%n%D'09:00:3012/08/12[root@localhost ~]#
『拾』 怎樣在linux中使用crontab編寫一個定時任務,可以實現以下功能:
1、crontab命令概念
crontab命令用於設置周期性被執行的指令。該命令從標准輸入設備讀取指令,並將其存放於「crontab」文件中,以供之後讀取和執行。
cron 系統調度進程。 可以使用它在每天的非高峰負荷時間段運行作業,或在一周或一月中的不同時段運行。cron是系統主要的調度進程,可以在無需人工干預的情況下運行作業。
crontab命令允許用戶提交、編輯或刪除相應的作業。每一個用戶都可以有一個crontab文件來保存調度信息。系統管理員可以通過cron.deny 和 cron.allow 這兩個文件來禁止或允許
用戶擁有自己的crontab文件。
2、檢查是否安裝了crontab,如果提示未安裝請自行安裝,crontab安裝包在系統光碟裡面的pacekage文件夾 相對應的crontab安裝包。