Linux(入門篇)

来源:https://www.cnblogs.com/yp666/archive/2022/07/26/16523011.html
-Advertisement-
Play Games

一、電腦基礎和Linux基礎知識 1.馮諾依曼體繫結構 1946年美籍匈牙利數學家馮·諾依曼於提出存儲程式原理,把程式本身當作數據來對待,程式和該程式處理的數據用同樣的方式儲存。馮·諾依曼體系的要點是: 數字電腦的數制採用二進位,bit位, byte位元組1 byte = 8 bit 電腦應該按 ...


一、電腦基礎和Linux基礎知識

1.馮諾依曼體繫結構

1946年美籍匈牙利數學家馮·諾依曼於提出存儲程式原理,把程式本身當作數據來對待,程式和該程式處理的數據用同樣的方式儲存。馮·諾依曼體系的要點是:

  • 數字電腦的數制採用二進位,bit位, byte位元組1 byte = 8 bit
  • 電腦應該按照程式順序執行
  • 電腦硬體由運算器控制器存儲器輸入設備輸出設備五大部分組成

8個二進位位bit(b)稱為一個位元組byte(B)

(1)二級制和十進位轉換

0
2^0 1    
2^1 10         2  
2^2 100        4
2^3 1000       8
2^4 10000      16
2^5 100000     32
2^6 1000000    64
2^7 10000000   128
2^8            256
2^9            512
2^10           1024

#綜上,0的個數等於2的次方數

例:十進位26的二進位計算方法 

26=16+8+2
 
10000   16
01000    8
00010    2
11010

#方法:用2的n次方的數去湊成所要求的二進位數,奇數+1

(2)ibase和obase用法

ibase:設置輸入數據的進位

obase:設置輸出數據的進位

[[email protected] ~]#bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.

obase=2
ibase=10
26
11010

不同進位轉換:

八進位轉十進位: echo "obase=10; ibase=8; 377" lbc

二進位轉十進位: echo "obase=10; ibase=2; 11111111" |bc

二進位轉16進位: echo "obase=16; ibase=2; 11111111"  |bc

[[email protected] ~]#echo "obase=10; ibase=8; 377" |bc
255
[[email protected] ~]#echo "obase=10; ibase=2; 11111111" |bc
255
[[email protected] ~]#echo "obase=16; ibase=2; 11111111" |bc
FF

 


2.摩爾定律

由英特爾(Intel)創始人之一戈登·摩爾於1965年提出,當價格不變時,集成電路上可容納的元器件的數目,約每隔18-24個月便會增加一倍,性能也將提升一倍

 


3.Linux/Unix 哲學思想、原則、理念

  • 一切都是一個文件(包括硬體)
  • 小型,單一用途的程式
  • 鏈接程式,共同完成複雜的任務(shell腳本)
  • 避免令人困惑的用戶界面
  • 配置數據存儲在文本中

 


4.開源許可證 GPL、BSD、MIT、Mozilla、Apache和LGPL

(1)區別

(2)查看軟體的發行許可(License)

[[email protected] ~]#rpm -qi kernel |grep License
License     : GPLv2 and Redistributable, no modification permitted
[[email protected] ~]#
[[email protected] ~]#rpm -qi openssh|grep License
License     : BSD

 


5.安裝Centos8、Rocky8和Ubuntu20.4

(1)Centos8、Rocky8

(1.1)在啟動安裝時按Tab鍵在命令後面添加" net.ifnames=0 biosdevname=0 "可以將網卡名稱限定為eth開頭

(1.2)系統預設語言選擇:English

(1.3)時區:Asia/Shanghai

(1.4)安裝方式:Minimal Install   (建議選擇最小安裝,遇到錯誤去解決後能積累經驗)

(1.5)分區:暫時預設

(1.6)網路和主機名

(1.7)設置root用戶和密碼

(1.8)創建普通用戶

(1.9)重啟安裝完成

 

(2)Ubuntu

(2.1)系統預設語言選擇:English

(2.2)安裝或升級:選擇Continue without updating 安裝不更新

 

(2.3)鍵盤語言佈局:預設English

(2.4)網路配置:開啟了DHCP會自動分配一個IP地址

(2.5)代理配置:預設

(2.6)鏡像地址:http://mirrors.aliyun.com/ubuntu/    使用阿裡雲的鏡像地址,在國內速度快些

(2.7)分區:暫時預設

(2.8)創建普通用戶

(2.9)Enable Ubuntu Advantage:預設

(2.10)開啟SSH

(2.11)Featured Server Snps:預設

(2.12)安裝完成後重啟

 


6.什麼是Shell

Shell 是Linux系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行。

#各種Shell
[[email protected] ~]#echo ${SHELL}
/bin/bash
[[email protected] ~]#cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

 


7.shell中可執行的兩類(內外)命令

  • 內部命令:由shell自帶的,而且通過某命令形式提供, ,用戶登錄後自動載入並常駐記憶體中
  • 外部命令:在文件系統路徑下有對應的可執行程式文件,當執行命令時才從磁碟載入至記憶體中,執行完畢後從記憶體中刪除

查看是內部還是外部命令

type COMMAND

[[email protected] ~]# type -a echo
echo is a shell builtin   #內部命令
echo is /usr/bin/echo     #外部命令

#綜上,echo既是內部命令又是外部命令

[[email protected] ~]# type -a who
who is /usr/bin/who       #外部命令

hash緩存表

系統初始hash表為空,當外部命令執行時,預設會從PATH路徑下尋找該命令,找到後會將這條命令的路徑記錄到hash表中,當再次使用該命令時,shell解釋器首先會查看hash表,存在將執行之,如果不存在,將會去PATH路徑下尋找,利用hash緩存表可大大提高命令的調用速率

命令常見用法

  • hash 顯示hash緩存
  • hash -l 顯示hash緩存,可作為輸入使用
  • hash -p path name 將命令全路徑path起別名為name
  • hash -t name 列印緩存中name的路徑
  • hash -d name 清除name緩存
  • hash -r 清除緩存

 


8.文件系統目錄結構

(1)結構

文件和目錄被組織成一個單根倒置樹結構

文件系統從根目錄下開始,用“/”表示

根文件系統(rootfs):root filesystem

標準Linux文件系統(如:ext4),文件名稱大小寫敏感,例如:MAIL, Mail, mail, mAiL

以 . 開頭的文件為隱藏文件

