Linux學習筆記


Linux學習

1.Linux目錄結構

  • linux的目錄結構:

目錄結構具體介紹:

  • /bin 是Binary的縮寫,存放着最經常使用的命令
  • /home 存放着普通用戶的主目錄,Linux中每個用戶都有一個自己的目錄,一般是以用戶的賬號命名的
  • /root 該目錄為系統管理員,
  • /boot 啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件
  • /tmp 用來存放一些臨時文件
  • /media 自動識別一些設備
  • /usr/local 這是利一個給主機額外安裝軟件所安裝的目錄,一般是通過編譯源碼方式安裝的目錄
  • /var 這個目錄存放着不斷擴充的東西

2.vi和vim編輯器

  • 所有的linux系統都會內建vi文本編輯器
  • vim可以看成是vi的增強版本
  • vi和vim三種模式的相互轉化圖

3.開機,重啟,和用戶登入注銷

a關機&重啟命令

  1. 基本操作:
shutdown
    shotdown -h now:表示立即關機
    shutdown -h 1:表示一分鍾后關機
    shotdown -r now:立即重啟
halt
    就是直接使用,等價於關機
reboot
    重啟系統
syn
    把內存的數據同步到磁盤

用戶登入和注銷

  • 登入是盡量少用root賬號登入,可以用普通用戶登錄,后再用"su- 用戶名"切換成管理員身份
  • 在提示符下輸入logout即可注銷用戶

用戶管理:

  • linux操作系統示意圖
  • linux的用戶需要至少屬於一個組
  1. 添加用戶
useradd [選項] 用戶名
例如:useradd xiaoming
  1. 給用戶指定或修改密碼
基本語法:
passwd 用戶名
例如: passwd xiaoming
  1. 刪除用戶
基本語法:
userdel 用戶名

1)刪除用戶xiaoming,但要保留家目錄:
userdel xiaoming
2)刪除用戶xiaoming以及用戶主目錄:
userdel -r xiaoming
  1. 查詢用戶信息
基本語法:
id  用戶名
例如:
id root
uid=0(root) gid=0(root) 組=0(root):分別為用戶id號,所在組的id號,組名
注:當用戶不存在時,返回“無此用戶”
  1. 切換用戶:
基本語法:
su - 切換用戶名
由權限高的用戶切換到權限低的用戶不需要密碼,反之需要
但需返回到原來用戶時,使用exit指令
  1. 用戶組:
1.增加組:
groupadd 組名
2.刪除組:
groupdel 組名
3.增加用戶時直接加上組
useradd -g 用戶組 用戶名
4.修改用戶的組
usermod -g 用戶組 用戶名
  1. 配置文件
1. /etc/passwd
用戶的配置文件,記錄用戶的各種信息
2. /etc/shadow
口令的配置文件
3. /etc/group
組的配置文件:記錄Linux包含的組的信息

實用指令

1.運行級別說明

  • 0:關機
  • 1:單用戶
  • 2:多用戶狀態沒有網絡服務
  • 3:多用戶狀態由網絡服務
  • 4:系統未使用保留給用戶
  • 5: 圖形界面
  • 6:系統重啟

2.切換到指定級別的指令

  1. 基本語法:
init[012356]
  1. 面試題:如何找回root密碼,如果不小心忘記了root密碼,怎么找回
思路:進入到單用戶模式,然后修改root密碼
因為進入單用戶模式。root不需要密碼就可以登入

3.幫助指令:

  1. man 獲得幫助信息
基本語法:
man [命令或配置文件]
  1. help指令
基本語法:
help 命令

4.文件目錄類:

  1. pwd指令
基本語法:顯示當前工作目錄的絕對路徑
pwd
  1. ls指令
基本語法:
ls [選項] [目錄或文件]
常用選項:
-a : 顯示當前所有的文件和目錄,包括隱含的
-l : 以列表的形式顯示信息
  1. cd指令
基本語法:
cd [參數] (功能描述:切換到指定目錄)
切換到家目錄: cd  或者 cd ~
  1. mkdir指令:用於創建目錄
基本語法
    mkdir [選項] 要創建的目錄
常用選項
    -p : 創建多級目錄
  1. rmdir指令:刪除空目錄
基本語法:
mkdir [選項] 要刪除的空目錄
提示:如果需要刪除非空目錄,需要使用rm -rf 要刪除的目錄
  1. touch指令
基本語法:
    touch 文件名稱
  1. cp指令[重要]
