第一週博客要求linux
描述計算機的組成及其功能
按系列羅列Linux的發行版本,並描述不一樣發行版之間的聯繫與區別
描述Linux的哲學思想,並按照本身的理解對其進行解釋性描述
說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff 、reboot、hwclock、date命令的使用,並配合相應的示例來闡述
如何在Linux系統上獲取命令的幫助信息,請詳細列出,並描述man文檔的章節是如何劃分的
請羅列Linux發行版的基礎目錄名稱命令法則及功用規定
描述計算機的組成及其功能shell
計算機的組成:小程序
計算機由硬件加軟件組成;軟件由系統軟件和應用軟件組成;硬件包括運算器、控制器、存儲器、輸入輸出設備;緩存
計算機各部級的功能安全
運算器和控制器,即咱們常見的CPU。運算器的功能是對數據進行各類算術運算和邏輯運算,即對數據進行加工處理。是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工做及內存與外設的訪問等。bash
存儲器的做用是存儲數據,分爲內存和外存。通俗的講,內存即RAM,外存是咱們常見的硬盤、U盤、光盤等。內存掉電後信息丟失,外存存儲的信息掉電後不丟失。由於硬盤的運行速度遠低於CPU,因此將內存做爲硬盤與CPU之間的一個緩衝區。服務器
輸入輸出設備:做爲人機交互接口,包括鍵盤、鼠標、顯示器、打印機等設備網絡
按系列羅列Linux的發行版本,並描述不一樣發行版之間的聯繫與區別less
發行版本查詢連接
REDHAT:包括了服務器版的RHEL、社區版的CentOS以及Fedora等dom
SLS:其中最出名的是S.U.S.E
Debian:包括Debian和Ubuntu等。Debian是社區類Linux的典範,也最遵循GNU規範。
描述Linux的哲學思想,並按照本身的理解對其進行解釋性描述
Linux的哲學思想:
一切皆文件; 這裏的文件不只僅是咱們一般所指的文件,在linux和unix中它表明的更爲寬泛。目錄、字符設備、塊設備、 套接字、進程、線程、管道等都被視爲是一個「文件」
由目的單一的小程序組成;組合小程序完成複雜任務; 好比bash腳本,就是使用多個外部的命令來實現某個複雜的功能
儘可能避免捕獲用戶接口;
配置文件保存爲純文本格式;
說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff 、reboot、hwclock、date命令的使用,並配合相應的示例來闡述
命令的使用格式
Linux的命令使用格式通常是 ~]#COMMAND [Option] [Argment]
COMMAND:指的是一條Linux命令
Option指的是這個命令的先項,用於調整命令的做用或者功能
Argment指的是參數,通常是指命令的做用對象
例如: 下面的命令ls指的是linux的一條命令, -l 是ls的選項,用於修正命令的顯示結果,用長格式來顯示; /etc/init.d是參數,指這個命令將做用於/etc/init.d這個目錄
~]# ls -l /etc/init.d
命令詳解
ifconfig: 配置網絡接口、顯示接口相關信息;經常使用於配置和顯示接口的IP
ifconfig
參數:
-a: 顯示全部接口的信息,包括未啓用的接口
-up: 啓用某個接口
-down: 關閉某個接口
[root@localhost ~]# ifconfig eth0 192.168.99.20 netmask 255.255.255.0
[root@localhost ~]# route add default gw 192.168.99.254
[root@localhost ~]# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.99.20 netmask 255.255.255.0 broadcast 192.168.99.255
inet6 fe80::b107:482e:27bd:7123 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:63:5a:04 txqueuelen 1000 (Ethernet)
RX packets 346323 bytes 25152778 (23.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3547 bytes 559794 (546.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 16 bytes 1748 (1.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 1748 (1.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.99.20 netmask 255.255.255.0 broadcast 192.168.99.255
inet6 fe80::b107:482e:27bd:7123 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:63:5a:04 txqueuelen 1000 (Ethernet)
RX packets 346439 bytes 25165224 (23.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3609 bytes 573382 (559.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 16 bytes 1748 (1.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 1748 (1.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig lo down
[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.99.20 netmask 255.255.255.0 broadcast 192.168.99.255
inet6 fe80::b107:482e:27bd:7123 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:63:5a:04 txqueuelen 1000 (Ethernet)
RX packets 346479 bytes 25169946 (24.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3637 bytes 578510 (564.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig lo up
[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.99.20 netmask 255.255.255.0 broadcast 192.168.99.255
inet6 fe80::b107:482e:27bd:7123 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:63:5a:04 txqueuelen 1000 (Ethernet)
RX packets 346525 bytes 25175586 (24.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3671 bytes 584138 (570.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 16 bytes 1748 (1.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 1748 (1.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
echo:顯示一行文本,用法很是多,常見的是將輸入的信息在屏幕上顯示出來
echo
參數:
-n: 不輸出行尾的換行符
-e: 容許對下面列出的加反斜線轉義的字符進行解釋.
[root@localhost ~]# echo -n "This is line 1"
This is line 1[root@localhost ~]#
[root@localhost ~]# echo "This is line 1"
This is line 1
[root@localhost ~]# echo -e "\033[31m 紅色字 \033[0m"
紅色字
tty: 示鏈接標準輸入的終端的文件名,常使用的有虛擬終端和僞終端。 虛擬終端實際上是附加在物理終端上的,咱們也能夠理解爲虛擬終端就是Console,使用tty表示 僞終端:在圖形界面打開的命令接口,還有遠程登陸過來的終端,使用pts表示
[root@localhost ~]# tty
/dev/pts/1
startx: 啓動圖形界面會話
參數
-w: 強制啓動x會話
export: 爲 shell 變量設定導出屬性,用於定義環境變量,環境變量是指在子shell中還可使用的變量
[root@localhost ~]# export name=liuqing
[root@localhost ~]# echo $name
liuqing
[root@localhost ~]# sh
sh-4.2# echo $name
liuqing
pwd: 顯示當前(工做)目錄的名稱,
[root@localhost ~]# pwd
/root
history: 顯示或操縱歷史列表。
history: history [-c] [-d 偏移量] [n]
或 history -anrw [文件名]
或 history -ps 參數 [參數...]
顯示或操縱歷史列表。
帶行號顯示歷史列表,將每一個被修改的條目加上前綴 `*'。 參數 N 會僅列出最後的 N 個條目。 選項: -c 刪除全部條目從而清空歷史列表。 -d 偏移量 從指定位置刪除歷史列表。 -a 將當前會話的歷史行追加到歷史文件中 -n 從歷史文件中讀取全部未被讀取的行 -r 讀取歷史文件並將內容追加到歷史列表中 中 -w 將當前歷史寫入到歷史文件中 並追加到歷史列表中 -p 對每個 ARG 參數展開歷史並顯示結果 而不存儲到歷史列表中 -s 以單條記錄追加 ARG 到歷史列表中
示例:
[root@localhost ~]# history
不帶參數的history,用於顯示全部的命令歷史
[root@localhost ~]# history -c
[root@localhost ~]# history
1 history
用於清空內存中的命令歷史
[root@localhost ~]# history -r
用於將配置文件中的命令歷史讀入到內存中,這個配置文件在每一個用戶的家目錄下的.bash_history文件中
[root@localhost ~]# echo $HISTFILE
/root/.bash_history
[root@localhost ~]# history -w
用於將內存中的命令歷史寫入到配置文件
[root@localhost ~]# history -w
804 history # 當前的內存中,總共有804條命令歷史記錄,接下來,咱們刪除從第10條開始,後面的700條
[root@localhost ~]# history
...
797 exit
...
使用命令歷史,查看當前的第797條命令歷史爲exit, 如今咱們刪除這個命令歷史,使用history -c 797
[root@localhost ~]# history -d 797 #這條命令的意思是刪除命令歷史中的第797條。
[root@localhost ~]# history
...
797 history
...
關於 -d 偏移量 連續值 ,這條命令測試結果無效。
shutdown: 以一種安全的方式關閉系統,阻止用戶登陸,全部用戶均可以看到關機的提示信息。
參數:
選項 OPTIONS
-t sec 通知 init(8) 在轉換到其它運行級別前,發送警告 (warning) 信號後延時 (sec) 秒數後再發送關閉 (kill) 信號。 -k 並不是真正關機,只向全部人顯示警告信息。 -r 重啓。 -h 停機。 -n [DEPRECATED(不該再使用)] 不調用 init(8) 程序進行關機操做,而由本身進行。不建議用戶使用這種關機方式,它的結果通常也不是你但願的那樣。 -f 重啓時跳過磁盤檢測。 -F 重啓時強制磁盤檢測。 -c 取消運行中的 shutdown 進程。不可能爲此選項指定 time 參數,但你能夠在命令行輸入一條解釋消息來向全部用戶說明。(通常的shut‐ down指令能夠用按「+」號來進行中斷) time 關機時間。 warning-message 發送給全部用戶的消息。 time 參數的格式能夠有不少種。首先,能夠是 hh:mm 格式的絕對時間,其中 hh 指的是小時(一到二位數),mm 指的是分鐘(二位數)。第二種是 +m 格式,其中 m 指的是等待的分鐘數。 now 是 +0 的別名。 若是 shutdown 在調用時使用了延時,它將自動建立一個諮詢 (advisory) 文件 /etc/nologin ,做用是禁止 login(1) 容許新用戶登錄,除非 shutdown 在向 init 發信號前意外停止 (就是說,它被取消或出了什麼問題)。它會在調用 init 改變運行級以前刪除這個文件。 -f 標誌意味着 `快速重啓'。這將建立一個諮詢 (advisory) 文件 /fastboot ,此文件在系統重啓時會被檢測到。啓動腳本 rc 會檢測是否存在這樣的文件,若是有,就不會再運行 fsck(1),由於系統是以正常方式關閉的。這以後,啓動進程會刪除 /fastboot。
示例:
[root@localhost ~]# shutdown -k
Shutdown scheduled for 一 2017-12-04 22:48:28 CST, use 'shutdown -c' to cancel.
[root@localhost ~]#
Broadcast message from root@localhost.localdomain (Mon 2017-12-04 22:47:28 CST):
The system is going down for power-off at Mon 2017-12-04 22:48:28 CST!
^C
[root@localhost ~]#
[root@localhost ~]# shutdown -r
Shutdown scheduled for 一 2017-12-04 22:51:25 CST, use 'shutdown -c' to cancel.
[root@localhost ~]#
Broadcast message from root@localhost.localdomain (Mon 2017-12-04 22:50:25 CST):
The system is going down for reboot at Mon 2017-12-04 22:51:25 CST!
^C
[root@localhost ~]# shutdown -c
Broadcast message from root@localhost.localdomain (Mon 2017-12-04 22:50:35 CST):
The system shutdown has been cancelled at Mon 2017-12-04 22:51:35 CST!
Last login: Mon Dec 4 22:47:24 2017 from 175.9.42.209
[root@localhost ~]# shutdown -h +5
Shutdown scheduled for 二 2017-12-05 14:26:20 CST, use 'shutdown -c' to cancel.
[root@localhost ~]#
Broadcast message from root@localhost.localdomain (Tue 2017-12-05 14:21:21 CST):
The system is going down for power-off at Tue 2017-12-05 14:26:20 CST!
^C
[root@localhost ~]# shutdown -c
Broadcast message from root@localhost.localdomain (Tue 2017-12-05 14:21:26 CST):
The system shutdown has been cancelled at Tue 2017-12-05 14:22:26 CST!
#-t選項,指明瞭shutdown操做的時間,以秒爲單位
[root@localhost ~]# shutdown -h -t 1000
Shutdown scheduled for 二 2017-12-05 15:08:49 CST, use 'shutdown -c' to cancel.
[root@localhost ~]#
Broadcast message from root@localhost.localdomain (Tue 2017-12-05 15:07:49 CST):
The system is going down for power-off at Tue 2017-12-05 15:08:49 CST!
^C
[root@localhost ~]# shutdown -c
Broadcast message from root@localhost.localdomain (Tue 2017-12-05 15:07:53 CST):
The system shutdown has been cancelled at Tue 2017-12-05 15:08:53 CST!
poweroff 、reboot:中止、關機、重啓計算機
選項
--halt Halt the machine, regardless of which one of the three commands is invoked. -p, --poweroff Power-off the machine, regardless of which one of the three commands is invoked. --reboot Reboot the machine, regardless of which one of the three commands is invoked. -f, --force Force immediate halt, power-off, reboot. Do not contact the init system.
hwclock: query or set the hardware clock (RTC) 查詢或者設置硬件時鐘
[root@localhost ~]# file /usr/sbin/clock
/usr/sbin/clock: symbolic link to `hwclock'
hwclock:顯示硬件時鐘
hwclock -s hctosys 以硬件時鐘爲準,將系統時鐘設置成硬件時鐘一致
hwclock -w systohc 以系統時鐘爲準,把硬件時鐘設置爲和系統時鐘一致。
date:顯示和設置日期、時間
格式 FORMAT 控制着輸出格式. 僅當選項指定爲全球時間時本格式纔有效。 分別解釋以下:
%% 文本的 % %a 當前區域的星期幾的簡寫 (Sun..Sat) %A 當前區域的星期幾的全稱 (不一樣長度) (Sunday..Saturday) %b 當前區域的月份的簡寫 (Jan..Dec) %B 當前區域的月份的全稱(變長) (January..December) %c 當前區域的日期和時間 (Sat Nov 04 12:02:33 EST 1989) %d (月份中的)幾號(用兩位表示) (01..31) %D 日期(按照 月/日期/年 格式顯示) (mm/dd/yy) %e (月份中的)幾號(去零表示) ( 1..31) %h 同 %b %H 小時(按 24 小時制顯示,用兩位表示) (00..23) %I 小時(按 12 小時制顯示,用兩位表示) (01..12) %j (一年中的)第幾天(用三位表示) (001..366) %k 小時(按 24 小時制顯示,去零顯示) ( 0..23) %l 小時(按 12 小時制顯示,去零表示) ( 1..12) %m 月份(用兩位表示) (01..12) %M 分鐘數(用兩位表示) (00..59) %n 換行 %p 當前時間是上午 AM 仍是下午 PM %r 時間,按 12 小時制顯示 (hh:mm:ss [A/P]M) %s 從 1970年1月1日0點0分0秒到如今歷經的秒數 (GNU擴充) %S 秒數(用兩位表示)(00..60) %t 水平方向的 tab 製表符 %T 時間,按 24 小時制顯示(hh:mm:ss) %U (一年中的)第幾個星期,以星期天做爲一週的開始(用兩位表示) (00..53) %V (一年中的)第幾個星期,以星期一做爲一週的開始(用兩位表示) (01..52) %w 用數字表示星期幾 (0..6); 0 表明星期天 %W (一年中的)第幾個星期,以星期一做爲一週的開始(用兩位表示) (00..53) %x 按照 (mm/dd/yy) 格式顯示當前日期 %X 按照 (%H:%M:%S) 格式顯示當前時間 %y 年的後兩位數字 (00..99) %Y 年(用 4 位表示) (1970...) %z 按照 RFC-822 中指定的數字時區顯示(如, -0500) (爲非標準擴充) %Z 時區(例如, EDT (美國東部時區)), 若是不能決定是哪一個時區則爲空 默認狀況下,用 0 填充數據的空缺部分. GNU 的 date 命令能分辨在 `%'和數字指示之間的如下修改. `-' (鏈接號) 不進行填充 `_' (下劃線) 用空格進行填充
[MMDDhhmm[[CC]YY][.ss]]
表示方法爲 月月日日時時分分[[分分]年年年年][秒秒]
總覽 date [選項]... [+格式] date [選項] [MMDDhhmm[[CC]YY][.ss]]
[root@localhost ~]# date
2017年 11月 26日 星期日 11:51:00 CST
顯示日期 [root@localhost ~]# date
2017年 11月 26日 星期日 11:51:00 CST
調整當前日期爲2015年1月1日0點0分0秒
[root@localhost ~]# date 010100002015.00
2015年 01月 01日 星期四 00:00:00 CST
顯示日期格式爲今天是今年的第多少天
[root@localhost etc]# date +%j
320
只顯示年
[root@localhost etc]# date +%y
17
[root@localhost etc]# date +%Y
2017
只顯示月
[root@localhost etc]# date +%b
11月
[root@localhost etc]# date +%B
十一月
只顯示年月日
[root@localhost etc]# date +%Y年%b%e日
2017年11月16日
顯示當前時間,不顯示年月日
[root@localhost etc]# date +%H時%M分
12時16分
說明: shutdown其實是調用init 0, init 0會cleanup一些工做而後調用halt或者poweroff。其實主要區別是halt和poweroff,作沒有acpi的系統上,halt只是關閉了os,電源還在工做,你得手動取按一下那個按鈕,而poweroff會發送一個關閉電源的信號給acpi。但在如今的系統上,他們實際上都同樣了
如何在Linux系統上獲取命令的幫助信息,請詳細列出,並描述man文檔的章節是如何劃分的。
獲取幫助
Linux系統上的命令包括內部命令和外部命令兩種,它們獲取幫助的方法各不相同
使用type命令能夠查看命令是內部命令仍是外部命令
示例:
[root@localhost ~]# type cd
cd 是 shell 內嵌
[root@localhost ~]# type ls
ls 是 `ls --color=auto' 的別名
[root@localhost ~]# type pwd
pwd 是 shell 內嵌
[root@localhost ~]# type date
date 已被哈希 (/usr/bin/date)
內部命令獲取幫助 使用help COMANND來獲取命令的幫助
外部命令獲取幫助 使用COMMAND --help來獲取較爲簡明的幫助 使用man COMMAND來獲取命令的手冊
man的使用方法
man分紅8個章節
用戶命令
系統調用
C庫調用
設備文件及特殊文件
文件格式(配置文件格式的說明)
遊戲玩法說明
雜項
管理工具及守護進程
如何知道命令有哪些man章節呢,使用whereis命令。 [root@localhost ~]# whereis passwd passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
man的使用方法同 less命令,能夠分屏查看,而且進行關鍵字查找
使用方法
空格鍵:向文件尾翻一屏,向後翻頁;
b: 向文件首部翻一屏;
trl+d: 向文件尾部翻半頁;
Ctrl+u: 向文件首部翻半屏;
回車鍵:一次向文件尾部翻一行;
k: 向文件首部翻一行;
G:跳轉最後一行
#G:表示跳到指定行#,好比1G,跳轉到第1行
文本搜索:
/keyword:從文件當前首部向文件尾部依次查找;不區分字符大小寫
?keyword::從文件尾部向文件首部依次查找;
n,與查找命令方向相同 N,與查找命令方向相反
請羅列Linux發行版的基礎目錄名稱命令法則及功用規定
*Linux的發行版,都遵循FHS這個協定,即文件系統層級標準。英文爲:Filesystem Hierarchy Standard
維基百科--文件系統層級標準
在FHS中,全部的(包括存儲於不一樣物理/虛擬設備中的)文件和目錄都存在於根目錄 / 下。其中,部分目錄僅當特定系統(如X Window)安裝後纔會存在。
文件系統的常見的子目錄
/lib: -->/usr/lib:基本的共享庫和內核共享模塊(/lib/modeles)
/lib64: -->/usr/lib64, 專用於x86_64系統上的輔助共享庫文件的存放位置
/etc: 配置文件目錄,有三個子目錄須要關注 ,大多數都是純文本文件
/etc/opt: 早期第三方程序安裝到/opt,如今不常使用, /etc/opt專門爲/opt存放配置文件的目錄
/etc/X11: 圖形界面的相關配置文件
/etc/sgml:
/home: 用戶的家目錄,普通用戶的家目錄
/root: 管理員的家目錄, 必定不要使用管理員登陸操做。
/media: 掛載便攜式媒體文件,如U盤
cdrom
usb
/mnt: 掛載臨時文件系統
/dev: 設備文件目錄,
b: block device: 支持隨機訪問
c: character device: 線性訪問
/opt: 安裝第三方應用程序的位置,早期
/tmp 臨時文件,全部用戶都擁有讀寫權限
/usr: /usr is shareable read-only data 全局共享、只讀數據 universal 一般獨立分區
額外其餘命令程序,用戶用到的只讀資源文件
bin: 保證系統擁有完整功能而提供的應用程序
sbin:
lib:
lib64:
配置文件,依舊在/etc目錄下
include: 描述庫文件的調用,C程序的頭文件存放位置,以.h結尾
share: 結構化獨立的數據,例如doc, man等
local: 第三方應用程序的安裝位置,如今的應用程序通常都安裝到此處。
bin sbin lib lib64 etc share
/var: 一般獨立分區,可變數據文件,存放常常發生變化的數據文件
cache: 應用程序緩存數據目錄
lib: 可變狀態信息
/proc: 基於內存的虛擬文件系統, 內核和進程信息的虛擬文件系統,多爲內核參數;內核輸出的信息,給予用戶來查看例如 net.ipv4.ip_forward,虛擬爲net/ipv4/ip_forward,存儲在/proc/sys目錄下,所以其完整路徑爲/proc/sys/net/ipv4/ip_forward/sys: sysfs虛擬文件系統提供了一種比proc更爲理想的訪問內核數據的途徑,與/proc相似,主要用來管理設備,如調整硬盤參數等。用於掛載sysfs文件系統,其主要做用是爲管理linux設備提供了一種統一模型的接口。/run:注: 本文部份內容來源於網絡及馬哥筆記。