學習Linux基礎個人總結,為了方便以后查找,加深印象

第一章和第二章內容

第一章課程筆記

  • OS: Operating System,通用目的的軟件程序

硬件驅動

進程管理

內存管理

網絡管理

安全管理

文件管理

2、OS分類:

服務器OS:RHEL, CentOS,Windows Server,AIX

桌面OS:Windows 10,Windows 7,Mac OS,Fedora

移動設備OS:Andriod,IOS,YunOS

3、開發接口標準

uABI: Application Binary Interface

ABI描述了應用程序與OS之間的底層接口,允許編譯好的目標代碼在使用兼容ABI

的系統中無需改動就能運行

uAPI:Application Programming Interface

API定義了源代碼和庫之間的接口,因此同樣的源代碼可以在支持這個API的任

何系統中編譯

uPOSIX: Portable Operating System Interface

IEEE在操作系統上定義的一系列API標準

POSIX兼容的程序可在其它POSIX操作系統編譯執行

u運行程序格式:

Windows: EXE, .dll(dynamic link library),.lib

Linux: ELF, .so(shared object), .a

4、用戶空間、User space..

用戶程序的運行空間。為了安全,它們是隔離的,即使用戶的程序崩潰,內核也不受影響

只能執行簡單的運算,不能直接調用系統資源,必須通過系統接口( system call),才能

向內核發出指令

內核空間、Kernel space

是 Linux 內核的運行空間

可以執行任意命令,調用系統的一切資源

u 示例:

str = “www.magedu.com” // 用戶空間

x = x + 100 // 用戶空間

file.write(str) // 切換到內核空間

y = x + 200 // 切換回用戶空間

u 第一行和第二行都是簡單的賦值運算,在 User space 執行。第三行需要寫入文件,就要切換到Kernel space,因為用戶不能直接寫文件,必須通過內核安排。第四行又是賦值運算,就切換回 User space

  • 編程語言(低級、中級、高級)

u低級語言

機器語言:0和1

匯編語言:和機器語言一一對應,與硬件相關的特有代

碼、驅動程序開發

u中級語言:C

系統級應用、驅動程序

u高級語言:python,go,java,Objective-C,C#,php

應用級程序開發

  • 服務區三大系統:windows、Linux、Unix。

Windows:

uLinux:GNU/Linux

uUnix:1969年Ken Thompson

System: Bell Lab

AIX (IBM)

Solaris (SUN)

HP-UX (HP)

BSD: (BSRG)Berkeley System Distribution

NetBSD

OpenBSD

FreeBSD

  • Uinx歷史

u1965前后 Multics

貝爾實驗室,麻省理工,通用電氣發起

u1969 Unix雛形UNICS

Ken Thompson 匯編語言 B語言

u1973 正式命名為Unix

Dennis Ritchie C語言

u1977 BSD

Berkeley Software Distribution 伯克利大學

u1979 System V架構 版權聲明

HP-UNIX IBM AIX “不對學生提供源碼” 收回版權

u1984年 Minix操作系統

Andrew S. Tanenbaum荷蘭阿姆斯特丹自由大學計算機科學系

  • 兼容分時系統Multics

為了進一步強化大型主機的功能,讓主機的資源可以提供更多的使用者來利用,

在1964年, 由貝爾實驗室(Bell)、麻省理工學院(MIT)及奇異公司(GE美國通用

電氣公司)共同發起了Multics(多路信息計算系統)的計劃, Multics計劃的目

的是讓大型主機可以同時支持300個以上的終端機連線使用。不過,到了1969

年前后,由于計劃進度緩慢,資金也短缺,所以該計劃雖然繼續在研究,但最

終貝爾實驗室還是選擇了退出

9、GNU(GNU is Not Unix)

u1984年由Richard Stallman發起并創建

u目標是編寫大量兼容于Unix系統的自由軟件

u官方網站:http://www.gnu.org

uGPL(GNU General Public License)

u自由軟件基金會:Free Software Foundation

u允許用戶任意復制、傳遞、修改及再發布

u基于自由軟件修改再次發布的軟件,仍需遵守GPL

uLGPL(Lesser General Public License)

uLGPL相對于GPL較為寬松,允許不公開全部源代碼

uGNU操作系統:Hurd Hird of Unix-Replacing Daemons

  • Linux起源。最早叫做FREAX。

1991年的10月5日,Torvalds在comp.os.minix新聞組上發布消息,

正式向外宣布他自行編寫的完全自由免費的內核誕生

(Freeminix-like kernel sources for 386-AT)———FREAX

英文含義是怪誕的、怪物、異想天開

u類Unix的內核,在GPL下發布

u官網:www.kernel.org

uLinux操作系統:

完整的類UNIX操作系統

Linux內核+ GNU工具

如:CentOS,Ubuntu,Android

11、Linux操作系統;完整的unix操作系統。Linux內核+GUN工具。

12、Linux發行版:redhat:CentOS一般微軟用的。國內用的的中標麒麟:中標軟件。REDHAT紅帽公司。

slackware:SUSE Linux Enterprise Server (SLES)

OpenSuse桌面

u debian: ubuntu,mint

u redhat: RHEL: RedHat Enterprise Linux

每18個月發行一個新版本

CentOS:兼容RHEL的格式

中標麒麟:中標軟件

Fedora:每6個月發行一個新版本

u ArchLinux:輕量簡潔

u Gentoo:極致性能,不提供傳統意義的安裝程序

u LFS: Linux From scratch 自制Linux

u Android: kernel+busybox(工具集)+java虛擬機

u Linux分支參考網站:http://futurist.se/gldt/

13、REDHAT紅帽公司

Marc Ewing早在卡內基梅隆大學讀書的時候就戴著他祖父的紅色

曲球帽. Marc在Marc Ewing大學常把自己的軟件命名為Red Hat

— Red hat 1, Red Hat 2 用來區別他人的軟件. 所以當他開始自