基本語法:
    cp[選項] source dest
常用選項
    -r : 遞歸復制整個文件夾
  1. rm指令
基本語法:
    rm [選項] 要刪除的文件或目錄
常用選項
    -r : 遞歸刪除整個文件夾
    -f : 強制刪除不提示
  1. mv指令:移動文件於目錄或重命名
基本語法:
    mv oldNameFile newNameFile(移動文件)
    mv /temp/movefiel/targetFolder(功能描述:移動文件)
  1. cat指令
  • cat查看文件內容,是以只讀的方式打開
基本語法:
    cat [選項] 要查看的文件
常用選項:
    -n:顯示行號
使用細節
    cat只能瀏覽文件不能修改文件,為了瀏覽方便一般會帶上管道 | more
    cat 文件名 | more(分頁瀏覽)
  1. more指令
  • 以全屏幕的方式按頁顯示文本文件的內容
基本語法:
    more 要查看的文件
應用實例:
    more /etc/profile
  • more快捷鍵
  1. less指令
  • 分屏查看文件內容,對於大型文件具有較高效率
基本語法
    less 要查看的文件
  1. '> 指令和 >>指令'
> 輸出重定向:會將原來的文件內容覆蓋
>> 追加:追加到文件的尾部
基本語法:
1) ls-l>文件(功能描述:列表中內容寫入到a.txt中)
2) ls-al>>文件(功能描述:列表中內容追加到a.txt中)
3) cat 文件1>文件2(功能描述:將文件1的內容覆蓋到文件2)
4) echo "內容" >> 文件
  1. echo指令
基本語法:
    echo [選項] [輸出內容]
應用案例
    使用enho輸出環境變量 echo $PATH
  1. head指令
基本語法
    head 文件 (功能描述: 查看文件頭10行)
    head -n 5 文件 (功能描述: 查看文件頭5行)
  1. tail指令
基本語法:
1) tail 文件 (功能描述:查看文件后10行)
2) tail --n 5 文件 (功能描述:查看文件后5行)
3) tail -f 文件 (功能描述:實時追蹤該文檔的所有更新。工作中經常使用)
  1. ln指令
基本語法:
    ln -s [原文件或目錄][軟連接名] (功能描述:給原文件按創建一個軟連接)
  1. history指令
基本語法:
    history (功能描述:查看已經執行過的歷史命令)
案例:history 10(查看最近使用過的10個指令)

時間日期類:

  1. date指令-顯示當前日期
基本語法:
    1)date (功能描述:顯示當前時間)
    1)date+%Y (功能描述:顯示當前年份)
    1)date+%m (功能描述:顯示當前月份)
    1)date+%d (功能描述:顯示當前是哪一天)
    1)date "+%Y-%m-%d %H:%M:%S"(功能描述:顯示當前年月日時分秒)
  1. date指令-設置日期
基本語法:
    date -s 字符串時間
案例:
    date -s "2018-10-10 11:22:22"
  1. cal指令
基本語法:
    cal[選項] (功能描述:不加選項,顯示本月日歷)

搜索查找類

  1. find指令
基本語法:
    find [搜索范圍] [選項]
選項說明:
    -name<> 按照指定的文件名查找模式查找文件
    -user<用戶名> 查找屬於指定用戶名所有文件
    -size<文件大小> 按照指定的文件大小查找文件
案例:
    find /home -name hello.txt
    find /opt -user nobody
    find / -size +20M(-20M 20M)
  1. locate指令
基本語法:
    locate 搜索文件
注意:
    第一次運行前,必須updatedb指令創建locate數據庫
案例:
    使用locate快速定位hello.txt:locate hello.txt
  1. grep指令和管道符號|
  • grep過濾查找,管道符|表示將前一個命令的處理結果輸出傳遞給后面的命令處理
基本語法:
    grep[選項] 查找內容 源文件
常用選項
    -n 顯示匹配行及行號
    -i 忽略字母大小寫
案例:
    cat hello.txt | grep -n haha
    cat hello.txt | grep -ni haha

壓縮和解壓

  1. gzip/gunzip 指令
  • gzip用於壓縮文件,gunzip用於解壓的
基本語法:
    gzip 文件 (功能描述:壓縮文件,只能將文件壓縮為*.gz文件)
    gunzip 文件.gz (功能描述:解壓縮文件命令)
  1. zip/unzip指令
  • zip用於壓縮文件,unzip用於解壓的。這個在項目打包發布中很有用
