1. 程式人生 > >Linux的學習之旅

Linux的學習之旅

Linux這路

Linux的文件系統層級結構標準FHS

技術分享圖片

  • /etc=====和主機相關的系統配置文件 edit the configure
  • /home===== 用戶家目錄
  • /usr======二層分層的目錄。默認是最大的。
  • /dev=====設備文件
  • /media======掛載點和可移動的設備,
  • /mnt=====臨時掛載點
  • /var=======可變化的數據,
  • /lib=====基本共享庫和內核模塊
  • /lib64======
  • /boot======靜態文件,啟動加載器,引導計算機的相關文件
  • /root=====root用戶的家目錄
  • /bin/binary======基本二進制命令工具
  • /sbin=====基本系統二進制命令工具
  • /opt======第三方軟件包
  • /tmp======臨時文件
  • /srv======被你的系統服務提供的數據存放在這
  • /run======7在/下,6在/var下 是系統運行中的一些數據
  • /sys=====存放硬件相關信息
  • /proc======= 存放 的是進程信息,對應的是內存數據。內存中的壯態信息。是一個虛擬內存。

Centos7和Centos6的一級目錄的區別

centos 7:/run
centos 6:/var/run /lost-found /misc /net /selinux
lost-found=======在6裏面,只要是分區下都有這個目錄
有點像收容所,比如說系統運行過程中,忽然斷電,有些文件因為斷電的原因導致它無法識別原來是在哪個目錄下,找不著了,不知道自己在哪了。就會回到這個目錄

/misc /net=======在7上要裝軟件包,並不是沒有。
systemctl start autofs======只是臨時啟動,手工啟動
systemctl enable autofs======開機時自動啟動
/misc下的cd目錄也可以掛光盤。
/selinux========在7上沒有這個目錄而已,但功能有


Linux哲學思想

  • 一切皆文件
  • 小型單一用途的程序
  • 組合小程序完成復雜任務
  • 盡量避免捕獲用戶接口
  • 配置文件保存成純文本格式

終端Terminal

  • 物理終端:系統出故障,單用戶壯態, 物理控制臺console表示為/dev/console
  • 偽終端:用CRT連,Xshell。 /dev/pts/#
  • 虛擬終端:一個主機模擬多個終端。默認是1-6. /dev/tty#
  • 串行終端:通過串行線連接自己的電腦。(像思科華為連在自己的上機上) /dev/ttyS#
  • ……

終端相關命令

tty:顯示當前的終端
Whoami命令
whoami: 顯示當前登錄有效用戶
who: 系統當前所有的登錄會話
w: 系統當前所有的登錄會話及所做的操作


命令幫助

Whatis  顯示命令的簡短描述
        使用數據庫
        剛安裝後不可立即使用
        makewhatis | mandb制作數據庫
        whatis cal 或 man -f cal
如果剛裝好系統和剛運行,敲whatis這個命令是不會顯示的。要依賴數據庫

whatis cmd=======告訴你這個命令是幹什麽的
數字後帶P的和開發相關,運維不用管
whatis要顯示命令的簡單說明要依賴數據庫

內部命令:help COMMAND
man bash
外部命令:
(1) COMMAND --help
COMMAND -h
(2) 使用手冊(manual)
man COMMAND
(3) 信息頁
info COMMAND
(4) 程序自身的幫助文檔
README
INSTALL
ChangeLog
(5) 程序官方文檔
官方站點:Documentation
(6) 發行版的官方文檔
(7) Google

示例

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
  • { } 表示分組

man命令

man命令幫助的文件手冊頁放在/usr/share/man
幾乎每個命令都有man的“頁面”
man頁面分組為不同的”章節“統稱為Linux手冊
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
man -M/PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手冊頁並顯示
中文man需安裝包man-pages-zh-CN

whereis cmd=======查出命令所在的路徑以及man幫助相關文檔的路徑(是在man的配置文件裏查看)
查出的文檔是壓縮的文件,不能直接打開。用man命令打開時,自動幫你解壓縮以文檔的形式展現出來。
為什麽一敲man就能把幫助打開呢???實際上它打開的是對應的man幫助文檔。從一個路徑裏去搜。
這有一個潛在的問題:將來我們自己手工去裝一個三方軟件,結果把man幫助放在了自己編寫的一個目錄下,man幫助就打不開了,自己需要手工的添加一條路徑到man的配置文件裏去。

man幫助一般查外部命令
外部命令它是磁盤上的一個文件
安裝這個外部命令的時候,還會自動安裝一些man幫助的文檔
當我們man外部命令的時候,是從文檔裏列出的信息。

man章節

1:用戶命令
2:系統調用
3:C庫調用
4:設備文件及特殊文件
5:配置文件格式
6:遊戲
7:雜項
8:管理類命令
9:Linux內核API

幫助手冊中的段落說明:

NAME 名稱及簡要說明
SYNOPSIS 用法格式說明]
[] 可選內容
<> 必選內容
a | b二選一
{ }分組
...同一內容可出現多次
DESCRIPTION 詳細說明
OPTIONS 選項說明
EXAMPLES 示例
FILES 相關文件
AUTHOR 作者
COPYRIGHT版本信息
REPORTING BUGS bug信息
SEE ALSO 其它幫助參考

man 幫助
查看man手冊頁 man [章節] keyword
列出所有幫助 man -a keyword
搜索man手冊 man -k keyword 列出所有匹配的頁面
使用whatis數據庫
相當於whatis man -f keyword
打印man幫助文件的路徑 man –w [章節] keyword

man幫助 /string向下搜索 ?string向上搜索 n同向 N反向
info幫助 n下p上 u向上移一層


命令的歷史

命令歷史文件保存你輸入的命令歷史。可以用它來重復執行命令
登錄shell時,會讀取命令歷史文件中記錄下的命令~/.bash_history
登錄進shell後新執行的命令只會記錄在緩存中;這些命令會用戶退出時“追加”至命令歷史文件中

重復前一個命令有4種方法
!! Ctrl+p !! !-1

語法格式
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]

  • -c 清內存,
  • -d n 清除第n個命令
  • n 顯示最近n條歷史
  • -a 追加本次 會話新執行的命令到歷史文件
  • -r 歷史文件附加到歷史列表,是累加,
  • -w 保存歷史列表到指定歷史文件中
  • -n 歷史文件未讀的行 讀到時歷史列表中
  • -p cmd 內存不記,後面的命令加上單引號命令才執行
  • -s cmd 可以做假

命令歷史的$環境變量

HISTSIZE:命令歷史記錄的條數
HISTFILE:指定歷史文件,默認為~/.bash_history
HISTFILESIZE:命令歷史文件記錄歷史的條數HISTTIMEFORMAT=“%F %T “ 顯示時間
*HISTIGNORE=“str1:str2:…“** 忽略str1命令,str2開頭的歷史
控制命令歷史的記錄方式:

環境變量:HISTCONTROL
ignoredups默認,忽略重復的命令,連續且相同為“重復”
ignorespace忽略所有以空白開頭的命令
ignoreboth相當於ignoredups, ignorespace的組合
erasedups刪除重復命令
export 變量名=“值”
存放在/etc/profile或~/.bash_profile

Linux的學習之旅