己的Linux項目, 自然就會命名為Red Hat Linux。Ewing非常樂于

幫助同學解決計算機問題 “你的朋友可能會說, 去跟我的朋友

Marc交流. 誰是Marc? 他是紅帽男孩. ” 所以, 至少在他們最親密

的朋友當中, 紅帽子成為了技術專家的同義詞

u 1993年,Bob Young 建立了ACC公司,營銷Linux和UNIX的支

持軟件和書籍雜志。

u 1995年,Bob Young 收購了Marc Ewing的業務,合并后的ACC

公司成為新的Red Hat軟件公司,發布了Red Hat Linux 2.0

  • Linux版本:主版本號;次版本號;末版本號;編譯版本號;廠商版本。
  • Linux發型版本

Linux發行版的名稱和版本號是由發行版的維護者決定的

uRedHat Enterprise Linux 7.3

由Red Hat公司發布

uSUSE Linux Enterprise Server 12 SP2

由Novell公司發布

uDebian Linux 9

由Debian維護社區發布

uAndroid 8.0

由Google公司發布

  • 紅帽發行版本 Red Hat Linux版本

Red Hat Linux 1.0 (Mother’s Day) 1994年11月03日Red Hat Distribution

Red Hat Linux 2.0 1995年09月20日

Red Hat Linux 3.0 (Picasso) 1996年05月01日

Red Hat Linux 4.0 (Colgate) 1996年10月08日

Red Hat Linux 5.0 (Hurricane) 1997年12月01日

Red Hat Linux 6.0 (Hedwig) 1999年04月26日

Red Hat Linux 6.2 (Zoot) Red Hat Linux 6.2E 2000年04月03日

Red Hat Linux 7.0 (Guinness) 2000年03月27日

Red Hat Linux 7.2 (Enigma) Red Hat Enterprise Linux 2 2001年10月22日

Red Hat Linux 8.0 (Psyche) 2002年09月30日

Red Hat Linux 9.0 (Shrike) 2003年03月31日

Red Hat Enterprise Linux 3.0(Taroon) Fedora 1 (Yarrow) 2003年10月22日

Red Hat Enterprise Linux 4.0 2005年02月15日

Red Hat Enterprise Linux 5.0(Tikanga) 2007年03月14日

Red Hat Enterprise Linux 6.0(Santiago) 2010年11月10日

Red Hat Enterprise Linux 7.0(Maipo) 2014年06月10日

17、開源Open Source:二進制編譯后的商業的。1,源代碼不公開。2.付費。共享:免費,源代碼不公開。自由 free。免費的。

18、開源協議:開源許可證。GPl等。MIT許可證最寬松的。

?GPLv2, GPLv3, LGPL(lesser) :通用公共許可 copyleft

?Apache: apache

?BSD: bsd

? Mozilla

?Apache

? MIT

  • Linux哲學思想:一切都是一個文件(包括硬件),小型,單一用途的程序。鏈接程序,共同完成復雜的任務。避免令人迷惑的用戶界面。配置數據存儲在文本中。
  • 獲取發行版

CentOS

https://wiki.centos.org/Download

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com

21、線編程。

22、主分區:MBR分區,一個硬盤最多四個主分區,對主機必須有,主區可以格式化ntfs、存數據。

23、拓展分區:一塊硬盤最多一個拓展分區,可以沒有拓展。不可以單獨用,要劃分為若干個邏輯分區。

24、邏輯分區:可以格式化ntfs,存數據。

25、查看ip地址 ifconfig。

26、虛擬機下載,安裝。.vmware.安裝centos6.9和centos7.4

虛擬機:用軟件(如:vmware,virtualbox等)模擬硬件

使用vmware workstation的條件。

uCPU:默認

u內存:1G以上,推薦2G

u硬盤:一塊硬盤,200G

u網卡:橋接或僅主機模式

u光盤:掛載對應版本的ISO文件

27。用戶登錄,root用戶,特殊的管理賬戶,沒有必要時不必登錄root,對系統的傷害能力是無限的。

  • 普通(非特權)用戶;權限有限,造成傷害的能力比較有限。
  • 終端terminal

u 設備終端

鍵盤鼠標顯示器

u 物理終端( /dev/console )

控制臺console