基本語法:
    zip [選項] XXX.zip 將要壓縮的內容(功能描述:壓縮文件和目錄)
    unzip [選項] XXX.zip(功能描述:解壓縮文件)
zip常用選項
    -r:遞歸壓縮,及壓縮目錄
unzip常用選項
    -d<目錄>:指定解壓后文件的存放目錄
案例:
    zip -r mypackage.zip /home/
    unzip -d /opt/tmp/ mypackage.zip
  1. tar指令
  • tar指令時打包指令,最后打包后的文件時.tar.gz的文件。
基本語法:
    tar [選項] XXX.tar.gz 打包的內容 (功能描述:打包目錄。解壓后的文件格式.tar.gz)
選項說明
    -c 產生.tar打包文件
    -v 顯示詳細信息
    -f 指定壓縮后的文件名
    -z 打包同時壓縮
    -x 解包.tar文件
案例:
    tar -zcvf a.tar.gz a1.txt a2.txt(打包后的文件名 對那些文件打包)
    tar -zcvf myhome.tar.gz /home/ (將/home的文件夾壓縮成myhome.tar.gz)
    tar -zxvf z.tar.gz (將z.tar.gz解壓到當前目錄)

組管理和權限管理

Linux組基本介紹

  • 在Linux中每個用戶必須屬於一個組,不能獨立於組外
  • 所有者
  • 所在組
  • 其他組
  • 改變用戶所在的組
  1. 修改文件所有者
基本語法:
    chown 用戶名 文件名
案例:
    chown tom apple.txt  (將apple.txt所有者變為tom)
  1. 修改文件所在組
  • 單某個用戶創建一個文件后,默認這個文件所在組就是改用戶所在組
基本語法:
    chgrp 組名 文件名
案例:
    chgrp police orange.txt
  1. 其他組
  • 除文件的所有者和所在組的用戶外,系統的其他用戶都是文件的其他組
  1. 改變用戶所在組
基本語法:
    usermod -g 組名 用戶名
    usermod -d 目錄名 用戶名 改變該用戶登入的初始目錄

權限基本介紹

ls -l 中顯示的內容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9位說明:
1) 第0位確定文件類型(d,-,l,c,b)
2) 第1-3位確定所有者(該文件所有者)擁有該文件的權限 --User
3) 第4-6位確定所屬組(同用戶組的)擁有該文件的權限 --Group
4) 第7-9位確定其他用戶擁有該文件的權限 --Other

  • 權限詳解
  1. rwx作用到文件
1) [r]代表可讀(read):可以讀取,查看
2) [w]代表可寫(write):可以修改,但是不能刪除改文件,刪除一個文件的前提條件是對該文件的所在目錄有寫權限,才能刪除該文件
3)[x]代表可執行(execute):可以被執行
  1. rwx作用到目錄
1)[r]代表可讀(read):可以讀取,ls查看目錄內容
2)[w]代表可寫(write):可以修改,目錄內創建+刪除+重命名目錄
3)[x]代表可執行(execute):可以進入該目錄
  1. 數字表示
可用數字表示為:r=4 w=2 x=1 因此rwx=4+2+1=7
  1. 修改權限-chmod
  • 通過chmod指令,可以修改文件或者目錄的權限
  • 第一種方式:+,-,=變更權限
u:所有者 g:所有組 o:其他人 a:所有人(u,g,o的總和)
1)chmod u=rwx,g=rx,o=x 文件目錄名
2)chmod o+w 文件目錄名
3)chmod a-x 文件目錄名
  • 第二種方式
規則:r=4 w=2 x=1 , rwx=4+2+1=7
rwx = 4+2+1=7
r-x = 4+1 = 5
  1. 修改文件所有者
基本語法:
    chown newowner file 改變文件的所有者
    chown newowner:newgroup file 改變用戶的所有者和所有組
    -R 如果時目錄 則使其下所有子文件或目錄遞歸生效
  1. 修改文件所在組-chgrp
基本語法:
    chgrp newgroup file 改變文件的所有組
案例:
    chgrp -R bandit /home/kkk(將/home/kkk目錄下所有的文件和目錄所在組都修改成bandit)

crond任務調度

  • 原理示意圖
  • 任務調度:是指系統在某個時間執行的特定的命令或程序
基本語法:
    crontab[選項]
常用選項
    -e 編輯crontab定時任務
    -l 查詢crontab任務
    -r 刪除當前用戶所有的crontab任務
  • 快速入門
  • 任務的要求