路徑分隔的 /

文件名最長255個位元組

包括路徑在內文件名稱最長4095個位元組

藍色-->目錄 綠色-->可執行文件 紅色-->壓縮文件 淺藍色-->鏈接文件 灰色-->其他文件

除了斜杠和NUL,所有字元都有效.但使用特殊字元的目錄名和文件不推薦使用,有些字元需要用引號來引用

(2)常用目錄功能

  • /bin:所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程式
  • /sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程式
  • /boot:引導文件存放目錄,內核文件(vmlinuz)、引導載入器(bootloader, grub)都存放於此目錄
  • /dev:設備文件及特殊文件存儲位置
  • /etc:配置文件目錄
  • /home:普通用戶家目錄
  • /lib:啟動時程式依賴的基本共用庫文件以及內核模塊文件(/lib/modules)
  • /lib64:專用於x86_64系統上的輔助共用庫文件存放位置
  • /media:攜帶型移動設備掛載點
  • /mnt:臨時文件系統掛載點
  • /opt:第三方應用程式的安裝位置
  • /proc:用於輸出內核與進程信息相關的虛擬文件系統
  • /sys:用於輸出當前系統上硬體設備相關信息虛擬文件系統
  • /root:管理員的家目錄
  • /run:目前在系統中運行的一些臨時文件
  • /srv:系統上運行的服務用到的數據
  • /tmp:臨時文件存儲位置
  • /usr: universal shared, read-only data
    ├── bin: 保證系統擁有完整功能而提供的應用程式
    ├── sbin:
    ├── lib:32位使用
    ├── lib64:只存在64位系統
    ├── include: C程式的頭文件(header files)
    ├── share:結構化獨立的數據,例如doc, man等
    ├── local:第三方應用程式的安裝位置
  • /var:variable data files
    ├── cache: 應用程式緩存數據目錄
    ├── lib: 應用程式狀態信息數據
    ├── local:專用於為/usr/local下的應用程式存儲可變數據
    ├── lock: 鎖文件
    ├── log: 日誌目錄及文件
    ├── opt: 專用於為/opt下的應用程式存儲可變數據
    ├── run: 運行中的進程相關數據,通常用於存儲進程pid文件
    ├── spool: 應用程式數據池
    ├── tmp: 保存系統兩次重啟之間產生的臨時數據

 


9.Linux下的文件類型

  • - 普通文件
  • d 目錄文件directory
  • l 符號鏈接文件link
  • b 塊設備block
  • c 字元設備character
  • p 管道文件pipe
  • s 套接字文件socket

 


10.文件元數據和節點表結構

(1)inode 表結構

每個文件的屬性信息,比如:文件的大小,時間,類型等,稱為文件的元數據(meta data)。這此元數據是存放在inode(index node)表中。inode 表中有很多條記錄組成,第一條記錄對應的存放了一個文件的元數據信息

每一個inode表記錄對應的保存了以下信息:

  • inode number 節點號
  • 文件類型
  • 許可權
  • UID
  • GID
  • 鏈接數(指向這個文件名路徑名稱個數)
  • 該文件的大小和不同的時間戳
  • 指向磁碟上文件的數據塊指針
  • 有關文件的其他數據

指針

磁碟是一種塊文件,以塊的方式來存儲數據,每塊通常都是4K,

  • 直接指針
    直接指針直接指向存放的位置,直接指針只有12個,12x4K=48K,可以表達48K的數據一個文件假如是1K或者哪怕是一個位元組,也要分配一塊4k的空間來存儲這個文件,一個文件假如是10k,分配3塊空間來存放,就有3個指針來指向存放的3個塊
  • 間接指針
    指針不是直接指向數據存儲的位置,而是指向指針塊,指針塊也是4K大小,一個指針放4個位元組,一個指針塊可以放1024個指針,4Kx1024=4M ,可以表達4M的數據超過48K低於4M,就可以用間接指針來表示
  • 雙重間接指針一個間接指針塊指向另一個間接指針塊矩陣4Kx1024x1024=4G,可以表達4G的數據
  • 三重間接指針
    4Kx1024x1024x1024=4T,可以表達4T的數據

(2)硬鏈接

硬鏈接本質上就給一個文件起一個新的名稱,實質是同一個文件

硬鏈接特性

  • 創建硬鏈接會在對應的目錄中增加額外的記錄項以引用文件
  • 對應於同一文件系統上一個物理文件
  • 每個目錄引用相同的inode號
  • 創建時鏈接數遞增
  • 刪除文件時:rm命令遞減計數的鏈接,文件要存在,至少有一個鏈接數,當鏈接數為零時,該文件被刪除
  • 不能跨越驅動器或分區
  • 不支持對目錄創建硬鏈接

格式

ln filename [linkname ]

(3)軟鏈接或符號鏈接

一個符號鏈接指向另一個文件,就像 windows 中快捷方式,軟鏈接文件和原文件本質上不是同一個文件

軟鏈接特點

  • 一個符號鏈接的內容是它引用文件的名稱
  • 可以對目錄創建軟鏈接
  • 可以跨分區的文件實現
  • 指向的是另一個文件的路徑;其大小為指向的路徑字元串的長度;不增加或減少目標文件inode的引用計數
  • 在創建軟鏈接時, 如果源文件使用相對路徑,是相對於軟鏈接文件的路徑,而非相對於當前工作目錄,但是軟鏈接的路徑如果是相對路徑,則是相對於當前工作目錄

 格式

ln -s filename [linkname]

(4)硬鏈接和軟鏈接的區別

  硬鏈接 軟鏈接
本質 本質是同一個文件 本質不是同一個文件
跨設備 不支持 支持
inode(節點) 相同 不同
鏈接數 創建新的硬鏈接,鏈接數增加;刪除硬鏈接,鏈接數減少 創建或刪除,鏈接數不會變化
文件夾 不支持 支持
相對路徑 原始文件相對路徑是相對於當前工作目錄 原始文件的相對路徑是相對於鏈接文件的相對路徑
刪除源文件 只是鏈接數減一,但鏈接文件的訪問不受影響 鏈接文件將無法訪問
文件類型 和源文件相同 鏈接文件,和源文件無關
文件大小 和源文件相同 源文件的路徑長度

 ls -i 列印每個文件的索引號

索引號inode相同的本質上是同一個文件(前提是同一個邏輯捲)