u 虛擬終端(tty:teletypewriters, /dev/tty# #為[1-6])

tty 可有n個,Ctrl+Alt+F[1-6]

u 圖形終端( /dev/tty7 ) startx, xwindows

CentOS 6: Ctrl + Alt + F7

CentOS 7: 在哪個終端啟動,即位于哪個虛擬終端

u 串行終端( /dev/ttyS# )

ttyS

u 偽終端( pty:pseudo-tty , /dev/pts/# )

pty, SSH遠程連接

u 查看當前的終端設備:#tty

30、交互式接口;

交互式接口:啟動終端后,在終端設備附加一個交互式應用程序

uGUI:Graphic User Interface

X protocol, window manager, desktop

Desktop:

GNOME (C, 圖形庫gtk),

KDE (C++,圖形庫qt)

XFCE (輕量級桌面)

uCLI:Command Line Interface

shell程序:sh (bourn 史蒂夫·伯恩) csh tcsh ksh (korn) bash (bourn

again shell)GPL zsh

31、shell。shell是liunux系統的用戶界面,提供用戶與內核進行交互操作的接口,接收輸入的命令送到內核中執行。shell也被稱為linux的命令編譯器。是一種高級程序設計語言。

32、bash shell.目前是linux標準的shell,與sh兼容。centos默認使用。

33、查看系統當前使用的所有shell ?cat/etc/shells

顯示當前shell。echo${shell}

uCentOS默認使用

u顯示當前使用的shell

echo ${SHELL}

u顯示當前系統使用的所有shell

cat /etc/shells

34命令提示符:#管理員。。$普通用戶.

u 命令提示符:prompt

[root@localhost ~]#

# 管理員 $ 普通用戶

u 顯示提示符格式

[root@localhost ~]#echo $PS1

u 修改提示符格式

PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]”

\e \033 \u 當前用戶

\h 主機名簡稱 \H 主機名

\w 當前工作目錄 \W 當前工作目錄基名

\t 24小時時間格式 \T 12小時時間格式

\! 命令歷史數 \# 開機后命令歷史數

35、修改字體顏色。cat.bash_profile PS1=”\[\e[1;33m\][\u@\h \W]\\$\[\e[0m\]”

36、執行命令。分為外部和內部命令。 ?查看命令分類type COMMAND

u輸入命令后回車

提請shell程序找到鍵入命令所對應的可執行程序或代碼,并由其分析后提交給

內核分配資源將其運行起來

u在shell中可執行的命令有兩類

內部命令:由shell自帶的,而且通過某命令形式提供

help 內部命令列表

enable cmd 啟用內部命令

enable –n cmd 禁用內部命令

enable –n 查看所有禁用的內部命令

外部命令:在文件系統路徑下有對應的可執行程序文件

查看路徑:which -a |–skip-alias ; whereis

u區別指定的命令是內部或外部命令

type COMMAND

37、執行外部命令

uHash緩存表

系統初始hash表為空,當外部命令執行時,默認會從PATH路徑下尋找該命

令,找到后會將這條命令的路徑記錄到hash表中,當再次使用該命令時,shell解

釋器首先會查看hash表,存在將執行之,如果不存在,將會去PATH路徑下尋找。

利用hash緩存表可大大提高命令的調用速率

uhash常見用法

hash 顯示hash緩存

hash –l 顯示hash緩存,可作為輸入使用

hash –p path name 將命令全路徑path起別名為name

hash –t name 打印緩存中name的路徑

hash –d name 清除name緩存

hash –r 清除緩存

38、命令別名

u顯示當前shell進程所有可用的命令別名

alias

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

alias NAME=’VALUE’

u在命令行中定義的別名,僅對當前shell進程有效

u如果想永久有效,要定義在配置文件中

僅對當前用戶:~/.bashrc

對所有用戶有效:/etc/bashrc

39、命令別名

u編輯配置給出的新配置不會立即生效

ubash進程重新讀取配置文件

source /path/to/config_file

. /path/to/config_file

u撤消別名:unalias

unalias [-a] name [name …]

-a 取消所有別名

u如果別名同原命令同名,如果要執行原命令,可使用

\ALIASNAME

“ALIASNAME”

’ALIASNAME’

command ALIASNAME

/path/commmand

40、命令格式

uCOMMAND [OPTIONS…] [ARGUMENTS…]

選項:用于啟用或關閉命令的某個或某些功能

短選項:-c 例如:-l, -h

長選項:–word 例如:–all, –human-readable

參數:命令的作用對象,比如文件名,用戶名等

u注意:

?多個選項以及多參數和命令之間使用空白字符分隔

?取消和結束命令執行:Ctrl+c,Ctrl+d

?多個命令可以用;符號分開

?一個命令可以用\分成多行、

41、取消和結束命令 ctrl+c,,ctrl+d。

42、一個命令可以用\分成多行。多個命令可以用;隔開。

43、生產環境和測試環境。利用命令符改變。

44、nano。文件夾。字符工具

45、外部命令為一個獨立的文件。內部命令集成在shell里面。

46、type cd。判斷。

47、查找外部命令。echo $PATH.

48、whereis,位置。

49、date、內核時間。clock硬件時間。clock -w。同步系統時間。

50、月日時間年,秒。clock-s。

51、修改centos7網卡名稱。gedit/boot/grub2/grub.cfg。

52、ntpdate對方服務器地址。。與服務器同步。

53、vim/etc/ntp/cryto/pw。保證與服務器地址日期同步。start。

54、cal。日歷。

55、screen。建立遠程協助,一個主機,兩個終端。

56、日期和時間

uLinux的兩種時鐘

系統時鐘:由Linux內核通過CPU的工作頻率進行的

硬件時鐘:主板

u相關命令

date 顯示和設置系統時間

date +%s

date -d @1509536033

hwclock,clock: 顯示硬件時鐘

-s, –hctosys 以硬件時鐘為準,校正系統時鐘

-w, –systohc 以系統時鐘為準,校正硬件時鐘

u時區:/etc/localtime

u顯示日歷:cal –y

  • 簡單命令使用

簡單命令

u關機:halt, poweroff

u重啟:reboot

-f: 強制,不調用shutdown

-p: 切斷電源

u關機或重啟:shutdown

shutdown [OPTION]… TIME [MESSAGE]

-r: reboot

-h: halt

-c:cancel

TIME:無指定,默認相當于 +1

now: 立刻,相當于+0

+m: 相對時間表示法,幾分鐘之后;例如 +3

hh:mm: 絕對時間表示,指明具體時間

簡單命令

u用戶登錄信息查看命令:

whoami: 顯示當前登錄有效用戶

who: 系統當前所有的登錄會話

w: 系統當前所有的登錄會話及所做的操作

unano 文本編輯

  • 簡單命令u screen命令:創建新screen會話screen –S [SESSION]加入screen會話screen –x [SESSION]退出并關閉screen會話exit剝離當前screen會話Ctrl+a,d顯示所有已經打開的screen會screen -ls恢復某screen會話screen-r
  • 使用screen命令之前必須先安裝軟件。Rpm -ivh 文件路徑
  • echo命令使用。echo “$VAR_NAME”變量會替換,弱引用。

uecho命令

u功能:顯示字符

u語法:echo [-neE][字符串]

u說明:echo會將輸入的字符串送往標準輸出。輸出的字符串間以空白字

符隔開, 并在最后加上換行號

u選項:

? -E (默認)不支持 \ 解釋功能

? -n 不自動換行

? -e 啟用 \ 字符的解釋功能

u顯示變量

echo “$VAR_NAME“ 變量會替換,弱引用

echo ‘$VAR_NAME‘ 變量不會替換,強引用

61、ibase/十進制。obase二進制。

62、u啟用命令選項-e,若字符串中出現以下字符,則特別加以處理,而不

會將它當成一般文字輸出

\a 發出警告聲

\b 退格鍵

\c 最后不加上換行符號

\n 換行且光標移至行首

\r 回車,即光標移至行首,但不換行

\t 插入tab

\\ 插入\字符

\0nnn 插入nnn(八進制)所代表的ASCII字符

echo -e ‘\033[43;31;5mmagedu\033[0m’

\xHH插入HH(十六進制)所代表的ASCII字

63、命令行擴展、被括起來的集合

u命令行擴展:$( ) 或 “

把一個命令的輸出打印給另一個命令的參數

echo “This system’s name is $(hostname) ”

This system’s name is server1.example.com

echo “i am `whoami` ”

i am root

u括號擴展:{ }

打印重復字符串的簡化形式

echo file{1,3,5}

file1 file3 file5

rm -f file{1,3,5}

echo {1..10}

echo {a..z}

echo {000..20..2}

  • 命令補全 tab。

u命令補全

內部命令:

外部命令:bash根據PATH環境變量定義的路徑,自左而右在每個路徑搜尋

以給定命令名命名的文件,第一次找到的命令即為要執行的命令

用戶給定的字符串只有一條惟一對應的命令,直接補全

否則,再次Tab會給出列表

u路徑補全

把用戶給出的字符串當做路徑開頭,并在其指定上級目錄下搜索以指定的字符

串開頭的文件名

如果惟一:則直接補全

否則:再次Tab給出列表

65、命令行歷史

u保存你輸入的命令歷史??梢杂盟鼇碇貜蛨绦忻?/p>

u登錄shell時,會讀取命令歷史文件中記錄下的命令~/.bash_history

u登錄進shell后新執行的命令只會記錄在緩存中;這些命令會用戶退出時“追加”

至命令歷史文件中

重復前一個命令,有4種方法

? 重復前一個命令使用上方向鍵,并回車執行

? 按 !! 并回車執行

? 輸入 !-1 并回車執行

? 按 Ctrl+p 并回車執行

u!:0 執行前一條命令(去除參數)

u!n 執行history命令輸出對應序號n的命令

u!-n 執行history歷史中倒數第n個命令

使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令

uctrl-r來在命令歷史中搜索命令

  • (reverse-i-search)`’:

uCtrl+g:從歷史搜索模式退出

u要重新調用前一個命令中最后一個參數:

? !$ 表示

? Esc, .(點擊Esc鍵后松開,然后點擊 . 鍵)

? Alt+ .(按住Alt鍵的同時點擊 . 鍵)

66、命令history

uhistory [-c] [-d offset] [n]

uhistory -anrw [filename]

uhistory -ps arg [arg…]

-c: 清空命令歷史

-d offset: 刪除歷史中指定的第offset個命令

n: 顯示最近的n條歷史

-a: 追加本次會話新執行的命令歷史列表至歷史文件

-r: 讀歷史文件附加到歷史列表

-w: 保存歷史列表到指定的歷史文件

-n: 讀歷史文件中未讀過的行到歷史列表

-p: 展開歷史參數成多行,但不存在歷史列表中

-s: 展開歷史參數成一行,附加在歷史列表后

  • 獲得幫助。

獲得幫助

u獲取幫助的能力決定了技術的能力!

u多層次的幫助

whatis

command –help

man and info

/usr/share/doc/

Red Hat documentation

其它網站和搜索

68、whatis

u顯示命令的簡短描述

u使用數據庫

u剛安裝后不可立即使用

umakewhatis | mandb制作數據庫

u使用示例:

whatis cal 或 man –f cal

  • 查看man ?help 幫助等。

命令幫助

u內部命令:help COMMAND

man bash

u外部命令:(1) COMMAND –help

COMMAND -h

(2) 使用手冊(manual)

man COMMAND

(3) 信息頁

info COMMAND

(4) 程序自身的幫助文檔

README

INSTALL

ChangeLog

(5) 程序官方文檔

官方站點:Documentation

(6) 發行版官方文檔

(7) Google

70、–help選項u顯示用法總結和參數列表u使用的大多數,但并非所有u示例: date –help

Usage: date [OPTION]… [+FORMAT] or: date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]][] 表示可選項CAPS或 <> 表示變化的數據… 表示一個列表x |y| z 的意思是“ x 或 y 或 z “-abc的 意思是-a -b –c{ } 表示

71、man命令

u提供命令幫助的文件

u手冊頁存放在/usr/share/man

u幾乎每個命令都有man的“頁面”

uman頁面分組為不同的“章節”

u統稱為Linux手冊

uman命令的配置文件:/etc/man.config | man_db.conf

MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置

uman -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手冊頁

并顯示

u中文man需安裝包man-pages-zh-CN

72、man 章節

u1: 用戶命令

u2: 系統調用

u3: C庫調用

u4: 設備文件及特殊文件

u5: 配置文件格式

u6: 游戲

u7: 雜項

u8: 管理類的命令

u9:Linux 內核API

73、man 幫助段落說明

u 幫助手冊中的段落說明:

? NAME 名稱及簡要說明

? SYNOPSIS 用法格式說明

  • [] 可選內容
  • <> 必選內容
  • a|b 二選一
  • { } 分組
  • … 同一內容可出現多次

? DESCRIPTION 詳細說明

? OPTIONS 選項說明

? EXAMPLES 示例

? FILES 相關文件

? AUTHOR 作者

? COPYRIGHT 版本信息

? REPORTING BUGS bug信息

? SEE ALSO 其它幫助參考

man幫助

u 查看man手冊頁

man [章節] keyword

u 列出所有幫助

man –a keyword

u 搜索man手冊

man -k keyword 列出所有匹配的頁面

使用 whatis 數據庫

u 相當于whatis

man –f keyword

u 打印man幫助文件的路徑

man –w [章節] keyword

man命令

uman命令的操作方法:使用less命令實現

space, ^v, ^f, ^F: 向文件尾翻屏

b, ^b: 向文件首部翻屏

d, ^d: 向文件尾部翻半屏

u, ^u: 向文件首部翻半屏

RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行 y or ^Y or ^P or k

or ^K:向文件首部翻一行

q: 退出

#:跳轉至第#行

1G: 回到文件首部

G:翻至文件尾部

man搜索

u/KEYWORD:

以KEYWORD指定的字符串為關鍵字,從當前位置向文件尾部搜索;不區

分字符大小寫;

n: 下一個

N:上一個

u?KEYWORD:

以KEYWORD指定的字符串為關鍵字,從當前位置向文件首部搜索;不區分字

符大小寫;

n: 跟搜索命令同方向,下一個

N:跟搜索命令反方向,上一個

info

uman常用于命令參考 ,GNU工具info適合通用文檔參考。

u沒有參數,列出所有的頁面

uinfo 頁面的結構就像一個網站

u每一頁分為“節點”

u鏈接節點之前 *

uinfo [ 命令 ]

導航info頁

u方向鍵,PgUp,PgDn 導航

uTab鍵 移動到下一個鏈接

ud 顯示主題目錄

uHome 顯示主題首部

uEnter進入 選定鏈接

un/p/u/l 進入下/前/上一層/最后一個鏈接

us 文字 文本搜索

uq 退出 info

通過本地文檔獲取幫助

uSystem->help(centos6)

uApplications -> documentation->help(centos7)

提供的官方使用指南和發行注記

u/usr/share/doc目錄

?多數安裝了的軟件包的子目錄,包括了這些軟件的相關原理說明

?常見文檔:README INSTALL CHANGES

?不適合其它地方的文檔的位置

配置文件范例

HTML/PDF/PS 格式的文檔

授權書詳情

通過在線文檔獲取幫助

u第三方應用官方文檔

?http://www.nginx.org

?http://tomcat.apache.org

?http://httpd.apache.org

?http://www.python.org

u通過發行版官方的文檔光盤或網站可以獲得

?安裝指南、部署指南、虛擬化指南等

?紅帽知識庫和官方在線文檔

http://kbase.redhat.com

http://www.redhat.com/docs

http://access.redhat.com

紅帽全球技術支持服務

urhn.redhat.com或者本地衛星服務器/代理服務器

?基于網絡管理的服務器

?RHN代理服務器為RHN流量提供緩存

?RHN衛星服務器提供自主的RHN

uRHN賬戶

?為及其注冊和基于網絡管理的RHN用戶

?用于系統自動驗證的系統ID

usosreport

收集所有系統上的日志信息的工具,并自動打成壓縮包,方便技術支持

人員和紅帽全球支持提供分析問題依據

網站和搜索

uhttp://tldp.org

uhttp://www.slideshare.net

uhttp://www.google.com

Openstack filetype:pdf

rhca site:redhat.com/docs

74、touch file。創建文件。echo{1,2,3,}

75、date+%F。

76、touch ?date

77、history。歷史

78、rpm安裝軟件。

79、ntpdate。同步時間。timedatecal status.

80、whatis幫助、man help.

81、w查看登陸的用戶。free-h查看磁盤大小。lsblk查看文件分區。

82、ll /文件軟連接。

83、外部命令–help。

84、內部命令help–

85、man命令,系統命令。

86、 man -a所有的。whatis數據庫的內容。man[章節號]關鍵字。

87、info幫助鏈接形式。

88、help man info.查看幫助的。

第二章課程筆記。

 

1、文件系統與目錄

 

2、文件系統

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

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

u 根文件系統(rootfs):root filesystem

u 文件名稱區分大小寫

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

u 路徑分隔的 /

u 文件有兩類數據:

元數據:metadata

數據:data

u 文件系統分層結構:LSB Linux Standard Base

u FHS: (Filesystem Hierarchy Standard)

http://www.pathname.com/fhs/

3、文件名規則

u文件名最長255個字節

u包括路徑在內文件名稱最長4095個字節

u藍色–>目錄 綠色–>可執行文件 紅色–>壓縮文件 淺藍色–>鏈接文

件 灰色–>其他文件

u除了斜杠和NUL,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用,

有些字符需要用引號來引用它們。

u標準Linux文件系統(如ext4),文件名稱大小寫敏感。例如:

MAIL, Mail, mail, mAiL

4、 文件系統結構

u/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader,

grub)都存放于此目錄

u/bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的

程序

u/sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序

u/lib:啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)

u/lib64:專用于x86_64系統上的輔助共享庫文件存放位置

u/etc:配置文件目錄

u/home/USERNAME:普通用戶家目錄

u/root:管理員的家目錄

u/media:便攜式移動設備掛載點

  • 文件系統結構

u/mnt:臨時文件系統掛載點

u/dev:設備文件及特殊文件存儲位置

b: block device,隨機訪問

c: character device,線性訪問

u/opt:第三方應用程序的安裝位置

u/srv:系統上運行的服務用到的數據

u/tmp:臨時文件存儲位置

6、文件系統結構

/usr: universal shared, read-only data

bin: 保證系統擁有完整功能而提供的應用程序

sbin:

lib:32位使用

lib64:只存在64位系統

include: C程序的頭文件(header files)

share:結構化獨立的數據,例如doc, man等

local:第三方應用程序的安裝位置

bin, sbin, lib, lib64, etc, share

  • 文件系統結構

/var: variable data files

cache: 應用程序緩存數據目錄

lib: 應用程序狀態信息數據

local:專用于為/usr/local下的應用程序存儲可變數據;

lock: 鎖文件

log: 日志目錄及文件

opt: 專用于為/opt下的應用程序存儲可變數據;

run: 運行中的進程相關數據,通常用于存儲進程pid文件

spool: 應用程序數據池

tmp: 保存系統兩次重啟之間產生的臨時數據

  • 文件系統結構

/proc: 用于輸出內核與進程信息相關的虛擬文件系統

u/sys:用于輸出當前系統上硬件設備相關信息虛擬文件系統

u/selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位

  • Linux上的應用程序的組成部分

二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

u庫文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

u配置文件:/etc, /etc/DIRECTORY, /usr/local/etc

u幫助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man,

/usr/local/share/doc

10、Linux下的文件類型

u-:普通文件

ud: 目錄文件

ub: 塊設備

uc: 字符設備

ul: 符號鏈接文件

up: 管道文件pipe

us: 套接字文件socket

  • 淺藍色為軟連接,紅色為壓縮,綠色為執行文件。黃色為管道文件。sock為網絡文件。藍色目錄,灰色為其它文件。
  • CentOS 7目錄變化

/bin 和 /usr/bin

u/sbin 和 /usr/sbin

u/lib 和/usr/lib

u/lib64 和 /usr/lib64

  • 顯示當前工作目錄

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

uCWD:current work directory

u顯示當前shell CWD的絕對路徑

pwd: printing working directory

-P 顯示真實物理路徑

-L 顯示鏈接路徑(默認)

pwd-p真實的物理路徑。絕對路徑很詳細,以斜線開頭的,相對路徑是相對于當前文件的目錄。。不是以斜線開頭。

  • 上級目錄用..來表示。.表示當前目錄。
  • 絕對和相對路徑

絕對路徑

以正斜杠開始

完整的文件的位置路徑

可用于任何想指定一個文件名的時候

u相對路徑名

不以斜線開始

指定相對于當前工作目錄或某目錄的位置

可以作為一個簡短的形式指定一個文件名

u基名:basename

u目錄名:dirname

16、basename把文件取出來,基名。。dirname 只要文件目錄不要文件。目錄名。

17、寫程序一般情況下要用相對路徑。

18、更改目錄

cd 改變目錄

使用絕對或相對路徑:

cd /home/wang/

cd home/wang

切換至父目錄: cd ..

切換至當前用戶主目錄: cd

切換至以前的工作目錄: cd –

u選項:-P

u相關的環境變量:

PWD:當前目錄路徑

OLDPWD:上一次目錄路徑

  • 列出目錄內容

列出當前目錄的內容或指定目錄

u用法:ls [options] [files_or_dirs]

u示例:

ls -a 包含隱藏文件

ls -l 顯示額外的信息

ls -R 目錄遞歸通過

ls -ld 目錄和符號鏈接信息

ls -1 文件分行顯示

ls –S 按從大到小排序

ls –t 按mtime排序

ls –u 配合-t選項,顯示并按atime從新到舊排序

ls –U 按目錄存放順序顯示

ls –X 按文件后綴排序

  • 查看文件狀態u

statu文件:metadata, datau三個時間戳: access time:訪問時間,atime,讀取文件內容 modify time: 修改時間, mtime,改變文件內容(數據) change time: 改變時間, ctime,元數據發生

1)文件時間stat:讀時間 atime、修改時間 mtime、改變時間時間 ctime。stat file三個時間全部讀取。

21、文件通配符:* 匹配零個或多個字符

?? 匹配任何單個字符

?~ 當前用戶家目錄

?~mage 用戶mage家目錄

?~+ 當前工作目錄

?~- 前一個工作目錄

?[0-9] 匹配數字范圍

?[a-z]:字母

?[A-Z]:字母 ???(小寫字母,大寫字母)

?[wang] 匹配列表中的任何的一個字符

?[^wang] 匹配列表中的所有字符以外的字符

22、小寫【lower】,大寫【upper】。

23、預定義的字符類:man 7 glob

[:digit:]:任意數字,相當于0-9

[:lower:]:任意小寫字母

[:upper:]: 任意大寫字母

[:alpha:]: 任意大小寫字母

[:alnum:]:任意數字或字母

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:標點符號

[:print:]:可打印字符

[:cntrl:]:控制(非打?。┳址?/p>

[:graph:]:圖形字符

[:xdigit:]:十六進制字符

  • 創建空文件和刷新時間

touch命令:

touch [OPTION]… FILE…

-a 僅改變 atime和ctime

-m 僅改變 mtime和ctime

-t [[CC]YY]MMDDhhmm[.ss]

指定atime和mtime的時間戳

-c 如果文件不存在,則不予創建

  • touch文件。創建文件。cp復制文件,可以復制多個文件。mv移動文件、改名。-i,交互式。-f強制。rm刪除。r遞歸意思。\原始。(rm-f刪除).bashrc
  • 復制文件和目錄cp

cp [OPTION]… [-T] SOURCE DEST

ucp [OPTION]… SOURCE… DIRECTORY

ucp [OPTION]… -t DIRECTORY SOURCE…

ucp SRC DEST

SRC是文件:

如果目標不存在:新建DEST,并將SRC中內容填充至DEST中

如果目標存在:

如果DEST是文件:將SRC中的內容覆蓋至DEST中

基于安全,建議為cp命令使用-i選項

如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填

充至新文件中

  • 復制文件和目錄cp

cp SRC… DEST

SRC…:多個文件

DEST必須存在,且為目錄,其它情形均會出錯;

ucp SRC DEST

SRC是目錄:此時使用選項:-r

如果DEST不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST中;

如果DEST存在:

如果DEST是文件:報錯

如果DEST是目錄:

 

  • cp常用選項

-i:覆蓋前提示 –n:不覆蓋,注意兩者順序

u-r, -R: 遞歸復制目錄及內部的所有內容

u-a: 歸檔,相當于-dR –preserv=all

u-d:–no-dereference –preserv=links 不復制原文件,只復制鏈接名

u–preserv[=ATTR_LIST]

mode: 權限

ownership: 屬主屬組

timestamp:

links

xattr

context

All

28、cp 選項

u-p: 等同–preserv=mode,ownership,timestamp

u-v: –verbose

u-f: –force

u-u:–update 只復制源比目標更新文件或目標不存在的文件

u–backup=numbered 目標存在,覆蓋前先備份加數字后綴

29、移動和重命名文件

umv [OPTION]… [-T] SOURCE DEST

umv [OPTION]… SOURCE… DIRECTORY

umv [OPTION]… -t DIRECTORY SOURCE…

常用選項:

-i: 交互式

-f: 強制

30、刪除urm [OPTION]… FILE…u常用選項:-i: 交互式-f: 強制刪除-r: 遞歸 –no-preserve-root

u示例:rm -rf

30、目錄操作

utree 顯示目錄樹

-d: 只顯示目錄

-L level:指定顯示的層級數目

-P pattern: 只顯示由指定pattern匹配到的路徑

umkdir 創建目錄

-p: 存在于不報錯,且可自動創建所需的各目錄

-v: 顯示詳細信息

-m MODE: 創建目錄時直接指定權限

urmdir 刪除空目錄

-p: 遞歸刪除父空目錄

-v: 顯示詳細信息

urm -r 遞歸刪除目錄樹

用tree命令之前先安裝,,,rpm -ivh 路徑。

31、mkdir -p。創建文件夾。rmdir刪除。只是刪除空文件夾。

32、指針塊。磁盤。4k*12..12個直接指針,二級間接指針,三級間接。

33、索引節點

u inode(index node)表中包含文件系統所有文件列表

u一個節點 (索引節點)是在一個表項,包含有關文件的信息( 元數據 ),包

括:

文件類型,權限,UID,GID

鏈接數(指向這個文件名路徑名稱個數)

該文件的大小和不同的時間戳

指向磁盤上文件的數據塊指針

有關文件的其他數據

inode table.a,inode nunmber的值。

  • 分區。不同節點的各不相同inode。
  • 目錄

文件引用一個是 inode號

u人是通過文件名來引用一個文件

u一個目錄是目錄下的文件名和文件inode號之間的映射

36、cp和inode

u在 CP的 命令:

分配一個空閑的inode號,在inode表中生成新條目

在目錄中創建一個目錄項,將名稱與inode編號關聯

拷貝數據生成新的文件

  • rm和inode

urm 命令:

鏈接數遞減,從而釋放的inode號可以被重用

把數據塊放在空閑列表中

刪除目錄項

數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋

  • mv和inode

如果mv命令的目標和源在相同的文件系統,作為mv 命令

用新的文件名創建對應新的目錄項

刪除舊目錄條目對應的舊的文件名

不影響inode表(除時間戳)或磁盤上的數據位置:沒有數據被移動!

u如果目標和源在一個不同的文件系統, mv相當于cp和rm

39、vim.bash。

40、一個分區中的個數,顯示內存不足,實際上不夠得是因為節點編號不對(用完了)。

41、>刪除形式。rm刪除只是刪除名字而已。

42、df-i.查看節點編號。

43、link硬鏈接。不能跨設備不能跨分區。Ln

創建硬鏈接會增加額外的記錄項以引用文件

u對應于同一文件系統上一個物理文件

u每個目錄引用相同的inode號

u創建時鏈接數遞增

u刪除文件時:

?rm命令遞減計數的鏈接

?文件要存在,至少有一個鏈接數

?當鏈接數為零時,該文件被刪除

u不能跨越驅動器或分區

u語法:

ln filename [linkname ]

  • ln-s 軟連接。

符號(或軟)鏈接

u一個符號鏈接指向另一個文件

uls – l的 顯示鏈接的名稱和引用的文件

u一個符號鏈接的內容是它引用文件的名稱

u可以對目錄進行

u可以跨分區

u指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減

少目標文件inode的引用計數;

u語法:

ln -s filename [linkname]

45、確定文件內容

u文件可以包含多種類型的數據

u檢查文件的類型,然后確定適當的打開命令或應用程序使用

ufile [options] <filename>…

u常用選項:

-b 列出文件辨識結果時,不顯示文件名稱

-f filelist 列出文件filelist中文件名的文件類型

-F 使用指定分隔符號替換輸出文件名后默認的”:”分隔符

-L 查看對應軟鏈接對應文件的文件類型

–help 顯示命令在線幫助

46、硬鏈接和軟連接區別;

根本區別:

硬鏈接本質是一個文件。

軟連接本質是多個不同文件。

1)跨分區。

2)inode number

3)鏈接數。

4)目錄。

47、file 查看分析文件類型。

48、文件的頭部有獨有的格式。叫做魔術。

49、查看多個文件,利用冒號分隔。

50、標準輸入和輸出

u程序:指令+數據

讀入數據:Input

輸出數據:Output

u打開的文件都有一個fd: file descriptor (文件描述符)

uLinux給程序提供三種I/O設備

?標準輸入(STDIN)-0 默認接受來自鍵盤的輸入

?標準輸出(STDOUT)-1 默認輸出到終端窗口

?標準錯誤(STDERR)-2 默認輸出到終端窗口

uI/O重定向:改變默認位置

51、標準輸入和輸出。stdout標準輸出。默認標準輸出設備,當前窗口。標準輸入、輸出、錯誤。cat既有標準輸入又有輸出。

52、標準輸入0表示,標準輸出1,錯誤2。

53、標準輸出;重定向>。大于號覆蓋。>>追加。set-c禁止覆蓋。set+c繼續覆蓋。>|強制覆蓋。

uSTDOUT和STDERR可以被重定向到文件

命令 操作符號 文件名

支持的操作符號包括:

> 把STDOUT重定向到文件

2> 把STDERR重定向到文件

&> 把所有輸出重定向到文件

u> 文件內容會被覆蓋

set –C 禁止將內容覆蓋已有文件,但可追加

>| file 強制覆蓋

set +C 允許覆蓋

u>> 原有內容基礎上,追加內容

  • 把輸出和錯誤重新定向到文件

2> 覆蓋重定向錯誤輸出數據流

u2>> 追加重定向錯誤輸出數據流

u標準輸出和錯誤輸出各自定向至不同位置

COMMAND > /path/to/file.out 2> /path/to/error.out

u合并標準輸出和錯誤輸出為同一個數據流進行重定向

? &> 覆蓋重定向

? &>> 追加重定向

? COMMAND > /path/to/file.out 2>&1 (順序很重要)

? COMMAND >> /path/to/file.out 2>&1

? ():合并多個程序的STDOUT

( cal 2007 ; cal 2008 ) > all.txt

1)標準錯誤。2>覆蓋。2>>追加重定向。

2)、cal 2019>cal.txt。

3)、分開存放:&>. ???> ????2>&

55、標準輸入;tr <小于號,用文件代替。代替鍵盤輸入而不是改變文件內容。

tr命令

u tr 轉換和刪除字符

u tr [OPTION]… SET1 [SET2]

u 選項:

-c –C –complement:取字符集的補集

-d –delete:刪除所有屬于第一字符集的字符

-s –squeeze-repeats:把連續重復的字符以單獨一個字符表示

-t –truncate-set1:將第一個字符集對應字符轉化為第二字符集對應的字符

u [:alnum:]:字母和數字 [:alpha:]:字母 [:cntrl:]:控制(非打?。┳址?[:digit:]:數字

[:graph:]:圖形字符 [:lower:]:小寫字母 [:print:]:可打印字符 [:punct:]:標點符號

[:space:]:空白字符 [:upper:]:大寫字母 [:xdigit:]:十六進制字符

  • 從文件中導入STDIN

使用<來重定向標準輸入

u某些命令能夠接受從文件中導入的STDIN

tr ‘a-z’ ‘A-Z’< /etc/issue

該命令會把/etc/issue中的小寫字符都轉換成寫寫字符

utr –d abc < /etc/fstab 刪除fstab文件中的所有abc中任意字符

ucat > file

mage

wangxiaochun

按ctrl+d離開,可以使用文件來代替鍵盤的輸入

uCat > filea < fileb

57、cat 多行重定向。<<@,成對的,不是單一,單一不結束。

58、可以多行,發給多人。

59、把多行發送給STDIN

使用“<<終止詞”命令從鍵盤把多行重導向給STDIN

?直到 終止詞 位置的所有文本都發送給STDIN

?有時被稱為就地文本(heretext)

mail -s “Please Call” admin@magedu.com <<END

> Hi Wang,

>

> Please give me a call when you get in. We may need

> to do some maintenance on server1.

>

> Details when you’re on-site

> Zhang

> END

  • 管道

管道(使用符號“|”表示)用來連接命令

命令1 | 命令2 | 命令3 | …

?將命令1的STDOUT發送給命令2的STDIN,命令2的STDOUT發送到命令3的STDIN

?STDERR默認不能通過管道轉發,可利用2>&1 或 |& 實現

?最后一個命令會在當前shell進程的子shell進程中執行用來

?組合多種工具的功能

ls | tr ‘a-z’ ‘A-Z’

  • 管道

uless :一頁一頁地查看輸入

ls -l /etc | less

umail: 通過電子郵件發送輸入

echo “test email” | mail -s “test” user@example.com

ulpr:把輸入發送給打印機

echo “test print” | lpr -P printer_name

62、管道中 – 符號

u示例:

將 /home 里面的文件打包,但打包的數據不是記錄到文件,而是傳送到 stdout,

經過管道后,將 tar -cvf – /home 傳送給后面的 tar -xvf – , 后面的這個 – 則是取

前一個命令的 stdout, 因此,就不需要使用臨時file了

utar -cvf – /home | tar -xvf –

63、重定向到多個目標(tee)

u命令1 | tee [-a ] 文件名 | 命令2

把命令1的STDOUT保存在文件中,做為命令2的輸入

-a 追加

u使用:

?保存不同階段的輸出

?復雜管道的故障排除

?同時查看和記錄輸出

64、管道文件。,命令1|命令2.把前面的輸出作為后面的標準輸入。ls |tr””.管道文件grep。管道前面的命令必須成功。

&>輸出和錯誤全部重定向。

65、tar -xvf解包,tar-cvf打包文件。

66、多行重定向,就地文本。(heretast)

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92513

(0)
604603701@qq.com604603701@qq.com
上一篇 2018-03-17
下一篇 2018-03-17

相關推薦

  • 馬哥教育網絡班21期+第四周博客作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@C67-X64-A0 ~]# cp -a /etc/skel/ /home/tuser1 [root@C67-X64-A0 ~]# ls&nb…

    Linux干貨 2016-07-29
  • 馬哥教育網絡班22期-第2周博客作業1

    1、Linux上的文件管理類命令都有哪些?其常用的使用方法及其相關示例演示。    文件管理類命令:cp、mv、rm 1.1 cp命令    cp – copy files and directories    復制文件或目錄 【SYNOPSIS】    單源復制:c…

    Linux干貨 2016-08-22
  • class 11 壓縮軟件(二)、shell編程(三)和軟件包管理(一)

    一、壓縮軟件(二) tar tar [OPTION]… (1) 創建歸檔     tar -c -f / PATH/TO/SOMEFILE .tar FILE…     tar cf…

    Linux干貨 2016-08-21
  • vsdf

    Linux干貨 2017-10-23
  • 數據庫存儲引擎—InnoDB

    MySQL中的數據用各種不同的技術存儲在文件(或者內存)中。這些技術中的每一種技術都使用不同的存儲機制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。

    Linux干貨 2018-02-22
  • mysql備份與恢復

    1、mysqldump進行mysqll數據庫的備份與還原 命令說明: Schema和數據存儲一起、巨大的SQL語句、單個巨大的備份文件 mysqldump: 客戶端,通過mysql協議連接至mysqld; mysqldump [options] [db_name [tbl_name …]] shell> mysqldump [options] db…

    Linux干貨 2017-03-27
欧美性久久久久