設置任務調度文件:/etc/crontab
設置個人任務調度。執行crontab -e命令
接着輸入任務到調度文件
如:*/1 * * * * ls -l /etc/>/tmp/to.txt
意思是說每小時的每分鍾執行ls-l/etc/>>/tmp/to.txt
  • 步驟如下:
cron -e
*/1 * * * * ls-l/etc>tmp/to.txt
保存退出
在每一分鍾就會自動的調用ls-l/etc>>/tmp/to.txt
  • 參數細節說明
  1. 五個占位符的說明
項目        含義                范圍
第一個*     一個小時中的第幾分鍾  0-59
第二個*     一天當中的第幾小時    0-23 
第三個*     一個月中的第幾天      1-31
第四個*     一年中的第幾個月      1-12
第五個*     一周當中的星期幾      0-7(0和7都代表星期日)
  1. 特殊符號說明
* 代表任何時間
, 代表不連續的時間
- 代表連續的時間范圍
*/n 代表每隔多久執行一次
  1. 特定時間執行任務案例
時間            含義
45 22 * * *      在22點45分執行命令
0 17 * * 1       在每周1的17點0分執行命令
0 5 1,15 * *     每月的1號和15號的凌晨5點0分執行命令
40 4 * * 1-5     每周一到周五的凌晨4點40分執行命令
*/10 4 * * *     每天的凌晨4點,每隔10分鍾執行一次命令
0 0 1,5 * 1       每月1號和15號,每周一的0點0分都會執行命令 

Linux磁盤分區,掛載

分區基礎知識

  • 分區的方式
  1. mbr分區
1. 最多至此四個主分區
2. 系統只能安裝在主分區
3. 擴展分區要占一個主分區
4. MBR最大只支持2TB但擁有最好的兼容性
  1. gtp分區
1. 支持無限多個主分區
2. 最大支持18EB的大容量
3. windows7 64位以后支持gtp
  • 使用lsblk(老師不離開)指令查看當前系統的分區情況
  1. 如何增加一塊硬盤
1. 虛擬機添加硬盤
2. 分區 fdisk/dev/sdb
3. 格式化 mkfs -t ext4 /dev/sdb1
4. 掛載 先創建一個/home/newdisk 掛載mount /dev/sdb1 /home/newdisk
5. 設置可以自動掛載
    vim /etc/fstab
    /dev/sdb1  /home/newdisk ext4 defaults
  1. 查詢系統整體磁盤使用情況
基本語法:
    df -h
案例
    df -lh
  1. 查詢指定目錄的磁盤占用情況
基本語法:
    du -h /目錄
# 查詢指定目錄的磁盤占用情況,默認為當前目錄
-s 指定目錄占用大小匯總
-h 帶計量單位
-a 含文件
--max-depth=1 子目錄深度
-c 列出目錄的同時,增加匯總值
案例:查詢/opt目錄的磁盤占用情況,深度為1
    du -ach --max-depth=1 /opt
  1. 磁盤情況-工作使用指令
1. 統計/home文件夾下文件的個數
ls -l /home | grep "^d" wc -l
2. 統計/home文件夾下目錄的個數
ls -l /home | grep "^d" | wc -l
3. 統計/home文件夾下文件的個數,包括子文件夾里的
ls - lR /home | grep "^-" | wc -l
4. 統計文件夾下目錄的個數。包括子文件夾里面的
ls - lR /home | grep "^d" | wc -l
5. 以樹狀顯示目錄結構
tree

網絡配置

  • 測試主機之間網絡聯通 ping 目的主機

進程管理

顯示系統執行的進程

  • 查看進行使用的指令是ps,一般來說使用的參數是ps -aux
ps 顯示的信息選項
字段            說明
PID             進程標識號
TTY             終端機號
TIME            此進程所消耗CPU時間
CMD             正在執行的命令或進程名
ps -a: 顯示當前終端的所有進程信息
ps -u: 以用戶的格式顯示進程信息
ps -x: 顯示后台進程的參數

終止進程kill和killall

基本語法:
    kill [選項] 進程號 (功能描述:通過進程號殺死進程)
    killall 進程名字 (功能描述:通過進程名稱殺死進程,也支持通配符)
常用選項:
    -9:表示強迫進程立即停止

查看進程樹pstree

基本語法:
    pstree[選項]: 可以更加直觀的來看進程信息