[[email protected] ~]# echo abc > f1.txt
[[email protected] ~]#
[[email protected] ~]# ln f1.txt f2.txt
[[email protected] ~]# ln -s f1.txt f3.txt
[[email protected] ~]#
[[email protected] ~]# ls -li   
total 8
201327634 -rw-r--r--. 2 root root 4 Jul 27 15:28 f1.txt
201327634 -rw-r--r--. 2 root root 4 Jul 27 15:28 f2.txt
201327862 lrwxrwxrwx. 1 root root 6 Jul 27 15:28 f3.txt -> f1.txt

 


11.用戶、組和許可權

(1)用戶

 Linux中每個用戶是通過 User Id (UID)來唯一標識的

  • 管理員:root, 0
  • 普通用戶:1-60000 自動分配
    • 系統用戶:1-499 (CentOS 6以前), 1-999 (CentOS 7以後)
    • 對守護進程獲取資源進行許可權分配
    • 登錄用戶:500+ (CentOS6以前), 1000+(CentOS7以後)
    • 給用戶進行互動式登錄使用

(2)用戶組

Linux中可以將一個或多個用戶加入用戶組中,用戶組是通過Group ID(GID) 來唯一標識的。

  • 管理員組:root, 0
  • 普通組:
    • 系統組:1-499(CentOS 6以前), 1-999(CentOS7以後), 對守護進程獲取資源進行許可權分配
    • 普通組:500+(CentOS 6以前), 1000+(CentOS7以後), 給用戶使用

(3)用戶和組的關係

  • 用戶的主要組(primary group):用戶必須屬於一個且只有一個主組,預設創建用戶時會自動創建和用戶名同名的組,做為用戶的主要組,由於此組中只有一個用戶,又稱為私有組
  • 用戶的附加組(supplementary group): 一個用戶可以屬於零個或多個輔助組,附屬組

例:

[[email protected] ~]# id postfix
uid=89(postfix) gid=89(postfix) groups=89(postfix),12(mail)

 


12.磁碟分區

(1)為什麼要分區

  • 優化I/O性能
  • 實現磁碟空間配額限制
  • 提高修複速度
  • 隔離系統和程式
  • 安裝多個OS
  • 採用不同文件系統

(2)分區方式

兩種分區方式:MBR,GPT

(2.1)MBR分區

使用32位表示扇區數,分區不超過2T

MBR分區中一塊硬碟最多有4個主分區,也可以3主分區+1擴展(N個邏輯分區)

MBR分區:主和擴展分區對應的1--4,/dev/sda3,邏輯分區從5開始,/dev/sda5

(2.2)GPT分區

支持128個分區,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)

 


13.文件系統

Linux 常用文件系統

  • ext2:Extended fifile system 適用於那些分區容量不是太大,更新也不頻繁的情況,例如 /boot 分區
  • ext3:是 ext2 的改進版本,其支持日誌功能,能夠幫助系統從非正常關機導致的異常中恢復
  • ext4:是 ext 文件系統的最新版。提供了很多新的特性,包括納秒級時間戳、創建和使用巨型文件(16TB)、最大1EB的文件系統,以及速度的提升
  • xfs:SGI,支持最大8EB的文件系統
  • swap
  • iso9660 光碟
  • btrfs(Oracle)

 


14.RAID

(1)什麼是RAID

"RAID"一詞是由David Patterson, Garth A. Gibson, Randy Katz 於1987年在加州大學伯克利分校發明的。在1988年6月SIGMOD會議上提交的論文"A Case for Redundant Arrays of Inexpensive Disks”"中提出,當時性能最好的大型機不斷增長的個人電腦市場開發的一系列廉價驅動器的性能所擊敗。儘管故障與驅動器數量的比例會上升,但通過配置冗餘,陣列的可靠性可能遠遠超過任何大型單個驅動器的可靠性

獨立硬碟冗餘陣列RAID, Redundant Array of Independent Disks),舊稱廉價磁碟冗餘陣列 Redundant Array of Inexpensive Disks),簡稱磁碟陣列。利用虛擬化存儲技術把多個硬碟組合起來,成為一個或多個硬碟陣列組,目的為提升性能或數據冗餘,或是兩者同時提升。

RAID 層級不同,數據會以多種模式分散於各個硬碟,RAID 層級的命名會以 RAID 開頭並帶數字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每種等級都有其理論上的優缺點,不同的等級在兩個目標間獲取平衡,分別是增加數據可靠性以及增加存儲器(群)讀寫性能。

簡單來說,RAID把多個硬碟組合成為一個邏輯硬碟,因此,操作系統只會把它當作一個實體硬碟。RAID常被用在伺服器電腦上,並且常使用完全相同的硬碟作為組合。由於硬碟價格的不斷下降與RAID功能更加有效地與主板集成,它也成為普通用戶的一個選擇,特別是需要大容量存儲空間的工作,如:視頻與音頻製作

(1)RAID-0

條帶捲 2+ (最低磁碟個數) 空間利用率100% 讀寫速度快,不容錯

(2)RAID-1

鏡像捲 2 50% 讀寫速度一般,容錯

(3)RAID5

帶奇偶校驗的條帶捲 3+ (n-1)/n 讀寫速度塊,容錯,允許壞一塊盤

(4)RAID6

帶奇偶校驗的條帶集,雙校驗 4+ (n-2)/n 讀寫快,容錯,允許壞兩塊

(5)RAID10

RAID1的安全+RAID0的高速 4 50% 讀寫速度快,容錯

 

                 

(6)實現軟RAID

mdadm工具:為軟RAID提供管理界面,為空餘磁碟添加冗餘,結合內核中的md(multi devices)

RAID設備可命名為/dev/md0、/dev/md1、/dev/md2、/dev/md3等

常用選項說明:

  • 模式:
    • 創建:-C
    • 裝配:-A
    • 監控:-F
    • 管理:-f, -r, -a
  • <raiddevice>: /dev/md#
  • <component-devices>: 任意塊設備
  • -C: 創建模式
    • -n #: 使用#個塊設備來創建此RAID
    • -l #:指明要創建的RAID的級別
    • -a {yes|no}:自動創建目標RAID設備的設備文件
    • -c CHUNK_SIZE: 指明塊大小,單位k
    • -x #: 指明空閑盤的個數
  • -D:顯示raid的詳細信息
    • mdadm -D /dev/md#
  • 管理模式:
    • -f: 標記指定磁碟為損壞
    • -a: 添加磁碟
    • -r: 移除磁碟
  • 觀察md的狀態: cat /proc/mdstat

範例

#使用mdadm創建並定義RAID設備
[[email protected] ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1

#用文件系統對每個RAID設備進行格式化
[[email protected] ~]# mkfs.xfs /dev/md0

#使用mdadm檢查RAID設備的狀況
[[email protected] ~]# mdadm --detail|D /dev/md0

#增加新的成員
[[email protected] ~]# mdadm -G /dev/md0 -n4  -a /dev/sdf1

#模擬磁碟故障
[[email protected] ~]# mdadm /dev/md0  -f /dev/sda1

#移除磁碟
[[email protected] ~]# mdadm   /dev/md0 -r /dev/sda1

#在備用驅動器上重建分區
[[email protected] ~]# mdadm /dev/md0  -a /dev/sda1

#系統日誌信息
[[email protected] ~]# cat /proc/mdstat

 

 


二、Linux基礎命令

1.apt

命令 功能
apt remove 會刪除軟體包而保留軟體的配置文件
apt purge 會同時清除軟體包和軟體的配置文件

 


2.查看當前終端設備

VMware同時按Ctrl+Alt+F12345... 可切換新的終端設備

(1)tty

#遠程終端查看
[[email protected] ~]#tty
/dev/pts/0

#VMware上查看
[[email protected] ~]#tty
/dev/tty1

(2)who

[email protected]untu01:~# who
rye      tty1         2022-07-12 11:58
root     pts/0        2022-07-12 13:19 (10.0.0.1)

 


3.設置主機名

註:主機名不支持使用下劃線,但支持橫線,可使用字母,橫線或數字組合

#臨時生效
[[email protected] ~]#hostname NAME

#持久生效,支持CentOS7以上和Ubuntu18.04以上版本
[[email protected] ~]#hostnamectl set-hostname NAME

 


4.命令提示符 prompt (PS1)

PS1="\[\e[1;33m\][\[email protected]\h \W]\\$ \[\e[0m\]"

提示符格式說明

  • \e 或 \033 控制符
  • \u 當前用戶
  • \h 主機名簡稱
  • \H 主機名
  • \w 當前工作目錄
  • \W 當前工作目錄基名
  • \t 24小時時間格式
  • \T 12小時時間格式
  • ! 命令歷史數
  • # 開機後命令歷史數

範例:

[[email protected] ~]# PS1="\[\e[1;33m\][\t-\[email protected]\h \W\!-\#]\\$ \[\e[0m\]"
[00:45:[email protected] ~243-25]#

註:
243  !命令歷史數
25   #開機後命令歷史數

 


5.別名alias

定義別名NAME,其相當於執行命令VALUE

alias NAME='VALUE'

#顯示當前shell進程所有可用的命令別名
[[email protected] ~]# alias
alias cdnet='cd /etc/sysconfig/network-scripts'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'

創建別名 alias NAME='VALUE'

[[email protected] ~]# alias cdnet='cd /etc/sysconfig/network-scripts'
[[email protected] ~]# cdnet
[[email protected] network-scripts]# pwd
/etc/sysconfig/network-scripts

撤銷別名 unalias NAME

[[email protected] ~]# unalias ls #撤銷單個別名
[[email protected] ~]# unalias -a #撤銷所有別名

如果要執行原命令,可使用

\ALIASNAME
"ALIASNAME"
'ALIASNAME'

[[email protected] ~]# cp 1 /opt/
cp: overwrite '/opt/1'? y

[[email protected] ~]# \cp 1 /opt/
[[email protected] ~]# 'cp' 1 /opt/
[[email protected] ~]# "cp" 1 /opt/

 


6.查看硬體信息

(1)查看CPU

[[email protected] ~]# lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
...

[[email protected] ~]# cat /proc/cpuinfo
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 23
model		: 96
model name	: AMD Ryzen 5 4600H with Radeon Graphics
...

(2)查看記憶體

[[email protected] ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.7Gi       275Mi       873Mi       8.0Mi       636Mi       1.3Gi
Swap:         2.0Gi        40Mi       2.0Gi

[[email protected] ~]# cat /proc/meminfo
MemTotal:        1828236 kB
MemFree:          894484 kB
MemAvailable:    1350024 kB
Buffers:            4800 kB
Cached:           505376 kB
...

(3)查看硬碟和分區情況

[[email protected] ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  200G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0  199G  0 part
  ├─rl-root 253:0    0   70G  0 lvm  /
  ├─rl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─rl-home 253:2    0  127G  0 lvm  /home
sr0          11:0    1 1024M  0 rom

[[email protected] ~]# cat /proc/partitions
major minor  #blocks  name

   8        0  209715200 sda
   8        1    1048576 sda1
   8        2  208665600 sda2
  11        0    1048575 sr0
 253        0   73400320 dm-0
 253        1    2125824 dm-1
 253        2  133136384 dm-2

(4)查看系統架構

[[email protected] ~]# arch
x86_64

(5)查看內核版本

[[email protected] ~]# uname -r
4.18.0-372.9.1.el8.x86_64

(6)查看操作系統發行版本

Centos8、Rocky8

[[email protected] ~]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="8.6 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.6 (Green Obsidian)"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
ROCKY_SUPPORT_PRODUCT="Rocky Linux"
ROCKY_SUPPORT_PRODUCT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

Ubuntu

[[email protected] ~]#cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

[[email protected] ~]#cat /etc/issue
Ubuntu 20.04.4 LTS \n \l

 


7.日期和時間

date

[[email protected] ~]# date +"%F %T "
2022-07-12 14:11:02
[[email protected] ~]# echo `date +"%F %T "`
2022-07-12 14:11:13

cal

[[email protected] ~]# cal
      July 2022
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

修改時區

[[email protected] ~]# timedatectl set-timezone Asia/Shanghai

 


8.歡迎信息提示issue、motd文件

/etc/issuc 登錄之前顯示

/etc/motd 登錄之後顯示

 


9.echo基本用法

常用選項:

  • -E (預設)不支持 \ 解釋功能
  • -n 不自動換行
  • -e 啟用 \ 字元的解釋功能

 

啟用命令選項-e,若字元串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出

  • \a 發出警告聲
  • \b 退格鍵
  • \c 最後不加上換行符號
  • \e escape,相當於\033

顯示顏色:

"\033[字元背景顏色;字體顏色m字元串\033[0m"

"\e[字元背景顏色;字體顏色m字元串\e[0m"

顯示變數:

[[email protected] ~]# a=1
[[email protected] ~]# echo "$a"    #用變數值替換,弱引用
1
[[email protected] ~]# echo '$a'    #變數不會替換,強引用
$a

 


10.命令行擴展和被括起來的集合

(1)" " 、' ' 、` ` 三者區別

[[email protected] ~]# echo "echo $HOSTNAME"
echo rocky01
[[email protected] ~]# echo 'echo $HOSTNAME'
echo $HOSTNAME
[[email protected] ~]# echo `echo $HOSTNAME`
rocky01

#結論:

單引號:強引用,六親不認,變數和命令都不識別,都當成了普通的字元串;'最傻'

雙引號:弱引用,不能識別命令,可以識別變數;"半傻不精"

反向單引號:裡面的內容必須是能執行的命令並且有輸出信息,變數和命令都識別,並且會將反向單引號的內容當成命令進行執行後,再交給調用反向單引號的命令繼續;`最聰明`

(2)括弧擴展:{ }

{ } 可以實現列印重覆字元串的簡化形式

[[email protected] ~]# echo {1..3}
1 2 3

[[email protected] ~]# echo {a..c}
a b c

[[email protected] ~]# echo file{1..3}{a..c}
file1a file1b file1c file2a file2b file2c file3a file3b file3c

 


11.history命令行歷史

常用選項:

  • -c 清空命令歷史
  • -d offset 刪除歷史中指定的第offset個命令
  • n 顯示最近的n條歷史(例:histtory 10)

顯示時間和用戶:

[[email protected] ~]# HISTTIMEFORMAT="%F %T `whoami` "

[[email protected] ~]# history |tail -n 3
  363  2022-07-27 02:29:18 root HISTTIMEFORMAT="%F %T `whoami` "
  364  2022-07-27 02:29:20 root history
  365  2022-07-27 02:29:49 root history |tail -n 3

 


12.調用命令行歷史

  • !! 、Ctrl+P  重覆上一個命令
  • !n  執行history命令輸出對應序號n的命令
  • !$ 表示前一個命令中最後一個參數
[[email protected] ~]# cat /etc/motd
I am motd!
[[email protected] ~]# !!
cat /etc/motd
I am motd!
[[email protected] ~]# history |tail -n 2
  375  2022-07-27 02:33:14 root cat /etc/motd
  376  2022-07-27 02:33:43 root history |tail -n 2
[[email protected] ~]#
[[email protected] ~]# !375
cat /etc/motd
I am motd!
[[email protected] ~]# ll !$
ll /etc/motd
-rw-r--r--. 1 root root 11 Jul 27 01:58 /etc/motd

 


13.bash的快捷鍵

  • Ctrl + l 清屏,相當於clear命令
  • Ctrl + o 執行當前命令,並重新顯示本命令
  • Ctrl + s 阻止屏幕輸出,鎖定
  • Ctrl + q 允許屏幕輸出,解鎖
  • Ctrl + c 終止命令
  • Ctrl + z 掛起命令
  • Ctrl + a 游標移到命令行首,相當於Home
  • Ctrl + e 游標移到命令行尾,相當於End
  • Ctrl + d 刪除游標處的一個字元
  • Ctrl + u 從游標處刪除至命令行首
  • Ctrl + k 從游標處刪除至命令行尾

 


14.whatis顯示命令的簡短描述

此工具在系統剛安裝後,不可立即使用,需要製作資料庫後才可使用

man -f 等同於 whatis

#CentOS 7 版本以後
[[email protected] ~]# mandbmandb 

#CentOS 6 版本之前
[[email protected] ~]# mandbmakewhatis
[[email protected] ~]# whatis passwd
openssl-passwd (1ssl) - compute password hashes
passwd (1)           - update user's authentication tokens
passwd (5)           - password file

[[email protected] ~]# man -f passwd
openssl-passwd (1ssl) - compute password hashes
passwd (1)           - update user's authentication tokens
passwd (5)           - password file

 


15.man提供命令幫助的文件

man 幫助段落說明

序號 名稱 含義
1 NAME 名稱及簡要說明
2 SYNOPSIS 用法格式說明
3 DESCRIPTION 詳細說明
4 AUTHOR 作者
5 REPORTING BUGS 報告的錯誤信息
6 COPYRIGHT 版本信息
7 SEE ALSO 其它幫助參考
  • < > 必選內容
  • [ ] 可選內容
  • ... 同一內容可出現多次
  • { } 分組

 


16.pwd顯示當前工作目錄

每個shell和系統進程都有一個當前的工作目錄

  • -P 顯示真實物理路徑
  • -L 顯示鏈接路徑(預設)
[[email protected] ~]# ll /sbin
lrwxrwxrwx. 1 root root 8 Oct 11  2021 /sbin -> usr/sbin
[[email protected] ~]# cd /sbin
[[email protected] sbin]# pwd -P
/usr/sbin
[[email protected] sbin]# pwd
/sbin

 


17.絕對和相對路徑

絕對路徑:以正斜杠/ 即根目錄開始、完整的文件的位置路徑、可用於任何想指定一個文件名的時候

相對路徑:不以斜線開始,一般情況下,是指相對於當前工作目錄的路徑,特殊場景下,是相對於某目錄的位置,可以作為一個簡短的形式指定一個文件名

(1)basename

基名,只取文件名,不要路徑

[[email protected] sbin]# basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0

(2)dirname

目錄名,只取路徑,不要文件名

[[email protected] sbin]# dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts

 


18.ls列出目錄內容

常用選項:

  • -a 包含隱藏文件
  • -l 顯示額外的信息
  • -R 目錄遞歸
  • -ld 目錄和符號鏈接信息
  • -i 列印每個文件的索引號
  • -1 文件分行顯示
  • -S 按從大到小排序
  • -t 按mtime排序
  • -u 配合-t選項,顯示並按atime從新到舊排序
  • -U 按目錄存放順序顯示
  • -X 按文件尾碼排序
  • -F 對不同類型文件顯示時附加不同的符號:*/=>@|
  • -C 文件多時,以多列的方式顯示文件,預設是一列(標準輸出)

說明

ls 查看不同尾碼文件時的顏色由 /etc/DIR_COLORS 和變數$LS_COLORS定義

ls -l 看到文件的大小,不一定是實際文件真正占用空間的大小

 


19.stat 查看文件狀態

每個文件有三個時間戳:

  • Access time 訪問時間,atime,讀取文件內容
  • Modify time 修改時間,mtime,改變文件內容(數據)
  • Change time 改變時間,ctime,元數據發生改變
[[email protected] ~]#stat /etc/passwd
  File: /etc/passwd
  Size: 2504      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 134924395   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2022-07-19 18:12:04.427008996 +0800
Modify: 2022-07-12 07:39:20.510971037 +0800
Change: 2022-07-12 07:39:20.511971037 +0800
 Birth: 2022-07-12 07:39:20.510971037 +0800

 


20.file檢查文件的類型

[[email protected] ~]#file linux.txt
linux.txt: ASCII text

[[email protected] ~]#file win.txt
win.txt: ASCII text, with CRLF line terminators

修改文件類型:vim打開目標文件

:set ff=unix
:set ff=dos

 


21.常見通配符

*

匹配零個或多個字元,但不匹配 "." 開頭的文件,即隱藏文件

匹配任何單個字元,一個漢字也算一個字元

[0-9]

匹配數字範圍

[a-z]

一個字母

[peng]

匹配列表中的任何的一個字元

[^peng]

匹配列表中的所有字元以外的字元

[:digit:]

任意數字,相當於0-9

[:lower:]

任意小寫字母,表示 a-z

[:upper:]

任意大寫字母,表示 A-Z

範例: [ ] 和 { }

[[email protected] ~]# touch f{1..3}
[[email protected] ~]# ls
f1  f2  f3
[[email protected] ~]#
[[email protected] ~]# ls f{1..5}
ls: cannot access 'f4': No such file or directory
ls: cannot access 'f5': No such file or directory
f1  f2  f3
[[email protected] ~]#
[[email protected] ~]# ls f[1-5]
f1  f2  f3

 


22.touch創建空文件和刷新時間

選項說明

  • -a 僅改變 atime和ctime
  • -m 僅改變 mtime和ctime
  • -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的時間戳
  • -c 如果文件不存在,則不予創建

 


23.cp複製文件和目錄

常用選項

  • -i 如果目標已存在,覆蓋前提示是否覆蓋
  • -n 不覆蓋
  • -r,-R 遞歸複製目錄及內部的所有內容
  • -b 目標存在,覆蓋前先備份,預設形式為filename~,只保留最近一次的備份
  • -a 存檔,常用於備份功能
  • -v 詳細

範例:

將/etc/目錄下所有文件,備份到/data獨立的子目錄下,並要求子目錄格式為 backupYYYY-mm-dd,備份過程可見,要求保留原有許可權

[[email protected] ~]# cp -av /etc/ /data/backup`date +%F`
'/etc/' -> '/data/backup2022-07-27'
'/etc/dnf' -> '/data/backup2022-07-27/dnf'
'/etc/dnf/dnf.conf' -> '/data/backup2022-07-27/dnf/dnf.conf'
...省略...

 


24.mv移動和重命名文件

 常用選項

  • -i 互動式
  • -f 強制
  • -b 目標存在,覆蓋前先備份
  • -t  (mv -t dir file 表示將file移動到dir)

 


25.rm刪除文件

常用選項:

  • -i 互動式
  • -f 強制刪除
  • -r 遞歸
  • --no-preserve-root 刪除/

 


26.目錄操作

(1)tree 顯示目錄數

常見選項:

  • -d: 只顯示目錄
  • -L level:指定顯示的層級數目
  • -P pattern: 只顯示由指定wild-card pattern匹配到的路徑

(2)mkdir 創建目錄

常見選項:

  • -p: 存在於不報錯,且可自動創建所需的各目錄
  • -v: 顯示詳細信息
  • -m MODE: 創建目錄時直接指定許可權

(3)rmdir 刪除空目錄

常見選項:

  • -p 遞歸刪除父空目錄
  • -v 顯示詳細信息

註意:rmdir只能刪除空目錄,如果想刪除非空目錄,可以使用rm -r 命令,遞歸刪除目錄樹

 


27.IO重定向

Linux給程式提供三種 I/O 設備

文件描述符 設備文件名 設備描述
0 stdin 標準輸入
1 stdout 標準輸出
2 stderr 標準錯誤輸出
操作符號 描述
1> 或 > 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把標準輸出和錯誤都重定向
>> 追加標準輸出重定向至文件
2>> 追加標準錯誤重定向至文件

範例:

(1)清除大文件

[[email protected] data]# cat /dev/null > /data/big.log

(2)將標準輸出和錯誤都重定向到同一個文件

方法一:
[[email protected] ~]# ls /data /xxx > /data/all.log 2>&1
方法二:
[[email protected] ~]# ls /data /xxx 2> /data/all.log 1>&2
方法三:
[[email protected] ~]# ls /data/ /xxx &> /data/all.log

[[email protected] ~]# cat /data/all.log
ls: cannot access '/xxx': No such file or directory
/data/:
all.log
test.txt

 


28.高級重定向

(1)cmd <<< "string"

# cmd <<< 'string' 將string的內容作為cmd的輸入  (註:只能字元串)

[[email protected] ~]# bc <<<`seq -s+ 10`
55

(2)cmd1 < <(cmd2)

cmd1 < <(cmd2)  將cmd2的輸出作為cmd1的輸入(輸入會寫入一個臨時文件,中間通過臨時文件傳遞)  作用等同於 "cmd2 | cmd1"

[[email protected] ~]# bc < <(seq -s+ 10)
55

#查看是否會生成臨時文件
[[email protected] ~]# ll <(seq -s+ 10)
lr-x------. 1 root root 64 Jul 14 19:55 /dev/fd/63 -> 'pipe:[300474]'

 


29.tr 轉換和刪除字元

常用選項:

  • -d 刪除所有屬於第一個字元集的字元
  • -s 把連續重覆的字元以單獨一個字元表示,即去重
  • -t 將第一個字元集對應字元轉化為第二字元集對應的字元

範例:

[[email protected] ~]# echo 12345 |tr -d 25
134

[[email protected] ~]# echo aaabbbccccdffgg |tr -s abcf
abcdfgg

[[email protected] ~]# echo abcdef |tr 'a-z' 'A-Z'
ABCDEF

 


30.用戶和組管理命令

用戶管理命令

  • useradd
  • usermod
  • userdel

組帳號維護命令

  • groupadd
  • groupmod
  • groupdel

(1)useradd 創建新的用戶

常用選項

  • -u UID
  • -o 配合-u 選項,不檢查UID的唯一性
  • -g GID 指明用戶所屬基本組,可為組名,也可以GID
  • -c "COMMENT“ 用戶的註釋信息
  • -d HOME_DIR 以指定的路徑(不存在)為家目錄
  • -s SHELL 指明用戶的預設shell程式,可用列表在/etc/shells文件中
  • -G GROUP1[,GROUP2,...] 為用戶指明附加組,組須事先存在
  • -N 不創建私用組做主組,使用users組做主組
  • -r 創建系統用戶 CentOS 6之前: ID<500,CentOS7 以後: ID<1000
  • -m 創建家目錄,用於系統用戶
  • -M 不創建家目錄,用於非系統用戶
  • -p 指定加密的密碼

useradd 命令預設值設定由/etc/default/useradd定義

[[email protected] ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

(2)usermod 修改用戶屬性

(3)userdel 刪除用戶

常見選項

  • -f, --force   強制
  • -r, --remove 刪除用戶家目錄和郵箱

(4)id 查看用戶的UID,GID等信息

(5)su: 切換用戶身份,並且以指定用戶的身份執行命令

切換用戶的方式:

su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄,即不完全切換

su - UserName:登錄式切換,會讀取目標用戶的配置文件,切換至自已的家目錄,即完全切換

說明:root su至其他用戶無須密碼;非root用戶切換時需要密碼

註意:su 切換新用戶後,使用 exit 退回至舊的用戶身份,而不要再用 su 切換至舊用戶,否則會生成很多的bash子進程,環境可能會混亂。

[[email protected] ~]# su rye
[[email protected] root]$ exit
exit
[[email protected] ~]#

(6)passwd 修改用戶密碼

(7)chage 修改用戶密碼策略

(8)groupadd 創建組

(9)groupmod 組屬性修改

(10)groupdel 刪除組

 


31.文件許可權管理

(1)chown 設置文件的所有者

chown 命令可以修改文件的屬主,也可以修改文件屬組

[[email protected] ~]# ll 1.txt
-rw-r--r--. 1 root root 0 Jul 27 16:20 1.txt

[[email protected] ~]# chown rye:rye 1.txt
[[email protected] ~]# ll 1.txt
-rw-r--r--. 1 rye rye 0 Jul 27 16:20 1.txt

(2)chgrp 設置文件的屬組信息

chgrp 命令可以只修改文件的屬組

[[email protected] ~]# ll
total 0
-rw-r--r--. 1 rye rye 0 Jul 27 16:20 1.txt
[[email protected] ~]# chgrp root 1.txt
[[email protected] ~]# ll
total 0
-rw-r--r--. 1 rye root 0 Jul 27 16:20 1.txt

#測試能否改屬主
[[email protected] ~]# chgrp root:root 1.txt
chgrp: invalid group: ‘root:root’
結論:chgrp 命令可以只修改文件的屬組

(3)chmod 修改文件許可權

 


32.umask

umask的值可以用來保留在創建文件許可權

實現方式:

  • 新建文件的預設許可權: 666-umask,如果所得結果某位存在執行(奇數)許可權,則將其許可權+1,偶數不變
  • 新建目錄的預設許可權: 777-umask

非特權用戶umask預設值是 002

root的umask 預設值是 022

範例:

臨時性修改文件許可權為000:

方法一:
[[email protected] ~]#touch a.txt; chmod 000 a.txt
[[email protected] ~]#ll a.txt
----------. 1 root root 0 Jul 15 20:30 a.txt

方法二:
[[email protected] ~]#umask 777; touch a.txt; umask 022;
[[email protected] ~]#ll a.txt 
----------. 1 root root 0 Jul 15 20:32 a.txt

方法三:
[[email protected] ~]#(umask 777; touch a.txt) 
[[email protected] ~]#ll a.txt 
----------. 1 root root 0 Jul 15 20:33 a.txt

 


33.vim

 命令模式 --> 插入模式

  • i    insert,在游標所在處輸入
  • I    在當前游標所在行的行首輸入
  • a    append,在游標所在處後面輸入
  • A    在當前游標所在行的行尾輸入
  • o    在當前游標所在行的下方打開一個新行
  • O    在當前游標所在行的上方打開一個新行

擴展命令模式基本命令

  • w                  寫(存)磁碟文件
  • wq                寫入並退出
  • x                   寫入並退出
  • X                   加密
  • q                   退出
  • q!                  不存檔退出
  • r  filename    讀文件內容到當前
  • w  filename   將當前文件內容寫入另一個文件
  • !command    執行命令
  • r!command   讀入命令的輸出

(1)定製vim的工作特性

擴展命令模式的配置只是對當前vim進程有效,可將配置存放在文件中持久保存

配置文件:

/etc/vimrc #全局
~/.vimrc #個人

(1.1)行號

顯示:set number,簡寫 set nu
取消顯示:set nonumber, 簡寫 set nonu

(1.2)忽略字元的大小寫

啟用:set ignorecase,簡寫 set ic
不忽略:set noic

(1.3)自動縮進

啟用:set autoindent,簡寫 set ai
禁用:set noai

(1.4)複製保留格式

啟用:set paste
禁用:set nopaste

(1.5)顯示Tab ^I和換行符 和$(不可見字元)

啟用:set list
禁用:set nolist

(1.6)文件格

啟用windows格式:set fileformat=dos
啟用unix格式:set fileformat=unix
簡寫 set ff=dos|unix

1.7)Tab 用空格代替

啟用:set expandtab   預設為8個空格代替Tab
禁用:set noexpandtab
簡寫:set et

(1.8)Tab用指定空格的個數代替

啟用:set tabstop=# 指定#個空格代替Tab
簡寫:set ts=4

(1.9)設置縮進寬度

#向右縮進 命令模式>>
#向左縮進 命令模式<<
#設置縮進為4個字元
set shiftwidth=4

(1.10)設置游標所在行的標識線

啟用:set cursorline,簡寫 set cul
禁用:set nocursorline

(1.11)加密

啟用: set key=password
禁用: set key=

(2)命令模式

命令模式,又稱為Normal模式,功能強大,只是此模式輸入指令併在屏幕上顯示,所以需要記憶大量的快捷按鍵才能更好的使用

(2.1)保存退出

ZZ 保存退出
ZQ 不保存退出

(2.2)行首行尾跳轉

^ 跳轉至行首的第一個非空白字元
0 跳轉至行首
$ 跳轉至行尾

(2.3)行間移動

:#    跳轉至由第#行


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 分享一個WPF 實現 Windows 軟體快捷小工具 Windows 軟體快捷小工具 作者:WPFDevelopersOrg 原文鏈接:https://github.com/WPFDevelopersOrg/SoftwareHelper 框架使用.NET40; Visual Studio 2019; ...
  • 1.依賴 在理解依賴註入之前,必須先理解其中的依賴是什麼。對於我們開發的程式而言,實際上就是通過不同類型的對象相互協作而構建成的應用,例如在訂單類中,就會引用商品類作為某個屬性。由於類於類之間存在這種引用關係,在類中就避免不了通過“new”對引用的外部類型進行實例化,對於這種現象就會促使應用程式代碼 ...
  • 1.iftop 以CentOS 7.8為例,先執行以下命令 yum install -y epel-release 安裝iftop yum install -y iftop iftop 界面相關說明 TX:發送流量 RX:接收流量 TOTAL:總流量 peak:流量峰值 rates:分別表示過去2s ...
  • GraphPad Prism 9 for Mac是一款專業的科研統計分析繪圖軟體,世界領先的科學家都在使用Prism 9 Mac,使用Prism 9 Mac版幫助您有效的分析、統計並繪製出直觀的圖形,幫您節省大量的時間,讓您更加專註於您的科研。 詳情:GraphPad Prism 9 for Mac ...
  • 前言 製作centos7無人值守安裝,在windows下也可以進行,但是由於U盤文件系統的問題,難免需要在windows和centos7下來回切換,進行配置,才能完成製作,比如主分區exfat格式用於存放ISO和ks.cfg文件通常情況下只能被windows讀取,centos7下讀取不到,掛載不上, ...
  • DxO PureRAW Mac版是發佈了,該軟體採用了智能技術,以解決影響所有RAW文件的七個問題:去馬賽克,降噪,波紋,變形,色差,不想要的漸暈,以及缺乏清晰度。 詳情:DxO PureRAW for mac(raw照片處理器) 功能特色 釋放Adobe Photoshop和Lightroom的R ...
  • 想給自己的照片變得高大上嗎?那就來試試這裡的DxO PhotoLab for Mac版raw圖片處理軟體吧。它可以隨時手動調整,控制照片的各個方面。dxo photolab mac版還能去除噪音有效地消除了光的限制,檢索顏色的細節,應用複雜的光學校正和增強細節。 詳情:DxO PhotoLab 5 ...
  • 換源(建議清華源或者阿裡源) sudo apt update sudo apt upgrade # 軟體升級 sudo apt dist-upgrade #內核更新 grub-customizer 引導控制工具 sudo add-apt-repository ppa:danielrichter200 ...
一周排行
    -Advertisement-
    Play Games
  • public static void GetRegistData() { string name = "huishuangzhu"; //搜索到註冊表根目錄 RegistryKey hkml = Registry.ClassesRoot; //搜索到註冊表根目錄下的XXX文件夾。 RegistryK ...
  • 用acme.sh自動部署功能變數名稱證書 安裝ACME 目前使用量最大的免費SSL證書就是Let’s Encrypt,自2018-03開始,Let’s Encrypt官方發佈上線了免費的SSL泛功能變數名稱證書,目前通過DNS方式獲取比較快,國內可以通過鵝雲的DNSPod功能變數名稱API或者貓雲功能變數名稱API自動簽發Let’ ...
  • 經常看到有群友調侃“為什麼搞Java的總在學習JVM調優?那是因為Java爛!我們.NET就不需要搞這些!”真的是這樣嗎?今天我就用一個案例來分析一下。 昨天,一位學生問了我一個問題:他建了一個預設的ASP.NET Core Web API的項目,也就是那個WeatherForecast的預設項目模 ...
  • 1、環境搭建 1.1 依賴 <!-- nacos註冊中心 註解 @EnableDiscoveryClient --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba- ...
  • ULID:Universally Unique Lexicographically Sortable Identifier(通用唯一詞典分類標識符) UUID:Universally Unique Identifier(通用唯一標識符) 為什麼不選擇UUID UUID 目前有 5 個版本: 版本1: ...
  • 虛基類/抽象類 抽象類:有純虛函數的類 虛繼承 通過修飾繼承方式, 如代碼2是虛繼承,被虛繼承的類稱為虛基類 虛繼承派生類的記憶體佈局方式 先是vbptr => 派生類的數據 =>基類的數據 , 對比代碼1和代碼2,發現原本基類數據在前面,派生類數據在後面,但是在虛繼承的時候 基類數據方式放到了後面, ...
  • 下麵給出 Kafka 一些重要概念,讓大家對 Kafka 有個整體的認識和感知,後面還會詳細的解析每一個概念的作用以及更深入的原理 • Producer:消息生產者,向 Kafka Broker 發消息的客戶端。 • Consumer:消息消費者,從 Kafka Broker 取消息的客戶端。 • ...
  • 前面介紹了對稱加密演算法,本文將介紹密碼學中另一類重要應用:消息摘要(Digest),什麼是消息摘要?簡單的定義是:對一份數據,進行一個單向的Hash函數,生成一個固定長度的Hash值,這個值就是這份數據的摘要,也稱為指紋。 ...
  • 弟弟最近要考試,臨時抱佛腳在網上找了一堆學習資料複習,這不剛就來找我了,說PDF上有水印,影響閱讀效果,到時候考不好就怪資料不行,氣的我差點當場想把他揍一頓! 算了,弟弟長大了,看在打不過他的份上,就不打他了~ 稍加思索,我想起了Python不是可以去水印?說搞就搞! 去除水印原理 去除方法: 用 ...
  • 作者:陳昌浩 1 導讀 if…else…在代碼中經常使用,聽說可以通過Java 8的Function介面來消滅if…else…!Function介面是什麼?如果通過Function介面介面消滅if…else…呢?讓我們一起來探索一下吧。 2 Function介面 Function介面就是一個有且僅有 ...