Linux 初步笔记
這幾篇博文主要記錄博主的Linux 學習之路,用作以后回顧和參考。大家可以選擇略過也可以作參考。
(一)Linux 初步筆記
(二)Linux 進階筆記(一)
(三)Linux 進階筆記(二)
(四)Shell 編程進階筆記
Linux 目錄結構
- / :根目錄,每一個文件和目錄從根目錄開始,只有root用戶具有該目錄下的寫權限。
- /bin : 用戶二進制文件包含二進制可執行文件。在單用戶模式下,你需要使用的常見Linux命令都位于此目錄下。系統的所有用戶使用的命令都設在這里。
- /boot :主要放置開關機會使用的文件,包括Linux 內核文件以及開關機菜單與開機所需要的配置文件。
- /dev :在Linux 系統中所有的設備與接口設備都是以文件的形式存放在這個目錄中。只要訪問這個目錄下的某個文件就相當于訪問某個設備。
- /etc :所有系統管理所需要的配置文件和子目錄。比如設置運行級別。
- /home :存放普通用戶的主目錄,在Linux 系統中每個用戶都有一個獨立的目錄,一般該目錄名以賬號用戶名命名。
- /lib :系統開機所需要的最基本的動態鏈接共享庫,功能類似于Windows 中的DLL 文件。幾乎所有的應用程序都需要用到這些共享庫。
- /lost + found :這個目錄一般是空的,當用戶非法關機后會保存一些文件。
- /misc :掛載外部設備
- /media :Linux 系統會自動識別一些設備,例如U 盤、光驅等,當識別后Linux 會把識別的設備掛在這個目錄下。
- /mnt :為了讓用戶臨時掛載別的文件系統,我們可以將光驅掛在在該目錄中。
- /opt :給主機安裝額外軟件所擺放的目錄。默認情況下是空的。比如我們可以將數據庫安裝在這個目錄下。
- /proc :這個目錄上是一個虛擬的目錄,它是系統內存的映射,我們通常可以訪問這個目錄來獲取系統信息。
- /root :該目錄為系統管理員的主目錄。
- /sbin :Super Bin的意思, 系統二進制文件,就像/bin,/sbin同樣也包含二進制可執行文件。但是,在這個目錄下的linux命令通常由系統管理員使用,對系統進行維護。
- /selinux :這個目錄是Redhet 與CentOS 所特有的目錄,是一個安全機制,類似于防火墻。
- /srv :service 的縮寫,該目錄存放一些服務啟動之后需要提取的數據。
- /sys :該目錄下安裝了2.6 內核中新出現的一個文件系統sysfs。
- /tmp :該目錄用來存放一些臨時文件。
- /usr :很重要的一個目錄,用戶的很多應用程序和文件都放在這個目錄下。類似于Windows 中的program files 目錄。
- /var :這個目錄存放著在不斷被擴充的文件。我們習慣將那些經常需要被修改的文件放在該目錄下,比如一些日志文件等。
簡單命令積累
=======================關機重啟與用戶管理命令===========================
shutdown -h now || [指定時間] 、poweroff 、init 0 ->關機命令
shutdown -r now 、reboot 、init 6 ->立即重新啟動計算機
logout -> 退出登錄
useradd [×××] ->添加用戶×××
passwd [×××] ->給××× 用戶修改或者添加密碼
userdel [×××] ->刪除用戶×××但是不刪除該用戶的目錄
userdel -r [×××] ->刪除用戶及用戶的目錄
=======================文件目錄處理命令===========================
ls -a ->顯示隱藏文件
ls -l ->顯示長列表格式
pwd ->顯示當前所在的目錄
cd 、cd ~ -> 進入當前用戶的家目錄
cd - ->進入上次目錄
cd .. ->進入上一級目錄
cd . ->進入當前目錄
mkdir -p [×××] ->可以遞歸創建目錄×××
rmdir [×××] ->刪除目錄×××
cp -r [源文件] [目標文件] ->遞歸持續復制包括目錄及為文件
rm -rf [文件或目錄] ->遞歸強制刪除目錄和文件
mv [source] [destination] ->移動文件或目錄或者更改文件名(在同一個文件目錄下為改名操作)
=======================鏈接命令===========================
1. 硬鏈接:ln [源文件] [目標文件]
1. 擁有相同的i 節點號和存儲block 塊,可以看做是同一個文件
2. 可以通過i 節點識別
3. 不能跨分區
4. 不可以針對目錄使用
2.軟鏈接: ln -s [源文件] [目標文件]
=======================文件搜索命令===========================
locate [文件名] ->在后臺數據庫(數據庫默認一天一更新)按照文件名進行搜索,速度快,在執行前可以先 updatedb
whereis [文件命令] -> 用于搜索命令所在的位置并顯示該命令幫助文檔所在的位置
which [文件命令] -> 搜索命令所在的位置并顯示別名
grep -n [關鍵詞] [源文件] ->搜索關鍵字并顯示行號
find [搜索范圍] [搜索條件] ->在系統中搜索符合條件的文件名,可以使用通配符 *、?、[]
??搜索條件:
-size -10k -o -size +50k ->查找小于10k 或者大于 50k 的文件
=======================幫助命令===========================
man [命令] : ->獲取指定命令的幫助
man -f [命令] : ->查看命令擁有哪個級別的幫助相當于whatis [命令]
man -k [命令] : ->查看和命令相關的所有幫助 相當于apropos [命令]
[命令] –help : -> 獲取指定命令的幫助[中文顯示]
help [命令] : -> 用于獲取shell 內部的命令 可以使用whereis [命令] 確定是否指shell 內部命令
info [命令] : -> 獲得詳細命令幫助
=======================壓縮與解壓縮命令===========================
zip [源壓縮件] [源文件] : ->將文件壓縮成zip 格式,在進行文件壓縮的時候要注意指定壓縮后綴名便于區分
zip -r [壓縮目錄] [源文件] : -> 壓縮目錄
unzip [壓縮文件或目錄] : -> 解壓縮文件或目錄
gzip [源文件] : -> 壓縮為.gz 格式的文件,壓縮后源文件會消失
gzip -r [源目錄] : -> 壓縮該目錄下的所有文件,但是不壓縮目錄
gzip -d [壓縮文件或目錄] : -> 解壓縮文件 與gunzip [壓縮文件] 同
bzip2 -k [源文件] : -> 壓縮之后保留源文件,壓縮為.bz2 文件格式,不能壓縮目錄
bzip2 -d [壓縮文件] : -> 解壓縮文件,-k 保留壓縮文件,與bunzip2 [壓縮文件] 同
tar -zcvf [壓縮包名].tar.gz [源文件]: -> 將其先打包再壓縮為.gz 格式,支持多文件壓縮中間用空格隔開
tar -zcvf [文件目錄][源文件].tar.gz [壓縮包名] : ->指定壓縮文件的目錄
tar -zxvf [壓縮包名].tar.gz: -> 解壓縮文件
tar -zxvf [壓縮包名].tar.gz -C [解壓目錄] : -> 將文件解壓縮指定的目錄下
tar -ztvf [壓縮包名].tar.gz: -> 查看壓縮文件里的內容不解壓
tar -jcvf [壓縮包名].tar.bz2 [源文件]: ->壓縮為.tar.bz2 格式的壓縮文件
tar -jxvf [壓縮包名].tar.bz2 : ->解壓縮文件
=======================掛載命令===========================
mount : -> 查詢系統中已經掛載的設備
mount -a : -> 根據配置文件/etc/fstab 的內容自動掛載
掛載光盤:
mkdir /mnt/cdrome/ : -> 建立掛載點
umount /mnt/cdrome : -> 卸載命令
=======================輸入輸出重定向命令===========================
[命令] > [文件] : ->以覆蓋的方式,把命令正確執行的結果輸出到指定的文件或設備中
[命令] >> [文件] : ->以追加的方式,把命令正確執行的結果輸出到指定的文件或設備中
[錯誤命令] 2>[文件] : ->以覆蓋的方式,把命令錯誤執行的結果輸出到指定的文件或設備中
[錯誤命令] 2>>[文件] : ->以追加的方式,把命令錯誤執行的結果輸出到指定的文件或設備中
[命令] >> [文件] 2>&1: -> 以追加的方式,把正確和錯誤輸出的結果都保存在指定的文件中與 [命令] &>> [文件] 同
[命令] >> [文件1] 2>> [文件2] : -> 執行正確時將結果輸出到文件1,錯誤時將結果輸出到文件2
wc [文件名] : -> 輸出順序是行數、單詞數、字節數。
=======================組合命令===========================
find [搜索范圍] -size +20k -a size -50k -exec ls -lh {} \; -> 將前面的查找結果交給后面的命令進行操作
=======================其他命令===========================
runlevel -> 查看當前系統的運行級別
w [用戶名]/也可以不寫用戶名 -> 查看登錄用戶信息
who -> 查看當前在線狀態的用戶
last -> 查詢當前登錄和過去登錄的
lastlog -> 查詢所有用戶的最后一次登陸時間
命令行常用快捷鍵
- Ctrl + c : 強制終止當前命令
- Ctrl + l : 清屏
- Ctrl + a : 將光標移動到命令行首
- Ctrl + e :將光標移動到命令行尾
- Ctrl + u :從光標所在的位置一直刪除到行首
- Ctrl + z : 將命令放入后臺執行
- Ctrl + r : 在歷史命令中搜索
Linux 運行級別
- 命令init [0-6],最常用的運行級別是3 和 5,可以對/etc/inittab 文件進行編輯修改運行級別
- 0:關機
- 1:單用戶
- 2:多用戶狀態沒有網絡服務
- 3:多用戶狀態有網絡服務
- 4:系統未使用保留給用戶
- 5:圖形界面
- 6:系統重啟
可以修改 /etc/inittab 文件的內容來指定系統啟動時啟動的運行級別。
VIM編輯器
其實在Linux 命令行界面下的文本編輯器有很多比如Emacs、pico、nano、Joe、與vim 等。既然有這么多命令行下的文本編輯器為什么我們一定要學習vim 呢?主要是它有以下的優點:
- 所有的UNIX Like 系統都內置vim 編輯器,其他的文本編輯器不一定存在
- 很多軟件的編輯接口都會主動調用vi
- vim 具有程序編輯能力,可以主動以字體顏色辨別語法的正確性,方便程序設計
- 編輯速度快速
(一)vi 下的三種模式
- 一般模式:以 vi 打開以一個文件就進入一般模式了(這也是默認的模式)。在這個模式下可以使用左右鍵移動光標,刪除字符或者刪除整行,也可以復制粘貼文件的數據。
- 編輯模式:一般模式下可以進行復制、粘貼和刪除等的操作,但是是無法編輯文本內容的,按下”i,I,o,O,a,A” 等任何一個字母之后才會進入編輯模式。在這個模式下除了[Esc] 這個按鍵之外所有的其他按鍵都可以視為一般輸入了,所以離開編輯模式時要按下[Esc]鍵才可以離開編輯模式進入到一般模式。
- 命令行模式:在一般模式下輸入“: / ?” 中的任何一個符號就可以將光標移動到最下面的一行。在這里你可以對你的文件進行讀取、保存等一些功能。
(二)vim 中的一些命令
vim [文件名]: -> 如果文件存在則打開文件,不存在創建文件
vim + : -> 打開文件時光標在最后一行
vim +3 : -> 指定vim 打開文件時光標所在的行號
vim +/[搜索的關鍵字] [源文件] : ->打開文件將光標鎖定在第一次出現關鍵字所在行號,可以按n 切換關鍵字所在行號
vim 的環境設置可以寫入 ~/.vimrc 文件中,比如進行簡單的配置顯示行號:set nu。
(三)vim編輯器編寫Java 程序步驟在安裝好jdk 的情況下)
用戶與用戶組
(一)簡介
Linux 系統中每個文件都有相當多的屬性與權限,其中有一個很重要的概念就是文件所有者。
文件所有者:
??????由于Linux 是一個多用戶、多任務的系統,所以在實際開發過程中可能有很多人同時使用一臺主機進行工作,為了考慮每個人的隱私權限以及每個人的喜好的工作環境,因此“文件所有者”這個概念就相當重要了。
用戶組:
??????在Linux 系統下可以對用戶進行劃分,比如在實際開發的過程中一共有兩個團隊,每個團隊下都有若干個用戶,那么可以創建兩個用戶組,把每個團隊中的用戶劃分到對應的用戶組中。多個用戶組之間可以設置權限,當然用戶組中的每個用戶之間也可以設置權限。
在/etc/group 中存儲著當前系統中所有用戶組信息,以查到的一個用戶組為例:
Jas : x : 500 : 組名稱 組密碼占位符 組編號 組中用戶名列表在/etc/passwd 中存儲當前系統中所有用戶信息,以查到的一個用戶為例:
Jas : x : 500 : 500 : Jas Zhang : /home/Jas : /bin/bash 用戶名 密碼占位符 用戶編號 組編號 用戶注釋信息 用戶主目錄 shell 類型(二)用戶與用戶組下常用的命令
groupadd [用戶組名]: -> 創建一個用戶組
groupadd -g [用戶組編號] [用戶組名]:-> 創建一個指定用戶組編號的用戶組
groupmod -n [新用戶組名] [原用戶組名] : -> 修改用戶組的名稱
groupmod -g [用戶組編號] [原用戶組名] : -> 修改用戶組的編號
groupdel [用戶組名] :-> 刪除一個用戶組(在該用戶組中不能有用戶)
useradd -g [用戶組名] [用戶名] :-> 在指定的用戶組中添加用戶
userdel -r [用戶名] -> 刪除用戶并刪除該用戶下的文件
(三)Linux 文件權限
以root 用戶登錄系統,ls -h 列出root 主目錄下的文件,以中一個為例:
-rw-r--r--. 1 root root 102 12月 16 10:27 Hello.java[1] [2][3] [4] [5] [6] [7] [1]:表示文件權限[2]:表示連接數[3]:當前用戶[4]:用戶組[5]:文件大小[6]:修改日期[7]:文件名知道了這些選項是什么意思后再來深入了解一下 “-rw-r–r–” 權限:它也可以被分為如下四個部分
- rw- r-- r--[1] [2] [3] [4][1]: 表示文件類型[2]: 表示文件所有者的權限,具有可讀、可寫權限[3]: 表示通用戶組的權限,具有可讀屬性[4]: 表示其他非本用戶組的權限,具有可讀屬性文件類型包括一下幾種:
- - :表示文件
- d :表示目錄
- l : 表示鏈接文件
- b :表示設備文件里面的可供存儲的接口設備
- c :表示設備文件里面的串行端口設備,比如鼠標、鍵盤等。
所以來總結一下Hello.java 就是它首先是一個文件,用戶所有者對它具有可讀與可寫權限,同用戶組的其他成員具有可讀權限,非本用戶組的其他用戶具有可讀權限。
(四)修改文件的屬性與權限命令
chgrp [組名] [文件或目錄] : -> 改變文件所屬的用戶組,可以使用-R 遞歸持續更改(放在組名前面使用)
chown [賬戶名] [文件或目錄] : -> 改變文件的所有者,同上
chmod xyz [文件] : -> 修改文件的權限,也可以使用-R 遞歸修改所有目錄下的子文件
要改變文件的權限有兩種方式,一種是使用數字修改,一種是使用符號修改權限(這種方式不作具體介紹)。
??????數字類型改變權限:用戶對文件的權限有三種read、write、execute,分別對應r、w、x。可以使用數字來代表各個權限,r = 4 ,w = 2 ,x = 1。以上面”-rw-r–r–”為例,它對應的權限用數字表示為644。如果我們想讓所有的用戶都對這個文件具有可讀、可寫、可執行權限,那么我們可以使用命令chmod 這樣做:“chmod 777[文件]”。
(五)權限對文件的作用
- r :讀取文件的內容(cat、more、head、tail)
- w:編輯、新增、修改文件的內容(vi 、echo),但是不具有刪除文件的權限
- x :可執行
(六)權限對目錄的作用
- r :可以查詢文件下的文件名(ls)
- w :具有修改文件目錄結構的權限。比如新建文件和目錄,刪除此目錄下的文件和目錄,重命名等(touch rm mv cp)
- x :可以進入到目錄(cd)
(七)默認權限
umask -> 查看默認權限
umask [修改值] -> 臨時修改umask 值
vi /etc/profile -> 永久修改umask 值
默認權限:
- 文件默認不能建立為執行文件,必須手工賦予執行權限
- 文件默認權限最大為666(rw)
- 目錄默認的最大權限為777(rwx)
Shell
(一)什么是Shell
??????Shell 是一個命令行解釋器,它為用戶提供了一個向Linux 內核發送請求以便運行程序的界面系統級程序,用戶可以使用Shell 來啟動、掛起、停止以及編寫一些程序。Shell 還是一個功能強大的編程語言,易編寫、易調試、靈活性較強。Shell 是解釋執行的腳本語言,在Shell 中可直接以調用Linux 系統命令。
(二)echo 輸出命令
echo [選項] [輸出內容] : -> 輸出內容
echo -e [輸出內容] : -> 支持反斜線控制的字符轉換
echo -e “\e[1;35m 你好 \e[0m” : -> 帶顏色輸出內容
(三)編寫第一個腳本文件
?????? 1.vi hello.sh
?????? 2.編寫腳本內容:輸出一句話
??????3.執行腳本文件:bash hello.sh 或者:chmod 755 hello.sh ,/root/hello.sh
(四)多命令執行順序
- ; ->多個命令順序執行,無論命令對錯都會順序執行
- && ->邏輯與關系,只有當前面所有命令正確執行時,緊跟后面的命令才會執行
- || -> 邏輯或關系,如果前面的命令執行后面的命令不執行,如果前面的命令不執行則后面的命令執行
(五)管道符
- [命令1] | [命令2] … -> 命令1 的正確輸出作為命令2 的操作對象
(六)通配符
- ? -> 匹配任意一個字符
- * -> 匹配0 個或任意多個任意字符
- [] -> 匹配括號中的任意一個字符。例如[abc] 表示匹配一個a、b、或者c
- [-] ->匹配 括號中的任意一個字符。比如[a-z] 表示匹配a-z 中的任意一個字母
- [^] -> 邏輯非,表示不匹配括號中的字符。比如[^a-z] 表示不匹配a-z 中的任意一個字符
總結
以上是生活随笔為你收集整理的Linux 初步笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三贷业务是指
- 下一篇: Linux 进阶笔记(一)