常用選項:
    -p: 顯示進程的PID
    -u:顯示進程的所屬用戶

服務(Service)管理

service管理指令
    swevice 服務名 [start | stop | restart | reload | status]

動態監控進程

  • top與ps最大的不同之處,在於top在執行一段時間可以更新正在運行的進程
基本語法:
    top[選項]
選項說明:
    選項            功能
    -d 秒數         指定top命令每隔幾秒更新
    -i              使top不顯示任何閑置或者僵屍進程
    -p              通過指定監控進程id來監控某個進程狀態
交互操作說明:
操作            功能
P               以CPU使用率排序(默認就是此項)
M               以內存使用率排序
N               以PID排序
q               退出top

查看系統網絡情況netstat(重要)

基本語法:
    netstat[選項]
    netstat -anp
選項說明
    -an 按一定順序排列輸出
    -p  顯示那個進程在調用

Python: apt軟件管理和遠程登入

  • Ubuntu軟件操作的相關命令
sudo apt-get update 更新源***
sudo apt-get install package 安裝包***
sudo apt-get remove package 刪除包***

sudo apt-cache search package 搜索軟件包
sudo apt-cache show package 獲取包的相關信息:說明 大小 版本等***
sudo apt-get install package --reinstall 重新安裝包
sudo apt-get -f install 修復安裝
sudo apt-get remove package --purge 刪除包,包括配置文件等
sudo apt-get build-dep package 安裝相關的編譯環境

sudo apt-get upgrade 更新已安裝的包***
sudo apt-get dist-upgrade 升級系統
sudo apt-chche depends packages 了解使用該包依賴那些包
sudo apt-chche rdepends package 查看該包被那些包依賴
sudo apt-get source package 下載該包的源代碼

Linux知識補充(更新時間: 2021-7-22 20:12)

tail命令

從文件尾部向上查看最后n行的內容
使用方式:tail -n[行數] 文件名
如果沒有指定行數,默認顯示最后10行內容
*****
一個比較重要的應用:顯示日志 : tail -f test.log
一個終端tail -f test.log , 另一個終端: echo “hello world” >>test.log
*****

軟鏈接 -- 源文件要使用絕對路徑

* 軟連接類似於windows下的快捷方式

* 如何創建軟連接:
ln -s 文件名 快捷方式的名字
例如:ln -s aa aa.soft

目錄也可以創建軟連接
例如:ln -s tmp tmp.link

*****
創建軟鏈接應注意事項:
ln創建軟連接要用絕對路徑,因為如果不使用絕對路徑,一旦這個連接文件發生位置變動,就不能找到那個文件了。(如果使用相對路徑軟連接或者原文件移動位置都找不到了)

軟連接文件的大小是: 路徑+文件名的總字節數

硬鏈接

* ln 文件名 硬鏈接的名字
* ln test.log test.log.hard
* 使用硬鏈接應注意事項
* 硬鏈接不能建在目錄上  目錄不能建立硬鏈接
* 硬連接對絕對路徑沒有要求
* 硬連接不能跨文件系統

硬鏈接文件和源文件的inode是相同的,文件系統的inode要求唯一,跨文件系統可能會使inode不同, 所以硬鏈接不能跨文件系統

* 硬鏈接的本質
* 硬連接的本質是不同的文件名所在的inode節點是相同的,相同的inode節點指向了相同的數據塊,所以他們的文件內容是一樣的,文件內容會同步。

軟件的安裝和卸載

11.1 在線安裝 -- 建議安裝前update下
	軟件安裝:sudo apt-get install 軟件名
	軟件卸載:sudo apt-get remove 軟件名
	更新軟件列表:sudo apt-get update
	清理安裝包:sudo apt-get clean
	清理的是緩存路徑:/var/cache/apt/archives

11.2 軟件包安裝
	在Ubuntu系統下必須有deb格式的安裝包
	軟件安裝
	sudo dpkg -i xxx.deb
	軟件卸載
	sudo dpkg -r 軟件名

-------------2021-7-26更新

linux查看cuda版本
cuda一般安裝在 /usr/local/cuda/ 路徑下,該路徑下有一個version.txt文檔,里面記錄了cuda的版本信息

cat  /usr/local/cuda/version.txt

---------------2021-9-26更新

  • wget命令下載文件
    https://www.cnblogs.com/sx66/p/11887022.html
  • linux之間復制文件和目錄命令scp
    https://www.runoob.com/linux/linux-comm-scp.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM