Linux最常用的基礎命令個人總結
計算機基礎知識:
32bit和64bit系統的區別、系統運行機制
32bit=內存的最大尋址空間是2**32,也就是說最大只能使用4GB的內存
64bit=內存的最大尋址空間是2**64,差不多支持16TB的內存
操作系統也是一個軟件
操作系統簡稱:OS:operation system
蘋果系統綁定了硬件,微軟系統只賣軟件不綁定硬件
計算機;主要目的是計算:
人們最早使用的計算工具可能是手指,英文單詞“digit”既有“數字”的意思,又有“手指“的意思。28個手指關節,10根手指
計算機的電源。類似於人類的心臟:電源給計算機供電,心臟給人體供血
打開軟件是操作硬盤的,打開程序的快慢速度取決於硬盤的讀寫速度
cpu相當於人的大腦
電腦上應用程序的運行過程:打開一個軟件,cpu先從磁盤中加載文件,也就是計算機將把硬盤里的數據讀取到內存,程序就開始運行,在程序運行的過程中,產生的臨時數據也會寫入內存,程序的打開速度取決於硬盤的質量和硬盤的讀寫速度
軟件打開后,的使用過程中所有的數據都是CPU直接從內存中讀寫和存放的所以軟件使用過程中的流暢度,取決於cpu的性能和內存的大小(CPU值越大性能越強)
操作系統(Operating System, OS):是指控制和管理整個計算機系統的硬件和軟件資源,並合理地組織調度計算機的工作和資源的分配,以提供給用戶和其他軟件方便的接口和環境的程序集合。
硬盤:存儲資料和數據的設備,有容量大,斷電數據不丟失的特點。
內存:負責硬盤等硬件上的數據與CPU之間數據交換處理; 緩存系統中的臨時數據。斷電后數據丟失。內存中的數據是通過電流來表示的,所以一斷電,內存中的數據就沒有了
Android 是基於Linux內核的移動操作系統
操作系統發展歷史
二進制
計算機的編碼:
ASSIC 每一個字符統一都需要8個bit來存儲
計算機的CPU是由集成電路這種電子部件構成的, 電路只可以表示兩種狀態——通電、斷電,因為這個特性,計算機只能識別二進制數(0或1)
計算機的CPU只能認識 0 和 1 所以電腦只懂 0和 1組成的機器語言。
編碼:將計算機能理解的語言轉換成人類能懂的語言
將編程語言翻譯成機器語言,即0和1, ——這個過程叫編譯
編譯就是:通過編譯器執行一個編譯的過程,把程序編譯成機器語言。
解釋就是:在程序運行的時候,通過解釋器逐行解釋代碼,然后運行。
計算機中如果沒有特殊的要求數字是從0開始算起的
平常生活中數字是從1開始算起的
二進制:逢二進一 ,二進制的表示數字: 0, 1
八進制: 逢八進一,八進制的表示數字:01234567
十六進制: 逢十六進一,十六進制的表示數字: 01234567ABCDEF
計算機容量的單位表示
1位 也就是一個二進制數(0 或 1)= 1bit 比特大小
8 bit 比特 = 1byte = 1字節
1024bytes = 1kbytes =1KB 1024個字符,小文檔 ,幾百k可以表示一張圖片
1024KB = 1Million Bytes = 1MB = 1兆 , 幾萬字的文檔, 大圖片
1024MB = 1Gigabytes , 一個清晰的電影,不是高清,高清能達到數10個g
1024GB = 1TB ,
1024TB = 1PB,
00000000
00110001
00000001
bit (比特)(Binary Digits) 里面存放的是一個二進制數字,即 0 或 1, 也是計算機中最小的存儲單位。
字節 byte:8個二進制數為一個字節,一個字節是由8個(0 或 1)組成
1B bytes比特 =8 bit位
1 KB = 1024 B
1 MB Megabyte 兆字節 簡稱“兆” = 1024 KB,
1 GB Gigabyte 吉字節 又稱“千兆” = 1024 MB,
1 TB Trillionbyte 萬億字節 太字節 = 1024 GB,
平常我們上網所說的下載速度和寬帶的速度的計算方式:
1字節(byte)=8比特(bit)
1兆(M)=1024千(k)
4M的網的話理論下載速度應該是
4×1024/8=512KB
運營商的單位是bit,而我們下載的單位是K 即字節byte, 寬帶運營商按照二進制來計算,所以100M的寬帶要除8才是我們平常說的下載的速度。
什么是編程語言?
定義好一套與計算機交互的語法規則,這套規則 就可稱為一門編程語言
我們聽不懂日語是因為不懂日語的語法規則
學編程 == 學語法規則
編程能干什么?
print hello world
eject cd
一堆指令的組合 == 》 軟件
有很多套與計算機交互的語法規則,
600多種編程語言
1970 Unix系統的誕生年
1989年python 誕生
C語言是編譯型的語言,不太支持跨平台
Django 江購
C = 各個操作系統的開發語言 1973
C++ = C++是C語言的加強版 ,1983年,貝爾實驗室的Bjarne Stroustrup在C語言基礎上推出了C++[1] 。 C++進一步擴充和完善了C語言,是一種面向對象的程序設計語言。
java = 1995 由sun 公司開發出來,java 虛擬機 支持跨平台
php = 1994, 純web開發語言, 1994 Netscape 瀏覽器誕生了
python = 1989年誕生, 剛開始被做為腳本語言, 開發小任務, 跟linux同年誕生,89,1991,蘇聯解體, 1991年正式版本
C# = c sharpe =C#是微軟公司發布的一種面向對象的、運行於.NET Framework之上的高級程序設計語言。並定於在微軟職業開發者論壇(PDC)上登台亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有着驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。但是C#與Java有着明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司 .NET windows網絡框架的主角。
ruby =
Ruby, 一種簡單快捷的面向對象(面向對象程序設計)腳本語言,在20世紀90年代由日本人松本行弘(Yukihiro Matsumoto)開發,遵守GPL協議和Ruby License。它的靈感與特性來自於 Perl、Smalltalk、Eiffel、Ada以及 Lisp 語言。由 Ruby 語言本身還發展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 語言替代品。Ruby的作者於1993年2月24日開始編寫Ruby,直至1995年12月才正式公開發布於fj(新聞組)。因為Perl發音與6月誕生石pearl(珍珠)相同,因此Ruby以7月誕生石ruby(紅寶石)命名。
Ruby on rails web框架
perl = Unix平台上開發出來的語言,做文字處理非常強大, 可以寫出沒人能看懂的代碼
shell = 腳本語言, 簡單易學,基於unix,linux, 做一些簡單的系統管理任務, 運維人員必學
scalar = Scala是一門多范式的編程語言,一種類似java的編程語言[1] ,大數據開發
erlang = 是一種通用的面向並發的編程語言,它由瑞典電信設備制造商愛立信,函數式編程
go ===Go語言是谷歌2009發布的第二款開源編程語言。Go語言專門針對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持並行進程。
javascript = 是當下使用最為廣泛的語言,主要寫前端的語言,
nodejs =后端 全棧式的語言
vb = 微軟的腳本語言,bat腳本
lua = nginx 的腳本語言, ngnix 是時下最nb web服務器
python
編譯型 = 全部翻譯,再執行 ,翻譯=編譯 ,c,c++
解釋型 = 邊執行邊翻譯, python php java c# perl ruby javascript
虛擬機;
虛擬機中的三種網絡模式:
Bridged(橋接模式) : 橋接模式就是將我們虛擬機中的網卡的網絡地址 放在我們真實的物理機的網卡上。 這樣的話,我們的虛擬機就好像跟我們的宿主機所在的局域網中的一台機器一樣。
NAT(網絡地址轉換模式) : 在宿主機上制作一個虛擬網卡,通過這個網卡,給虛擬機分配IP。虛擬機通過宿主機去上網。
Host-Only(模式): 該模式下虛擬機只能訪問到物理主機。無法訪問外網。
林尼克斯:linux對硬件的基礎要求:
電腦的配置:
軟件配置:64位操作系統,win7旗艦版或者Win10專業版 :不要用企業版:很耗資源
硬件配置:16G內存,i7,固態硬盤200G
類型:游戲本(性能最強的)
處理器:GHz 值越大越好,越大運算速度越快
Linux的創始人:林納斯,脫襪子
http://linuxdown.net/
紅帽,有麒麟,centos,ubtun
Linux,Windows,Unix,MacOX
Ubuntu 烏班圖:我的存在是因為大家的存在,非洲的價值觀,Ubuntu(烏班圖)是一個基於Debian版的發行Linux版
安裝linux操作系統或是安裝軟件的時候可以斷網安裝,這樣就不會在安裝的過程中,軟件會從網上找東西更新而導致安裝過程超級的慢
Ubuntu修改登錄密碼
rw init=/bin/bash
passwd 用戶名
輸入兩次新的密碼
什么是文件系統:
文件系統是操作系統用於明確磁盤或分區上的文件的方法和數據結構; 即在磁盤上組織文件的方法。
常見的文件系統類型:ext2、ext3、ext4、fat、ntfs
Linux系統的目錄結構:
/ : 所有目錄都在
/boot : boot 配置文件、內核和其它啟動 時所需的文件
/etc : 存放系統配置有關的文件
/home : 存放普通用戶目錄
/mnt : 硬盤上手動 掛載的文件系統
/media : 自動掛載(加載)的硬盤分區以及類似CD、數碼相機等可移動介質。
/cdrom : 掛載光盤?
/opt : 存放一些可選程序,如某個程序測試版本,安裝到該目錄的程序的所有數據,庫文件都存在同個目錄下
/root : 系統管理員的目錄,對於系統來說,系統管理員好比上帝,他可以對系統做任何操作,比如刪除你的文件,一般情況下不要使用root用戶。
/bin : 存放常用的程序文件(命令文件)。
/sbin : 系統管理命令,這里存放的是系統管理員使用的管理程序
/tmp : 臨時目錄,存放臨時文件,系統會定期清理該目錄下的文件。
/usr : 在這個目錄下,你可以找到那些不適合放在/bin或/etc目錄下的額外的工具。比如游戲、打印工具等。/usr目錄包含了許多子目錄: /usr/bin目錄用於存放程序;/usr/share用於存放一些共享的數據,比如音樂文件或者圖標等等;/usr/lib目錄用於存放那些不能直接 運行的,但卻是許多程序運行所必需的一些函數庫文件。/usr/local : 這個目錄一般是用來存放用戶自編譯安裝軟件的存放目錄;一般是通過源碼包安裝的軟件,如果沒有特別指定安裝目錄的話,一般是安裝在這個目錄中。
/usr/bin/ 非必要可執行文件 (在單用戶模式中不需要);面向所有用戶。
/usr/include/ 標准包含文件。
/usr/lib/ /usr/bin/和/usr/sbin/中二進制文件的庫。
/usr/sbin/ 非必要的系統二進制文件,例如:大量網絡服務的守護進程。
/usr/share/ 體系結構無關(共享)數據。
/usr/src/ 源代碼,例如:內核源代碼及其頭文件。
/usr/X11R6/ X Window系統 版本 11, Release 6.
/usr/local/ 本地數據的第三層次, 具體到本台主機。通常而言有進一步的子目錄, 例如:bin/、lib/、share/.
/var : 該目錄存放那些經常被修改的文件,包括各種日志、數據文件;
/var/cache/ 應用程序緩存數據。這些數據是在本地生成的一個耗時的I/O或計算結果。應用程序必須能夠再生或恢復數據。緩存的文件可以被刪除而不導致數據丟失。
/var/lib/ 狀態信息。 由程序在運行時維護的持久性數據。 例如:數據庫、包裝的系統元數據等。
/var/lock/ 鎖文件,一類跟蹤當前使用中資源的文件。
/var/log/ 日志文件,包含大量日志文件。
/var/mail/ 用戶的電子郵箱。
/var/run/ 自最后一次啟動以來運行中的系統的信息,例如:當前登錄的用戶和運行中的守護進程。現已經被/run代替[13]。
/var/spool/ 等待處理的任務的脫機文件,例如:打印隊列和未讀的郵件。
/var/spool/mail/ 用戶的郵箱(不鼓勵的存儲位置)
/var/tmp/ 在系統重啟過程中可以保留的臨時文件。
/lib : 目錄是根文件系統上的程序所需的共享庫,存放了根文件系統程序運行所需的共享文件。這些文件包含了可被許多程序共享的代碼,以避免每個程序都包含有相同的子程序的副本,故可以使得可執行文件變得更小,節省空間。
/lib32 : 同上
/lib64 : 同上
/lost+found : 該目錄在大多數情況下都是空的。但當突然停電、或者非正常關機后,有些文件就臨時存放在;
/dev : 存放設備文件
/run : 代替/var/run目錄,
/proc : 虛擬文件系統,可以在該目錄下獲取系統信息,這些信息是在內存中由系統自己產生的,該目錄的內容不在硬盤上而在內存里;
/sys : 和proc一樣,虛擬文件系統,可以在該目錄下獲取系統信息,這些信息是在內存中由系統自己產生的,該目錄的內容不在硬盤上而在內存里;
/ 根目錄
/etc/ 程序的配置文件
/home 普通用戶的家目錄默認的存放位置
/mnt 掛載就是將硬盤連接在系統上
/root 管理員的家目錄,默認系統中只有一個管理員
/var 存放系統中經常被修改的文件,比如日志文件
SWAP分區的作用:
當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢復保存的數據到內存中。這樣,系統總是在物理內存不夠時,才進行Swap交換。
--------------
Linux中沒有消息就是最好的消息;報錯的時候linux才會有提示
-----------
sudo 類似於Windows上的以管理員的權限運行程序
幫助命令:info,man(Manual手冊),help
date :年月日星期 時間
date -s 更新系統當前顯示的時間
即使電腦關機了你的電腦的主板上也是有個電池給主板上的時鍾供電的
cal 日歷
cal -y 打印本年的日歷
CST:中國的時區
gedit linux中的notepad++工具:Ctrl+C關閉某個軟件或程序
Tab 自動補齊
Tab+Tan 列出當前目錄下的所有文件
Ctrl+L 假裝清屏
Ctrl+K 刪除光標后的位置
Ctrl+U
Ctrl+W 以空格為分割來刪除命令
Ctrl+Y 恢復刪除的命令
Ctrl+R 搜索最近使用的命令
Ctrl+D 結束輸入
Ctrl+C 中斷當前操作
林尼克斯系統開關機:
reboot 重啟
shutdown -r 重啟
shutdown -h 指定時間的關機
文件操作,目錄操作
. 當前目錄
.. 上一級目錄
passwd 修改當前用戶的密碼,每個用戶都可以修改自己的密碼
passwd 用戶名 修改指定用戶名的密碼,管理員權限才可以執行
man -k passwd 模糊匹配
ls -a 查看所有文件包括了以.點開頭的隱藏文件隱藏文件默認是不顯示的
ls -A
ls -a /var/ 查看指定目錄中的所有文件
ls -l 顯示文件的權限等信息
ls -lh 以Kb為單位顯示文件的信息,默認是按照文件名的a-z排序的
ls -lht 以Kb為單位顯示文件的信息,並按照文件的修改時間排序
ls -lhtr 以Kb為單位顯示文件的信息,並按照文件的修改時間排序,最上面的時間越早
ls -R
ls -l 1.txt 2.txt 查看指定文件的屬性信息
ls -l *.txt 找出所有txt結尾的文件
ls -l .bash* 找隱藏文件
sed、awk
sed 命令:一次處理一行數據
cat -n 有行號的查看指定文本的內容
ls -R 遞歸的查看
tree
yum install tree
鼠標的滾輪向下按,是將選中的文字粘貼或是在Portplay中放大或是縮小的命令
---------
- 普通文件
d 目錄文件
l 快捷方式文件,鏈接文件
--------------
./ 執行某個程序文件
----
mkdir 目錄文件名 創建目錄文件
mkdir -p 遞歸創建目錄文件
touch 修改文件的創建時間的(修改文件的訪問和修改時間),如果指定的文件不存在就創建這個文件
---------
rm 刪除文件
rm -i 刪除的時候有提示確認是否刪除
rm -rf 空目錄文件名 刪除指定的空目錄文件
rmdir 刪除指定的空目錄文件
mv 1.txt new_1.txt 給文件重命名
mv test new_test 給目錄文件重命名
mv 1.txt new_test/ 將1.txt移動到new_test目錄中
cp 的時候源文件與新文件都是存在的
cp 1.txt new_1.txt 對指定文件進行復制
cp -r test/ new_test/ 對指定目錄進行復制
cp 1.txt 11.txt
cp -a 1.txt 11.txt 復制的時候保留原文件的屬性
stat 1.txt 查看指定文件的狀態信息
ls 顯示目錄內容
cd 將當前工作目錄切換到指定目錄
cp 復制文件或復制目錄文件
一次將多個文件復制到某個目錄中去
cp -v file1,file2,file3 Desktop/
cp -v file{1-3} Desktop/
復制單個文件
cp -v /etc/fstab /root/fstab.bak
目錄的復制:
cp -r dir1 dir2 # 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名
cp -R /etc /home
mv 移動文件或重命名
mv oldfile newfile 將文件oldfile改名為newfile
將多個文件移動到指定目錄中去
mv newfilea newfileb newfilec newfiled newdirectory/
mv newfile[a-d] newdirectory/
pwd 打印當前工作目錄的路徑
rm 刪除文件或刪除目錄文件
刪除單個文件,刪除的時候需要確認是否刪除
rm filea
刪除多個文件,刪除的時候不需要確認是否刪除
rm -f filea fileb filec
rm -f file[a-c]
刪除目錄
rm -R dira
刪除目錄,刪除的時候不需要確認是否刪除
rm -f -R dira
rmdir 刪除空目錄文件
rmdir dira
mkdir 新建目錄文件
新建一個目錄文件
mkdir dira
新建一個多級目錄
mkdir -p dira/dirb/dirc
刪除一個多級目錄
rmdir -p dira/dirb/dirc
權限修改:
chgrp 修改文件的所屬組
chmod 修改文件的訪問權限
+ 表示在文件原來權限的基礎之上添加指定的權限
- 表示在文件原來權限的基礎之上去除指定的權限
= 表示不考慮文件原來的權限,將文件的權限設置為指定的權限
r:read 可讀權限 W:write 可以修改的權限 x:execute 可以執行的權限
u:user 文件或目錄的所有者
g:group 文件所屬的組
o:others 除了所有者和所屬組之外的其他人
a:all 表示所有用戶
chmod a-r,u+x filea 所有用戶去除可讀的權限,所有者添加可執行的權限
chmod a=rwx filea 給所有用戶可讀,可寫,可執行的權限
chmod 700 filea 文件所有者具有可讀,可寫,可執行的權限,其他用戶沒有任何權限
chown 修改文件的所有者或所屬組
find 查找文件
-name 按文件名進行查找
-gid 按照組id進行查找
-uid 按照用戶id進行查找
-group 按照組名進行查找
-user 按照用戶名進行查找
-empty 查找文件大小為0的目錄或文件
-size 按照指定的大小查找對應的文件
-type 按照文件的類型查找文件
b:塊設備:block device
c:字符文件:character device
d:目錄文件:directory
f:普通文件
-mtime 文件內容被修改的時間,modify time),指的是文件內容最后一次被修改的時間,單位以24小時計算。
-ctime 變更時間(change time),指的是文件本身(權限、所屬組、位置......)最后一次被修改的時間,單位以24小時計算。
-atime atime:被訪問時間(access time)指的是文件最后一次被讀取的時間,可以使用touch命令更改為當前時間,單位以24小時計算。
邏輯運算符:
與:表示並且 and
或:多種條件中只要有一個成立即可 or
非:不是 not
ln 創建文件的快捷方式
linux中鏈接文件分為兩種:
硬鏈接 hard link 需要與源文件在硬盤的同一個分區中
符號鏈接symbolic link :刪除源文件后,就失效了,它存放的是源文件的訪問路徑
mkdir 創建目錄文件
mkdir -p 遞歸的創建目錄文件
umask 顯示文件的權限掩碼
新建的目錄默認的權限是755(777-022)
批量創建目錄文件
mkdir dirname_{a,b,c,d,e,f}
touch 創建普通的文本文件
修改文件的時間屬性,修改的是文件的時間戳
-a 修改文件最后一次的訪問時間
-m 修改文件的最后一次修改時間
查看一個文件的時間屬性
stat filenamea
批量創建文件
touch filename{a,b,c,d,e,f}
進入一個目錄
cd Desktop/
whereis 顯示一個命令的所在路徑,查看一條命令相關的文件的存放位置(命令源代碼文件的位置和man幫助文檔的位置的絕對路徑)
which 顯示一個命令的絕對路徑,查看一條命令對應的文件的存放的位置的絕對路徑,是基於系統中的環境變量PAth來查找的
file 查看一個文件的類型:判斷一個文件是目錄文件,還是設備文件還是普通文件
rename 修改文件的名稱
文本編輯,文本過濾
cat 查看小文件的內容
cat -b filenamea 顯示非空行的行號
cat 命令:
cat -n 顯示行號
cat -s 合並空行
------------
tac 命令 從最后一行開始倒序查看文件
more 查看大文件的內容
more -15 filenamea 以每個屏幕15行的內容顯示文件的內容
less 分屏顯示文件內容
grep 搜索匹配的內容,過濾
-w 整個單詞匹配
-x 整行匹配
-i 忽略大小寫的不同
head 查看一個文件前幾行的內容,顯示一個文件開頭多少行的文件內容
head -n 2 filenamea 查看一個文件頭兩行的內容
tail 查看一個文件后幾行的內容
wc 統計個數:可以統計單詞數,行數
sort 排序,排序的時候按照的是英文字母對應的ASCII碼值進行比較大小
split 切割文件
diff 比較兩個文件的不同
diff from-file to-file
find與grep之間的區別:
find在目錄結構中搜索文件查找滿足尋找條件的文件
grep是查找匹配條件的行,find是搜索匹配條件的文件。
grep是文本中找匹配條件的行
grep -i hist 過濾hist開頭的單詞
------------
more、less、head、tail、ls、用戶權限
more 命令:空格表示一頁一頁的翻看 回車Enter表示一行一行的顯示
b鍵,向上返回
q鍵,退出查看
------------
less 命令:Alt+. 快捷鍵,按less后按alt后再按.點切換找之前的命令
less ESC+.
wc 命令:統計個數
\n 表示兩個字符
wc -c 查看有多少個字節,統計字節數
wc -l 查看有多少行,統計行數
wc -m 查看有多少個字符,統計字符數
wc -w 以空格為分割符,查看個數,統計字數
一個漢字
sort 命令:排序
sort -r
sort -n 按數字大小排序,越大放在越下面
sort -t
sort -k
python之禪 import this
按第三列來排序:
sort -t ":" -k 3 -n /etc/passwd
uniq 命令:忽略重復行
uniq -c
uniq -u
uniq -i 不區分大小寫
cut 命令:
cut -d: -f 1 /etc/passwd 以:作為分隔取出文本內容中的第一列
cut -d: -f 2 /etc/passwd 取出文本內容中的第2列
cut -d: -f 3 /etc/passwd 取出文本內容中的第3列
根據字符來取
cut -c 5
cut -c 1,5
cut -c 1-5,6
tee 命令:
標准輸入:stdin
標准正確輸出:stdout
標准錯誤輸出:stderr
awk命令:
awk 命令:對指定的文本內容進行切片分析和處理
awk -F":" '{print $0}' /etc/passwd 打印整行
awk -F":" '{print $1}' /etc/passwd 取出所有的用戶名
tail /etc/passwd |awk -F":" '{print $1}' /etc/passwd
tail /etc/passwd |awk -F":" '{print $1}' /etc/passwd
tail /etc/passwd |awk -F":" '{print $1" " $2 $3 $4}' /etc/passwd
tail /etc/passwd |awk -F":" '{print $1" " $2" " $3" " $4}' /etc/passwd
awk '{print $1}' 顯示指定文件的每行的第一列
awk '{print $0}' 顯示指定文件的每行的第一列 $0表示顯示一整行
awk '{print FNR}' 打印行號
awk '{print NF}'
awk -F":" '{print $1}' /etc/passwd 取出第一列,也就是取出所有的用戶名
tail 指定的文件 |awk 'BEGIN{OFS="_";}{print $1,$2,$3}'
tail 指定的文件 |awk 'BEGIN{OFS="_";}{print $1,$2,$3}END{}'
history 命令:
history 5 最近的5條
history 10 最近執行過的10條命令
!210 執行history中的210條命令
!py 執行最后一天以py開頭的命令
ls -a ~/.bash*
歷史命令保存在.bash_history 文件中
cat
which 命令:
查看一個可執行命令存放在什么位置
which ls
ls -l /bin/ls
tail 命令:
tail 默認顯示最后10行
tail -n 5 顯示最后5行
tail -f 實時監控一個文件做了什么修改內容,一般查看一個日志的動態生成了什么
head 命令:
顯示一個文件的前幾行
head -n 20 顯示前20行
head 默認顯示的是前10行
mount 命令:掛載
把光驅掛載到mnt下
mount /dev/cdrom /mnt
卸載mnt下的所有掛載
umount /mnt
mount -o remount /mnt 重新掛載
sr0 等於 /dev/cdrom
df -Th
ll /dev/cdrom
--------------------
掛載iso鏡像文件
mount xxx.iso -o loop /mnt
------------
強制卸載一個文件
umount -l /dev/sr0 卸載一個正在被使用的掛載sr0
cat 命令
uniq 去除重復,相同的行,只顯示一次
空格不等於空行,有空格的行不是空行
stdin 標准輸入,系統通過stdin接收用戶的輸入的命令
stdout 標准正確輸出
stderr 標准錯誤輸出
locate 命令:
查找文件命令
locate 查找文件的時候不掃描系統的磁盤,是直接從數據庫中取文件的
locate -i 查找的時候忽略大小寫
更新locate的數據庫
sudo updatedb
find 命令:
沒有數據庫,直接從系統的磁盤中挨個查找的
find /home/ -name "*.txt" 找所有.txt 結尾的文件
find /home/ -iname "*.txt" 找所有.txt 結尾的文件,找的時候不區分打小寫
查找所有的普通文件
sudo find /home/ -type f
`` 等價於 $() 把其中的內容當做一條命令來執行
------------------
sudo find /home/ -size +10M 找大於10M的文件
sudo find /home/ -size +10K 找小於10K的文件
ll -h
1b=512c
b 塊
c 字節
w 字=2c字節
grep 文本內容所搜命令:
grep -v 取反的搜索
grep -l 列出當前查找的文件名
grep -i 搜索的時候不區分大小寫
grep -o 只顯示搜索的關鍵字
grep -o 需要搜索的關鍵字|wc -l 統計包含所有關鍵字的有多少行
grep -on 只顯示關鍵字和行號
grep -n 顯示行號
用戶管理的命令
passwd 設置密碼
useradd 新建一個用戶
userdel 刪除用戶
userdel -r 刪除用戶信息及用戶的家目錄
userdel 只刪除用戶的信息,保留用戶的家目錄
usermod 修改用戶信息
alias 別名="ls -l"
alias cd="rm -rf /"
-----------------------------
用戶配置文件、環境變量、重定向
一次刪除多個文件
rm -rf 需要刪的文件1 需要刪的文件2 需要刪的文件3
ls -a
------------------
cd ~ 波浪線表示當前用戶的家目錄
--------------
用戶默認的配置文件
ls /etc/skel/
加載一下某個配置文件
source .bashrc 把.bashrc配置文件重新加載到系統中
文件權限管理命令
/ 正斜杠 ,從右上向左下滑的,偏向右的
\反斜杠,偏向左的
-------------------
chmod 修改文件的權限位rwx:+ - = 7653210 u g o a
chown 更改所有者,所有組
chown -R 遞歸的修改當前目錄及當前目錄下的所有文件和目錄的權限
用戶組管理命令
用戶組的管理
groupadd
groupdel
groupmod
-----------------
su 切換用戶的時候不一定會加載用戶的配置文件
su - 切換用戶的時候也加載對應的用戶的配置文件
sudo 以管理員的身份執行某條命令,讓用戶以指定的身份去執行某條命令
--------------------
sudo的配置文件:
vim /etc/sudoers
或者
visudo
壓縮解壓
tar
-c 創建打包文件
-x 解壓打包文件
-t 顯示tar包中的文件列表
-z 使用的是gzip工具進行的壓縮和解壓
-j 使用的是bzip2工具進行的壓縮和解壓
-v 打包的時候顯示執行的過程
-f 指定打包或是解壓后文件的名字
-p 打包的時候保留原來文件的原有屬性
將etc/目錄下以host開頭的文件打包為test.tar文件
tar -cvf test.tar /etc/host*
將/etc/目錄中的所有文件打包並壓縮etc.tar.gz
tar -czvf etc.tar.gz /etc/ 調用了gzip壓縮工具
tar -cjvf etc.tar.gz /etc/ 調用了bizp2壓縮工具
解壓剛打包壓縮的文件etc.tar.gz
tar -zxvf etc.tar.gz
tar -jxvf etc.tar.gz
tar.bz2格式
解壓: tar jxvf FileName.tar.bz2
壓縮: tar jcvf FileName.tar.bz2 DirName
tar.gz格式
解壓: tar zxvf FileName.tar.gz
壓縮: tar zcvf FileName.tar.gz DirName
zip格式
解壓: unzip FileName.zip
壓縮: zip FileName.zip DirName
rar格式
解壓: rar a FileName.rar
壓縮: rar e FileName.rar
最常用的壓縮也解壓縮文件的方式
#壓縮
tar -czvf xxx.tar.gz
tar -cjvf xxx.tar.bz2
#解壓縮
tar -xzvf xxx.tar.gz
tar -xjvf xxx.tar.bz2
將整個 /etc 目錄打包
tar -cvf /tmp/etc.tar /etc <==僅打包,不壓縮!
tar -czvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 壓縮
tar -cjvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 壓縮
tar 打包文件命令:
-p 保證文件原來的屬性不變
-f 指定的文件名
-c 表示創建
-v 顯示執行過程
-x 解壓縮
-z 用gzip格式壓縮文件
-j 用bizp2格式壓縮文件
解壓文件的時候不指定解壓格式,系統會自動選擇解壓
tar xf a.tar.gz
zip
z:代表的是壓縮
c:代表的是打包
x:代表的是解壓
v:代表的是過程
f:代表的是指定文件名
壓縮解壓的時候特別需要注意的事情是:用哪個壓縮工具壓縮的就得用哪個壓縮工具解壓,壓縮與解壓之間工具不能混用
shell腳本
腳本就是:寫一堆指令存成一個文本,用於完成一些小任務
a="123" linux中定義一個變量
echo $a
echo $b 顯示的是空
echo $master 打印的是根/
-----------
Ubuntu中安裝一個vim
apt-get install -y vim
-----------------------------
/etc/bashrc 對整個系統中的用戶都起作用的用戶配置文件
---------
echo $HOME 顯示當前用戶家目錄的路徑
所有的環境變量都是大寫的
env 查看當前的環境變量
------------------------------
export 命令:用來設置系統中的環境變量
export AS="xxxxx"
echo $xxxxx
永久生效需要修改配置文件
vim -/.profile
source -/.profile 讓修改的配置文件生效一下
------------------
ifconfig 查看網卡的配置信息,或者查看ip地址
----------------
cat -n test.txt |sort -rn 對一個文件中的內容顯示行號的排序
------------
| 管道符,將前一條命令的執行結果,交給后面的命令執行,一條命令中管道符可以有多個
-----------------
重定向:> 覆蓋原文件內容的寫入
>> 添加寫入,追加寫入
-----------------
1> 標准正確輸出
2> 標准錯誤輸出
&> 標准正確和標准錯誤輸出,日志文件中系統啟動錯誤或正確的信息都寫在同一個文件中
-----------
locate、find、掛載卸載
-----------
echo 在屏幕上打印字符串
打印系統中的環境變量
echo $PATH
kill 殺死某個進程
alias 命令的別名
unalias 取消命令的別名
jobs 顯示任務列表
set 設置shell變量
unset 刪除shell變量或函數
type 判斷某個命令是外部命令還是內部命令
內部指令與外部指令的區別
logout 退出當前登錄的shell
exit 退出當前登錄的shell
export 將一個變量設置為環境變量
history 查看執行過的歷史命令
-c 清空當前的歷史命令
n 打印歷史命令中最近使用過的n條命令
exec 執行某個命令
umask 設置文件的權限掩碼
權限掩碼的作用是屏蔽掉新建文件的部分權限,
新建的普通文件默認的權限是666-022=644=rw-r--r--
新建目錄的權限位777-022=755=rwxr-xr-x
help 顯示命令的幫助信息
help顯示的是shell內部命令的幫助信息,外部命令的幫助文檔用man或是info來查看
help cd 顯示cd命令的幫助信息
cd --help 其中help是一個命令選項的簡單介紹,help是軟件編寫人員在編寫的時候提供了內置的查詢參數,
command 調用某個命令並執行
Linux系統關機相關的命令
halt 關閉系統
halt -p 關閉操作系統時執行關閉電源的操作
poweroff 關閉系統並切斷電源,關閉操作系統后自動切斷系統的電源
shutdown 關閉系統,init程序的運行級別是0表示的是關閉計算機,init程序的運行級別是6表示的是重啟計算機
shutdown -r 重啟系統
shutdown -c 取消關機操作
reboot 重啟系統,重新啟動正在運行的Linux系統
Linux系統中內置的工具
Linux系統中常用的工具
man Linux命令的幫助手冊
在man 命令 打開的對應的命令的幫助文檔中,用/關鍵字 來查找你需要的關鍵字,用Q鍵來退出幫助文檔,空格鍵用來翻一頁,Enter鍵用來翻一行
info GNU格式的在線幫助文檔
cal 顯示日歷
date 顯示系統的日期時間
whatis 從數據庫中查詢指定的關鍵字
who 打印當前登錄的用戶是誰
whoami 打印當前的用戶名
login 登錄系統賬戶
users 查看當前登錄的系統用戶是誰
clear 清屏命令,相當於Ctrl+L命令
man -f
man -k
用戶和用戶組的管理
useradd:創建一個系統用戶
-e 有效期限。指定帳號的有效期限。格式為YYYY-MM-DD,
-c 備注 加上備注。
-g 設置用戶所屬的組,只有一個主要組
-G 設置用戶所屬的次要組,可以有多個
userdel -r 刪除的用戶名和用戶的家目錄
useradd -d / user1
userdel -r user1
useradd 新建系統用戶
-c 設置用戶的備注信息
-d 設置用戶的宿主目錄,默認的宿主目錄是/home/,也就是用戶的家目錄
-e 設置賬號的過期時間
-g 指定用戶的用戶組,默認組名與用戶名相同
-u 指定用戶的id號
userdel 刪除某個系統賬戶
-r 刪除用戶的同時刪除與用戶相關的所有文件
-f 強制刪除用戶,即使是當前已經登錄的用戶
passwd 設置用戶密碼
-d 刪除用戶的密碼
root用戶或者是超級管理員用戶可以修改系統中任何用戶的密碼,普通用戶只能修改自己的密碼,
groupadd 新建一個工作組
-g 指定工作組的id號
groupdel 刪除某個工作組
su 切換系統中的登錄賬戶的身份,
su - root 切換到root賬戶上去
su root 切換到root賬戶上去
usermod 修改系統賬戶的信息
-d 修改用戶的家目錄
-c 修改用戶的注釋信息
-g 修改用戶的組
-l 修改登錄名
gpasswd 管理工作組中的文件,它是管理組文件/etc/group 和/etc/gshadow 的管理工具
gpasswd -a zhangsan ttt 將zhangsan用戶加入到ttt工作組中
gpasswd -d zhangsan ttt 將zhangsan用戶從ttt工作組中刪除
groupmod 修改工作組信息
groupmod -g 10000 ttt 將組ttt的組id修改為10000
groupmod -n 10000 ttt 將組ttt的組名修改為10000
groups 打印當前用戶所屬的工作組信息
groups root 打印root用戶所屬的工作組信息
logname 打印當前系統用戶的用戶名,用於顯示當前登錄用戶的用戶名
newusers 批處理創建系統用戶,用來一次創建多個用戶
chpasswd 批處理修改系統用戶的密碼,Ctrl+D 來結束命令的輸入
nologin 拒絕某個用戶登錄系統,將不允許登錄的用戶的登錄shell修改為/sbin/nologin
/etc/nologin.txt 用來定制拒絕用戶登錄的時候的登錄提示信息
超級用戶,可以用下列形式指定任何用戶的口令:修改XXX用戶的登錄密碼
passwd XXX
New password:redhat
Re-enter new password:redhat
普通用戶修改自己的口令時,passwd命令會先詢問原口令,驗證后再要求用戶輸入兩遍新口令,如果兩次輸入的口令一致,則將這個口令指定給用戶;而超級用戶為用戶指定口令時,就不需要知道原口令。
修改用戶所在的組名:將XXX 修改為burning
groupmod -n burning XXX
用戶管理、su、sudo、alias
--------------
less /etc/passwd
uid: user id
gid: group id
comment注釋;說明
shell 殼
linux用戶的密碼保存在
less /etc/shadow
Ctrl+減號 Ctrl+Shfit+加號,放大縮小終端總的文字
--------------
添加一個用戶
sudo useradd user1
創建用戶的家目錄
sudo mkdir /home/user1
sudo chmod user1:user1 /home/user1/
設置密碼
sudo passwd user1
用新用戶登錄
su - user1 加載系統的環境
查看當前用戶是誰
刪除一個用戶
sudo userdel -r user1
-------------
修改已有用戶的信息
usermod
linux中是通過uid和gid來識別每一個用戶的
只要uid是0 不管你叫什么用戶名你都是linux系統中的管理員
root如果uid不是0就不是超級用戶,就不是管理員
鎖定一個賬戶,用正確的密碼也不能登錄
sudo usermod -L user1
解除鎖定
sudo usermod -u user1
設置一個密碼
sudo usermod -p 新密碼 user1
------------------
su - 加載的用戶的配置文件
cd /home/
ls -a .bash*
---------------------
sudo 以管理員的程序運行某個程序
sudo的配置文件
/etc/sudoers
-------------------
cat /etc/sudoers |grep -v "#" 不顯示有#的行
-----------
alias 命令:給一個命令起別名
別名命令長期有效的配置文件:
.bashrc
./ 用來執行有x權限的指定文件
------------
chmod 命令:修改一個文件權限的命令
權限有三組:所有者user:rwx 所屬組group:rwx 其他人other:rwx
chmod u=rw 讓所有者只有rx權限
g=rx
o=rx
chmod g+wx 增加某個指定的權限
chmod u+wx
chmod o+wx
chmod a+x a表示所有,所有者,所有組,其他人
chmod a-x 減去某個指定的權限
chmod中的:
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
用二進制表示文件的權限
r 4
w 2
x 1
- 0
------------
目錄文件的rwx
目錄可讀:表示可以查看目錄下的文件
目錄可寫:表示可以修改目錄下的文件
目錄可執行:表示可以進入這個目錄
chmod -R 遞歸:循環的一種
chmod -R o+rw /etc/ 修改etc目錄中所有文件的權限
sudo chmod 以管理員的權限執行某條命令
修改一個文件的所有者和所屬組
sudo chmod 11:11 xx 將xx文件的所有者和所屬組的名字都修改成11
磁盤管理
df 查看當前系統中磁盤空間的使用信息
df -H 以1000字節為單位來顯示磁盤空間的使用信息
df /etc/hosts 顯示指定文件所在分區的磁盤空間的使用信息
df -T 顯示文件系統的類型
fdisk 給linux系統中磁盤分區的工具(512,1024,2048)
fdisk /dev/sdb 對硬盤/dev/sdb進行分區
mkfs 創建文件系統,即對硬盤進行格式化:linux系統中格式化后的硬盤分區才能夠被用來使用和保存文件
linux中的新硬盤需要先用fdisk進行硬盤分區后,使用mkfs進行格式化,再使用mount來掛載后才可以使用
mkswap 創建交換分區,或創建交換文件
pvcreate 創建物理卷,用於將物理硬盤分區初始化為物理卷,用於被LVM使用
pvscan 掃描所有磁盤上的物理卷,列出找到的物理卷列表
pvscan -n 用來列出不屬於任何卷組的的物理卷,這些物理卷是未被使用的,是可以被使用的物理卷
pvdisplay 顯示物理邏輯卷的屬性,物理卷的名稱,所屬的卷組,物理卷的大小
pvdisplay /dev/sdb* 顯示物理卷的基本信息
pvremove 刪除某個指定的物理卷,用來刪除一個已經存在的物理卷
pvchange 修改某個物理卷的屬性
pvs 打印物理卷的信息報表,顯示物理卷的概要信息
vgcreate 創建卷組,用來創建LVM卷組,
Volume Group 卷組
vgscan 掃描並顯示系統中的卷組,用來查找系統中存在的LVM卷組,並顯示找到的卷組列表
vgdisplay 顯示卷組的屬性,用來顯示LVM卷組的元數據信息,
vgextend 向卷組中添加物理卷,用於動態的擴展LVM卷組,通過向卷組中添加物理卷來增加卷組的容量
vgreduce 從卷組中刪除某個指定的物理卷,用來刪除LVM卷組中的物理卷來減少卷組的容量,
vgreduce -a 用來刪除指定的物理卷或是所有空的物理卷,
vgchange 修改卷組的屬性,用來設置卷組是處於活動狀態還是處於非活動狀態
vgremove 刪除某個卷組,刪除LVM卷組
lvcreate 創建邏輯卷,創建LVM邏輯卷
lvscan 掃描邏輯卷,用來掃描當前系統中存在的所有的LVM邏輯卷
lvdisplay 顯示邏輯卷屬性,用來顯示LVM邏輯卷的空間大小,讀寫狀態和快照信息
lvextend 擴展邏輯卷的空間,用於在線擴展邏輯卷的空間大小,而不中斷應用程序對邏輯卷的訪問,
lvreduce 縮小邏輯卷的空間,用來減少LVM邏輯卷所占用的空間大小
lvremove 刪除某個邏輯卷,用來刪除指定的LVM邏輯卷
lvresize 修改某個邏輯卷空間的大小,調整LVM邏輯卷的空間大小
文件系統管理
mount 加載文件系統,掛載點的目錄必須是存在並且是空的
umount 卸載文件系統
mkfs 創建文件系統,用於在硬盤上創建Linux文件系統
mke2fs 創建ext2/ext3類型的文件系統,用於在硬盤分區上創建ext2/ext3文件系統,在Linux中創建文件系統就是格式化分區
edquota 編輯磁盤配額,用於指定某個用戶或工作組的磁盤配額
sync 刷新文件系統的緩存區
atime
ctime
mtime
-------------------
df -Th 查看下系統分區怎么掛載的
df -T 顯示文件系統的類型
-----------
du 查看一個目錄的大小
du -sh ./* 查看當前目錄中所有文件每個的大小
du -sh . 查看當前目錄中文件總的大小
du -h ./* 顯示每個文件的大小
計划任務
at 創建一個指定時間執行的計划任務,
atq 查詢當前用戶下等待執行的任務列表,用於顯示系統中等待執行的任務列表,任務列表中的任務由at命令和batch命令創建的
如果要禁用某個用戶使用atq,可以將用戶名加入到/etc/at.deny中
atrm 刪除某個執行的計划任務,刪除待執行任務隊列中的指定任務,先用atq查詢處任務的任務號,然后再根據任務號刪除指定的任務
batch 創建一個指定時間執行的計划任務,用於創建在某個指定時間,當系統不繁忙時執行的計划任務,batch命令提交的計划任務是一次性的任務,周期性的執行任務需要用crontab命令來指定,如果需要某個用戶禁用batch指令,可以將用戶名加入到/etc/at/deny中即可
echo "userxxx" >> /etc/at.deny 使用重定向中的追加
crontab 創建一個周期性執行的計划任務,
chmod a+x 1.txt:
crontab-l 與 /var/spool/cron/root 顯示的信息相同
cron 計划任務命令:
crontab -e
分時日月周
寫一個計划任務
*/1 * * * * date >> /tmp/date.txt
crontab -l 查看已經存在的計划任務
計划任務后跟的命令,不要超過64個字節,不然的話,可能有些linux系統讀取不到命令
一般很長的計划命令寫在腳本的文本中執行
刪除計划任務
crontab -r
Linux系統中的進程管理
ps 打印當前的系統進程快照,查看當前用戶的進程
top 實時顯示系統的整體性能信息,顯示系統總體的運行狀態的信息
uptime 顯示系統的運行時間及負載信息,顯示當前系統總共運行了多長時間和系統的平均負載
free 顯示內存的使用,顯示當前系統未使用的和已使用的內存的信息,
-b 以字節為單位顯示內存的使用情況,默認的顯示值
-k 以kb為單位顯示內存的使用情況
-m 以M為單位顯示內存的使用情況
iostat 顯示cpu信息和系統中的分區信息,用來監控系統輸入輸出設備和CPU的使用情況
-c 僅顯示cpu的使用情況
-d 僅顯示設備的使用率
-k 以kb為單位顯示
-m 以M為單位顯示
mpstat 查看cpu的狀態信息,用於在多個CPU的環境下,顯示各個CPU的狀態,cpu的編號從0開始
mpstat -P ALL 顯示當前系統中所有cpu的狀態
sar 顯示系統的活動狀態,是linux中系統運行狀態的統計工具
-A 顯示所有的報告信息
-b 顯示I/O速率
-P 顯示CPU的狀態
-R 顯示內存的狀態
-u 顯示cpu的利用率
vmstat 顯示系統的整體運行狀態,Virtual Memory Statics:虛擬內存狀態
time 統計指令的運行時間,用於統計給定的命令運行所需要花費的總的時間
time find / -name passwd > out.txt 用來統計find命令運行所花費的時間
lsof 顯示所有已打開的文件列表,用來顯示linux系統中當前已經打開的所有文件列表
uname 打印系統信息,用來打印當前系統相關的信息:內核版本號,主機名,操作系統類型
-a 打印系統所有的信息
-s 打印系統內核的名稱
-n 打印主機的名稱
-r 打印系統內核發行的版本號
-o 打印操作系統的名稱
-p 打印主機處理器的類型
-m 打印主機硬件的名稱
軟件包管理
rpm RPM軟件包管理器,redhat package manager 紅帽公司開發的linux軟件包管理工具
-i 安裝rpm軟件包
-q 查詢軟件包
-e 卸載軟件包
-U 更新軟件包
-f 強制執行操作
-h 顯示執行的進度
rpm -ivh 安裝軟件包,並顯示安裝進度
rpm -q bind 查詢 bind 軟件包是否安裝了
yum 基於RPM的軟件包管理器
yum install 安裝軟件包
yum update 更新軟件包
check-update檢查是否有可用的軟件包更新
remove 刪除指定的軟件包
clean 清理過期的軟件包
search 查詢軟件包
deplist 顯示軟件包所有的依賴關系
resolvedep 顯示軟件包的依賴關系
yum install zsh 安裝zsh軟件包
yum update php 更新php軟件包
apt-get APT包管理工具,它是Debian發行版中的軟件包管理工具,
用來通過網絡從debian鏡像服務器上下載所需要的軟件包
apt-get install ccconf 安裝軟件包,
patch 補丁
chroot,用來在指定的根目錄下運行命令
last 顯示最近用戶的登錄列表,用來顯示最近時間登陸系統的用戶的用戶列表,它讀取的是/var/log/wtmp 文件中的內容,記錄的是所有用戶登錄與退出系統的信息
-t 顯示指定時間登錄到系統的用戶列表
last zhangsan 顯示zhangsan用戶的登錄列表
lastb 顯示錯誤的登錄列表,
用來顯示用戶錯誤的登錄列表,用來檢測系統的登錄異常
last zhangsan 顯示用戶zhangsan錯誤的登錄列表
lastlog 顯示用戶最近一次的登錄信息,用來顯示系統中所有用戶最近的一次登錄系統的信息,lastlog讀取的是/var/log/lastlog文件中的內容
-b 指定天數前的登錄信息
-t 指定天數以來的用戶登錄信息
-u 顯示用戶的最近登錄信息
sudo 臨時獲取某個系統賬戶的權限,然后去執行命令
sudo命令的配置文件是/etc/sudoers
gcc GNU的C/C++編譯器
make GNU的編譯工具,用來編譯源代碼文件
安裝源代碼軟件的步驟是:配置configure 編譯make 安裝makeinstall
as GNU的匯編工具
vim文本編輯器
vi和vim
vim的好處就是一個鍵盤可以完成所有的操作
vim也是Linux發行版中通用的文本編輯器
vim的配置文件
cat /etc/vim/vimrc
3dd 從當前位置開始向下刪除3行
d$ 刪除當前位置到一行的結尾
d^ 刪除當前位置到一行的行首
yy 復制
y$ 復制當前位置到一行的結尾
y^ 復制當前位置到一行的行首
vim 向上查找
vim 向下查找
vim 替換
正則表達式匹配:
^ 匹配開頭
$ 匹配結尾
[] 范圍匹配
[a-z] 所有小寫字母
[A-Z] 所有大寫字母
[0-9] 所有數字
[^0-9] 所有非數字
[a-z]* 表示有0個或多個小寫字母
[a-z]+ 表示至少出現一次小寫字母
[a-z]? 表示出現0次或1次小寫字母
. 表示任意一個字符
.* 表示任意一個字符出現一次或多次
grep.*
grep "^S" 查找指定文本中以S開頭的行
grep -E "d$" 查找指定文本中以d結尾的行
grep -E 等同於 egrep 表示使用正則表達式查找
grep -E "[0-9]" 找出文本中含有數字的行
grep -E "[^0-9]" 找出文本中不含數字的行
grep -E "[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[0-9a-zA-Z]" 查找符合郵箱格式的行
grep -E "[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[0-9a-zA-Z]+" 查找符合郵箱格式的行
Linux的網絡命令
ifconfig 查看網卡的配置信息
route 顯示和設置路由
ifcfg 配置網卡信息
ifcfg eth0 add 192.168.0.1/24 為eth0網卡設置IP地址
ifdown 禁用某個網絡接口
ifdown eth0 禁用網絡接口eth0
ifup 開啟某個網絡接口
ifup eth0 開啟網絡接口eth0
hostname 顯示和設置系統中的主機的名稱
-d 顯示DNS域名
-i 顯示主機的IP地址
hostname 顯示當前系統的主機名
hostname -i 顯示當前系統主機的IP地址
hostname hostnameabc 設置一個主機名
ping 測試主機之間網絡是否是連通的狀態,用來測試主機之間的網絡連通性,它使用的是Internet的消息控制協議Internet Control Message Protocol
ping命令發出的是ICMPRequest報文到目的主機,目的主機收到報文后給出ICMP Response回應信息,如果發送端的主機沒有收到應答信息,表名與目的主機之間的網絡連通性有故障
-c 指定發送請求報文的次數
-i 指定發送請求報文的時間間隔-秒
-s 設置發送請求報文的大小
-t 設置發送的數據包的生存期TTL的值:Time To Life :生存期,它是ICMP報文在網絡上的存活時間
TTL常見的值是32 64 128 255 TTL的值,反映的是ICMP報文所能夠經過的路由器的數量,每經過一個路由器。路由器就像數據包的TTL值減去1,如果TTL的值為0則路由器將不再轉發此報文,
指定ping 命令后顯示的TTL值,是目標機器的默認TTL減去經過的路由器后得到的值
Ping命令是基於網絡層的ICMP協議工作的,所以ping一個域名,在發送ICMP報文前,ping命令會自動調用域名解析器將域名轉換為IP地址
ping -c 4 www.baidu.com 向百度發送4個測試網絡是否可用的的報文信息
netstat 查看當前的網絡狀態
-t 或 --tcp 顯示TCP協議連接的狀態信息
-u 或 --UDP 顯示UDP協議的狀態信息
nslookup 某個IP對應的網站的域名查詢工具
nslookup www.google.com 查詢www.google.com對應的IP地址
nslookup 交互式的查詢IP或是域名
dig DNS查詢工具
DNS:Domain Name System 完成IP地址與主機域名之間的相互轉換,這個轉換過程稱為域名解析
根據域名查到對應的IP叫正向域名解析
由IP地址查到對應的域名叫反向域名解析
dig www.baidu.com 查詢域名對應的IP地址
host 域名查詢工具
host www.baidu.com 查詢域名對應的IP地址
arping 發送arp請求給鄰居主機,功能與ping命令類似,但是arping是基於ARP廣播機制的所以arping只能測試同一網段的主機的網絡的連通行,ping命令是基於ICMP協議的,ICMP協議是可以路由的,所以ping命令可以測試任意網段的主機的連通行
arping -c 5 192.168.0.1 向主機發送指定數目的ARP報文
arpwatch 監聽arp緩沖區的變化
ftp 文件傳輸協議
FTP:File Transfer Protocol即文件傳輸協議,用於本地和服務器之間上傳和下載文件
mput 一次上傳多個文件到服務器
mget 一次從服務器上下載多個文件到本地
put或send 將單個文件上傳到服務器
get 從服務器上下載指定的文件
anonymous 匿名
ftp 服務器地址 連接到服務器
mail 接收和發送電子郵件的工具
-b 收信人的地址
-c 收信人的地址
-s 指定郵件的主題
-u 讀取指定用戶的郵件
linux系統中將收到的郵件默認存放在/var/spool/mail/目錄下
root用戶的郵件保存在/var/spool/mail/root文件中,不同用戶的郵件保存在以用戶命名的文件中
ftp
telnet 用於遠程登錄主機,對主機進行管理,使用的是TELNET協議,Telnet服務器默認使用的是TCP協議的23號端口
telnet -l root 192.168.0.1 遠程登錄到主機
telnet root 192.168.0.1 遠程登錄到主機
tftp 簡單的文件傳輸協議,在本機和tftp服務器之間用TFTP協議傳輸文件,
connect 連接tftp服務器
put 向tftp服務器上傳文件
get 從tftp服務器下載文件
quit 退出
wget 從指定的URL地址下載文件
wget -R .jpg,.gif www.baidu.com 不下載圖片文件
---------------------
ssh 在客戶機上遠程登錄服務器用的
ssh 系統用戶名@服務器的IP地址
ssh root@192.168.10.10
或者:ssh 服務器的IP地址
------------------------------
二進制數字:
512,256,128,64,32,16,8,4,2,1,0
------------------------- 在修改更新中。。。。。。。。
附錄部分:
accept 接受
reject 拒絕
cancel 取消
primary group 主要組
main(主要的)
restricted(受限的)
universe(廣泛的)
multiverse(多元的)
force 強制
學習中想到的一些亂七八糟:
懶有兩種:思想上的懶,身體上的懶
有腳踏實地的敢干,有仰望星空的敢想,不斷的給自己更多的可能性
想做的+必須要做的
不給別人添麻煩:如果可以的話,不要在公共場合吃有味道的東西,因為有味道你會影響到你旁邊的人,你覺得可以的味道,別人不想聞到的呀
人的素質和氣質的培養是需要很長期的堅持的培養的
“以史為鏡,可以知興衰;以人為鏡,可以知得失”出自於《舊唐書·魏徵傳》。
一個人用銅當鏡子,可以照見衣帽是不是穿戴得端正;用歷史當鏡子,可以知道國家興亡的原因;用人當鏡子,可以發現自己的對錯
生活中臉皮子一定要厚,不要動不動就生氣了
跟老板抬杠,這樣的話,你會沒有前途的
表達能力不好的話,不能把一件事情描述清楚
多做一些嘗試,更多的准備,更充分的准備
要連續不斷的堅持