windows開機會啟動許多程式。它們在Windows叫做’服務" ( service ) , 在Linux就叫做"守護行程" ( daemon)。
一般來說,使用者的登入方式有三種:
●命令列登入 賬號密碼
●SSH登入(遠端) 我們使用的是Xshell
●圖形介面登入 原生的虛擬機器器
最高許可權賬戶為root,可以操作一切!
在linux領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。
關機指令為shutdown,這個指令不建議在伺服器上操作,可以在本機上嘗試。
sync #將資料由記憶體同步到硬碟中。
shutdown #關機指令,你可以man shutdown 來看一下 幫助檔案。例如你可以執行如下命令關機:
shutdown -h 10 #這個命令告訴大家,計算機將在10分鐘後關機
shutdown -h now#立馬關機
shutdown -h 20:25 #系統會在今天20:25關機
shutdown -h +10 #十分鐘後關機
shutdown -r now #系統立馬重新啟動
shutdown -r +10 #系統十分鐘後重新啟動
reboot #就是重新啟動,等同於shutdown -r now
halt #關閉系統,等同於shutdown -h now和poweroff
最後總結:不管是重新啟動還是關閉系統,首先要執行sync命令,把記憶體中的資料寫到磁碟中,執行命令之後沒有返回訊息(沒有錯誤就代表操作成功)則表明執行成功
1、一切皆檔案
2、根目錄/ ,所有的檔案都掛載在這個節點下
ls / #檢視當前下的目錄
/bin:bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。比如ls命令 /boot:
這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案。不要動 /dev : dev是Device(裝置)的縮寫,
存放的是Linux的外部裝置,在Linux中存取裝置的方式和存取檔案的方式是相同的。
/etc: 這個目錄用來存放所有的系統管理所需要的組態檔和子目錄。
/home :使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。administrator 可以在這個目錄下及建立自己的目錄。 /lib:這個目錄裡存放著系統最基本的動態連線共用庫,其作用類似於Windows裡的DLL檔案。 不要動
/opt:這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。
/root:該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。 /sbin:s就是Super
/lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。
/media:linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。
/mnt:系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了。(後面可以把原生的的一些檔案掛載在這個目錄下)
/usr:這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。
/tmp:這個目錄是用來存放一些臨時檔案的。 用完即丟的檔案可以放在這個目錄下。比如安裝包用完就刪除 /usr/bin: 系統使用者使用的應用程式。 /usr/sbin: 超級使用者使用的比較高階的管理程式和系統守護程式。 /usr/src:
核心原始碼預設的放置目錄。
/var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種紀錄檔檔案。 /run:是一個臨時檔案系統,儲存系統啟動以來的資訊。當系統重新啟動時,這個目錄下的檔案應該被刪掉或清除。
/www:存放伺服器網站相關的資源,環境,網站的專案(裡面會安裝一些環境) 環境基本設定:LNMP( Linux Nginx Mysql Php ) 或者LAMP(Linux Apache Mysql Php)
預設的網路組態檔ifcfg-eth0
ifconfig 檢視網路的設定
ipconfig winows 網路設定
網路設定目錄:
cd /etc/ sysconfig/network-scripts
ping *#用來檢視網路是否連通
* ifconfig *#檢視網路 和Windows的ipconfig是一樣的*
引數合併 指令格式
路徑: Linux根路徑是/,Linux區分大小寫windows不區分
絕對路徑:以/開頭
相對路徑 :非/開頭
.. 上一級
. 當前這一級
~ 進入當前登入的使用者目錄
在Linux中Is可能是最常常被使用的!
直接使用ls 就會列出當前路徑下的所有檔案
-a:#引數: all ,檢視全部的檔案,包括隱藏檔案
-l:#引數列出所有的檔案,包含檔案的屬性和許可權,沒有隱藏檔案
-R # 列出所有子目錄下的檔案
所有Linux可以組合使用!
ls -al 檢視全部的檔案包括隱藏檔案的屬性和許可權
屬主和屬組具體後面解釋
ll不是命令,是ls -l的別名 可以通過 alias 指令檢視別名
tips : tab鍵可以做到自動補全
cd:#切換目錄命令!
cd .. : #返回上一級目錄
cd ~: #進入使用者家目 回到當前的使用者目錄
cd -:返回最近存取目錄
cd ./:#當前目錄
pwd :#顯示當前使用者所在的目錄
如果以root的身份進行登入,進入的目錄就是root的家目錄,
對一般使用者,~表示/home/(使用者名稱)
對於root使用者,~表示/root
pwd :顯示使用者當前所在的目錄
比如當前在usr目錄下 如果以相對路徑 進入home目錄
cd …/home 如果以絕對路徑就是 cd /home
mkdir test # 建立目錄
mkdir -p test2/test3 # 用-p遞迴建立層級目錄
如果目錄存在,重複建立,會報錯
rmdir test # 刪除空的目錄
rmdir -p test2/test3/test4 #遞迴刪除檔案
rmdir僅能刪除空的目錄,如果下面存在檔案,需要先刪除檔案,遞迴刪除多個目錄-p引數即可
建立檔案可以使用絕對路徑,也可以使用相對路徑,如果檔案已經存在,那麼就修改檔案建立的時間。
touch text.tx
cp [選項] 原始檔或目錄 目標檔案或目錄 #
要麼把檔案複製到目錄下,要麼把檔案或者目錄複製到目錄下
-f 或 --force 強行復制檔案或目錄, 不論目的檔案或目錄是否已經存在。不存在的話建立檔案
-i 或 --interactive 覆蓋檔案之前先詢問用
-r / -R 遞迴處理 這裡大小寫都是可以的
cp t.txt t1.txt #將當前t.txt 複製 到t1.txt
# 如果檔案重複就選擇覆蓋或者放棄
# y 代表覆蓋 n 代表放棄
模糊匹配也支援複製操作 所以支援多個檔案或者資料夾的複製
解決不能複製資料夾問題 cp -r test xqr 把home 下的test檔案 複製到home下的xqr檔案
-f #忽略不存在的檔案,不會出現警告,強制刪除! 即使檔案屬性為唯讀(即防寫),亦直接刪除
-r #遞迴刪除目錄其下所有檔案!
-i #互動,刪除詢問是否刪除
rm -rf / # 系統中的所有檔案都刪除 刪庫跑路!!這個命令別用
rm -rf install.sh/#刪除系統中的install.sh
rm test 的時候預設會詢問是否刪除
也可以使用 *
代表進行模糊匹配。 * 代表任意數量的任意字元
rm -rf * # 刪除的時候需要看當前的路徑是什麼!如果當前路徑是/ 那等同於 rm -rf /
rm - f *.txt #刪除當前目錄下的 txt的檔案
rm - rf a* #刪除以a開頭的任意的檔案或者資料夾啊、
mv [選項] 原始檔或目錄 目標檔案或目錄 注意不能把檔案移動到資料夾下
-f #強制
-u #只替換已經更新過的檔案
mv test xqr #移動檔案
mv test test2 #重新命名資料夾名
可以將移動和重新命名的操作結合起來使用
可以同時移動目錄和檔案,也支援模糊匹配
Linux的命令有很多引數,我們不可能全記住,我們可以通過檢視聯機手冊獲取幫助。: man [選項] 命令
man + 指令的名字
g切換到整個文字的首部(vi 中是gg),shift+g (大寫G)切換額檔案的尾部
n切換的
:q 回車退出
vi是linux上預設的文字編輯器
支援的模式
檢視模式 | |
---|---|
進入編輯模式 | i(編輯的位置是在遊標的位置) |
進入編輯模式 | o(編輯的位置是遊標的下一行新行插入) |
上下行切換 | j /k 和上下鍵一樣 |
搜尋 | /搜尋內容 回車後進入搜尋 |
切換檔案的首位部 | gg 首部 shift+g 檔案尾部 |
刪除遊標所在行 | dd |
:w | 寫(修改內容) |
:q | 退出 |
:wq | 修改並退出 |
:q! | 不修改並退出 |
編輯模式 | |
---|---|
回退到檢視模式 | esc |
如果輸入vi 檢視不存在的檔案,就會建立,離開的時候如果儲存,那麼這個檔案就可以正常儲存了。
基本的指令格式和vi 是相同的用法。
cat [選項] [ 檔名稱 ]
功能: 檢視目標檔案的內容
常用選項:
-n 對輸出的所有行編號
cat test.txt
為什麼要有和學習less指令
不指定指令的時候,預設列印十行
與cat的對比
-n 行數 顯示的是最後的n行 也就是倒數的n行(從檔案尾部 -n 到檔案尾部)列印輸出
可以和漏斗結合進行理解 大開口的那一段接受資料 小開口的那一端輸出
標準輸入(System.in) <
標準輸出重定向(System.out) >
3. 標準錯誤輸出 (System.err) 2 >
把前面輸入的內容作為一個輸出,輸出到後面的檔案裡面去。
類似資料庫的分頁操作的底層實現 limit offset,len
取 (x 到 y)行的內容
可以使用 man指令檢視幫助檔案
man date
直接輸入
date
獲取當前的時間
展示所有的埠號
第一個命令是錯的
根據前面的內容查詢(grep)埠號
注:
window下根據埠號查詢pid的指令是
netstat -ano | findstr 埠號
但是如果不知道埠號,該怎麼查詢pid
可以通過程式的名字查詢pid
ps -ef # 顯示所有的程序名稱和pid
ps aux
grep 進行搜尋id
ps -ef | grep mysql
ps aux | grep mysql
和java的jps相似 只是jps 是顯示所有java程序的名稱和pid
tar xvf 檔名
unzip + 檔名 # 比如 unzip apache-tomcat-8.5.47.zip
yum 線上安裝:遠端有一個軟體包的安裝倉庫,發起網路請求獲取軟體包,直接安裝。
yum list | grep [軟體包關鍵字] # 注意, 最好要加上 grep, 否則羅列的內容會非常多, 導致機器很卡.
安裝軟體包(需要管理員許可權)
yum install [軟體包名字]
yum install -y [軟體包名字] # 不詢問直接安裝
解除安裝軟體包
yum remove [軟體包名字]
搜尋本機中已經通過yum安裝的軟體
yum list installed |grep 軟體名
已經有一個原生的rpm檔案,(rpm檔案是Linux 上的可安裝檔案,類似windows上exe檔案
rpm -ivh +軟體檔案的路徑
搜尋在本機中已經通過rpm安裝的軟體
rpm -qa | grep 軟體名
解除安裝
rpm -e 軟體名
注意這裡的軟體名字,要先通過rpm -qa
查詢有哪些軟體名字,解除安裝的名字要和軟體名字一致。
vi /etc/profile# 或者下面的命令
vim /etc/profile
對etc/profile操作完成之後按esc 從編輯模式進入檢視模式,輸入:wq
儲存退出
之後進行重新整理
source /etc/profile
可以進行系統統計的指令
常用的下面的四個必須知道
命令用於顯示目前在 Linux 系統上的檔案系統磁碟使用情況統計。
Linux下有兩種使用者:超級使用者(root)、普通使用者。
超級使用者:可以再linux系統下做任何事情,不受限制
普通使用者:在linux下做有限的事情。
超級使用者的命令提示字元是「#」,普通使用者的命令提示字元是「$
使用者賬號的管理工作主要涉及到使用者賬號的新增、修改和刪除。新增使用者賬號就是在系統中建立一個新賬號,然後為新賬號分配使用者號、使用者組、主目錄和登入ShelI等資源。
理解一下本質: Linux中一切皆檔案,這裡的新增使用者說白了就是往某-個檔案中寫入使用者的資訊了!
而這個檔案就是使用者賬戶檔案 /etc/passwd
useradd -選項 使用者名稱
-m:自動建立這個使用者的主目錄/home/cqh
-G:給使用者分配組
userdel -r 123 #刪除使用者的時候把它的目錄也刪除掉
su [使用者名稱]
功能:切換使用者。 例如,要從root使用者切換到普通使用者user,則使用 su user。
要從普通使用者user切換到root使用者則使用 su root(root可以省略),此時系統會提示輸入root使用者的口令。
檔案型別
d:資料夾
-:普通檔案
l:軟連結(類似Windows的快捷方式
基本許可權
i.讀(r/4):Read對檔案而言,具有讀取檔案內容的許可權;對目錄來說,具有瀏覽該目錄資訊的許可權
ii.寫(w/2):Write對檔案而言,具有修改檔案內容的許可權;對目錄來說具有刪除移動目錄內檔案的許可權
iii.執行(x/1):execute對檔案而言,具有執行檔案的許可權;對目錄來說,具有進入目錄的許可權
iv.「-」 表示不具有該項許可權
對不具有許可權的檔案操作
演示使用者123 對唯讀檔案的操作
存取一個檔案的人可能分成三種類別.
檔案和檔案目錄的所有者:u—User
檔案和檔案目錄的所有者所在的組的使用者:g—Group
其它使用者:o—Others
可以通過 ll檢視
比如:-rw-r–r-- 1 root root 0 Jan 7 21:29 testfile
表示testfile檔案的屬主有可讀可寫,屬組可讀,其他人可讀。
testfile的屬主是root,屬組是root。
通過以下這個指令也很重要!
cat /etc/passwd
Linux檔案屬性有兩種設定方法,一種是數位(常用的是數位), 一種是符號。
u:擁有者 user
g:擁有者同組用 group
o:其它使用者 other
a:所有使用者 all
和以下的符號搭配使用
賦予許可權
只用將前面的
# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
# chmod a=x /home/abc.txt
取消許可權
使用數位的方式
讀 對應數位 4
寫 對應數位 2
可執行 對應數位 1
chown 使用者 檔案/資料夾
Linux連結分為兩種:硬連結、軟連結(瞭解即可)
硬連結:A—B,假設B是A的硬連結,那麼他們兩個指向了同一個檔案!允許一個檔案擁有多個路徑,使用者可以通過這種機制硬連結到一個重要檔案上,防止誤刪
軟連結:類似Windows下的快捷方式,刪除原始檔,快捷方式也就存取不了
操作步驟:
建立連結
ln f1 f2! # 建立硬連結 f2
ln -s f1 f3 # 建立一個軟連線(符號連結)f3
touch命令建立檔案!
echo輸入字串,也可以輸入到檔案
[root@iZ2zefgqs5qgnl9r5se6xgZ etc]# cd /home
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
test xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# touch f1 # 建立一個f1檔案
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1 test xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ln f1 f2 # 建立一個硬連結f2
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1 f2 test xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ln -s f1 f3 # 建立一個軟連線(符號連結)f3
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1 f2 f3 test xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ll
total 8
-rw-r--r-- 2 root root 0 Jan 29 17:04 f1
-rw-r--r-- 2 root root 0 Jan 29 17:04 f2
lrwxrwxrwx 1 root root 2 Jan 29 17:05 f3 -> f1
drwxr-xr-x 2 root root 4096 Jan 29 16:14 test
drwxr-xr-x 4 root root 4096 Jan 29 15:55 xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# echo "i love you" >>f1 # 給f1中寫入字串
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1 f2 f3 test xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ll
total 16
-rw-r--r-- 2 root root 11 Jan 29 17:07 f1
-rw-r--r-- 2 root root 11 Jan 29 17:07 f2
lrwxrwxrwx 1 root root 2 Jan 29 17:05 f3 -> f1
drwxr-xr-x 2 root root 4096 Jan 29 16:14 test
drwxr-xr-x 4 root root 4096 Jan 29 15:55 xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1 # 檢視f1
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2 # 檢視f2
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 # 檢視f3
i love you
刪除操作執行後,硬連結和軟連線不一樣了
硬連結還在,軟連線不在
(硬連結相當於是深拷貝,軟連線相當於是淺拷貝可以這麼理解)
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# rm -rf f1 # 刪除f1
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f2 f3 test xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1
cat: f1: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2 # f2 硬連結還在
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 #f3 軟連線不在
cat: f3: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]#
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# rm -rf f1 # 刪除f1
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f2 f3 test xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1
cat: f1: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2 # f2 硬連結還在
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 #f3 軟連線不在
cat: f3: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]#