馬哥教育網絡20期+第一周練習博客

一、計算機的組成及其功能

        眾所周知,現代計算機設備是由五大部分組成,分別為:運算器、控制器、存儲器、輸入設備、輸出設備,也就是現實生活中可以直觀看到的CPU、內存、硬盤、主板、鼠標、鍵盤、顯示器等設備。那么,這五大部分與現實生活中看到的硬件設備是怎樣的對應關系呢?下面我會一一說明。

 
CPU:中央處理器(Central Processing Unit),是一塊超大規模的集成電路,包括了運算單元、控制單元與寄存器,運算單元主要是指算術邏
     輯運算單元,控制單元也就是CPU指令,指令又分為特權指令與普通指令兩種,寄存器怎是用來保存指令執行過程中臨時需要存放的數據。運
     算器、控制器、寄存器三者共同構成了CPU。 
內存:Memory,是一個編制存儲設備,是CPU能直接尋址的存儲空間,是由一些電路板、芯片、金手指組成,用于暫時存放CPU中的運算數據以及與
     硬盤等外部存儲設備進行數據交換,在計算機運行過程中,CPU會把需要運算的數據存儲到內存中,運算時直接從內存中進行調用數據,運算
     完成后,再把結果輸出到內存當中。 
硬盤:計算機的主要存儲媒介之一,用來保存計算機運行所需要的程序。當今,硬盤基本分為兩大類:機械硬盤(HDD)與固態硬盤(SDD),HDD
     采用磁性碟片的方式來存儲數據,SDD則采用閃存顆粒來存儲數據。 
主板:MainBoard,主要用于將CPU、內存、硬盤、外設等設備進行連接。主板上最重要的構成組件是芯片組,芯片組通常是由南橋和北橋組成,北
     橋芯片提供對CPU的類型和主頻、內存的類型和最大容量、PCI/AGP/ISA插槽等支持,南橋芯片則是提供對鍵盤控制、時鐘控制、總線控制等
     支持。 
鼠標、鍵盤:輸入設備 
顯示器:輸出設備

二、Linux各個發行版之間的聯系與區別

Linux發行版主要有slackware、debian、redhat、ArchLinux、Gentoo等。
        
slackware:主流發行版為S.u.S.E,基于S.u.S.E的二次發行版則是openS.u.S.E 
debian:主流發行版為ubuntu,基于ubuntu的二次發行版為mint 
redhat:主流發行版為RHEL(RedHat Enterprise Linux),CentOS則是RHEL的克隆版,并且完全免費試用,但RHEL不提供任何的技術支持;Fedora
    則是RHEL的實驗版本,每次更新都會合入新的功能,測試成功的功能則會合入到RHEL的版本中 
ArchLinux:是一個輕量簡潔的發行版 
Gentoo:據說是一款非高手不可玩的自由操作系統

三、Linux哲學思想

一切皆文件
由眾多單一目的的小程序組成,組合小程序來完成復雜的任務
盡量避免跟用戶交互
使用純文本文件保存配置信息

四、命令使用格式以及常用命令介紹

COMMAND [OPTIONS...] [ARGUMENTS...]    
    選項:用于啟用或關閉命令的某個或某些功能;
        短選項:-c, 例如:-l, -h
            多個短選項可命令使用,例如-l -h, 可寫作-lh;
        長選項:--word,例如:--long, --human-readable
    參數:命令的作用對象

詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用

ifconfig:configure a network interface(配置內核固有的網絡接口)

命令格式:

ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address …

如果ifconfig沒有給定參數,那么則會顯示當前系統當中活動的網絡接口的狀態,例如

[root@localhost ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.2.99  netmask 255.255.255.0  broadcast 192.168.2.255
    inet6 fe80::20c:29ff:fe59:590b  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:59:59:0b  txqueuelen 1000  (Ethernet)
    RX packets 45596  bytes 20196166 (19.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 20734  bytes 3212158 (3.0 MiB)
    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 0  (Local Loopback)
    RX packets 16  bytes 1224 (1.1 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 16  bytes 1224 (1.1 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果給定的參數是一個接口,那么就會顯示這個接口的狀態

[root@localhost ~]# ifconfig eno16777736
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.2.99  netmask 255.255.255.0  broadcast 192.168.2.255
    inet6 fe80::20c:29ff:fe59:590b  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:59:59:0b  txqueuelen 1000  (Ethernet)
    RX packets 45596  bytes 20196166 (19.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 20734  bytes 3212158 (3.0 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果給定-a選項,則會顯示內核當中所有的網絡接口信息,包括down掉的網絡接口,例如:              

[root@localhost ~]# ifconfig -a
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.2.99  netmask 255.255.255.0  broadcast 192.168.2.255
    inet6 fe80::20c:29ff:fe59:590b  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:59:59:0b  txqueuelen 1000  (Ethernet)
    RX packets 45717  bytes 20207023 (19.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 20798  bytes 3219966 (3.0 MiB)
    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 0  (Local Loopback)
    RX packets 16  bytes 1224 (1.1 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 16  bytes 1224 (1.1 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
    ether 52:54:00:f7:9e:82  txqueuelen 0  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500
    ether 52:54:00:f7:9e:82  txqueuelen 500  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果給定-s選項,則會以簡短的信息顯示內核當中活動的網絡接口信息,例如:

[root@localhost ~]# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eno16777  1500    45758      0      0 0         20828      0      0      0 BMRU
    lo       65536       16      0      0 0            16      0      0      0 LRU
    virbr0    1500        0      0      0 0             0      0      0      0 BMU

使用up、down選項則會將指定的網絡接口打開或關閉,例如:

[root@localhost ~]# ifconfig lo down
[root@localhost ~]# ifconfig lo up

echo:Echo the STRING(s) to standard output.(將字符串輸出到標準輸出) 

命令格式:

echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION

使用-n選項,則是在尾部繼續輸出,不啟用新的行,例如:

[root@localhost ~]# echo -n /etc/issue
/etc/issue[root@localhost ~]#

使用-e選項,則允許使用反斜杠轉義

使用-E選項,則不允許使用反斜杠轉義(默認值)

在-e選項生效的情況下,可以使用反斜杠進行轉義,來達到要實現的目的,例如:

\\  backslash  對反斜杠進行轉義
\b  backspace  退格
\n  new line 新的一樣
\r  carriage return 回車
\t   horizontal tab 水平制表符
\v  vertical tab 垂直制表符                
[root@localhost ~]# echo -e '\\abc\babc\n\raaa\tabc\vabc'
\ababc
aaa     abc
           abc

tty:print the file name of the terminal connected to standard input.(打印來自標準輸入終端的文件名)

命令格式:

tty [OPTION]...

不給定任何參數,則直接輸出當前終端的文件名稱,例如:

[root@localhost ~]# tty
/dev/pts/2

-s選項,不打印任何東西,僅返回推出狀態,例如:

[root@localhost ~]# tty -s
[root@localhost ~]# echo $?
0

startx:initialize an X session(初始化一個圖形界面的會話)

命令格式:

startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]

舉例:

[root@localhost ~]# startx -- --depth 16

export:set the export attribute for variables(設置屬性變量)

命令格式:

export name[=word]...
export -p

顯示當前屬性變量:

[root@localhost ~]# export -p 
[root@localhost ~]# export

設置環境變量:

[root@localhost ~]# export PATH=/local/bin:$PATH

pwd:print name of current/working diretory(打印當前或工作目錄的名稱)

命令格式:

pwd [OPTION]... 
-L,--logical,使用PWD環境,即使包含符號鏈接
-P,--physical,避免所有的符號鏈接

history:管理歷史命令

命令格式:

history [OPTION]...

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

[root@localhost ~]# history -a

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

[root@localhost ~]# history -d

-c: 清空命令歷史;

[root@localhost ~]# history -c

快捷操作:

!#:調用歷史命令中的第#條命令
!string:調用歷史中最近一個以string開頭的命令
!!:上一條命令

shutdown:halt,power-off or reboot the machine(停止、關閉電源、重啟機器)

命令格式:

shutdown [OPTIONS...] [TIME] [WALL...]

-H,–halt:停止機器

[root@localhost ~]# shutdown -H

-P,–poweroff:關閉機器的電源

[root@localhost ~]# shutdown -P

-r,–reboot:重啟機器

[root@localhost ~]# shutdown -r

-h:等同于poweroff,除非–halt被指定

[root@localhost ~]# shutdown -h

-k:不進行停止、關閉電源、重啟的操作,只是發送這些消息

[root@localhost jobs]# shutdown -k
Shutdown scheduled for Sun 2016-06-19 20:14:19 CST, use 'shutdown -c' to cancel.
[root@localhost jobs]# 
Broadcast message from root@localhost.localdomain (Sun 2016-06-19 20:13:19 CST):
The system is going down for power-off at Sun 2016-06-19 20:14:19 CST!

poweroff:halt,power-off or reboot the machine(停止、關閉電源、重啟機器)

命令格式:

halt [OPTIONS...]
poweroff [OPTIONS...]
reboot [OPTIONS...]

–halt:停止機器,不管是調用三個命令中的哪一個

[root@localhost jobs]#poweroff --halt

-P,poweroff:關閉機器的電源,不管是調用三個命令中的哪一個

[root@localhost jobs]#poweroff -P

–reboot:重啟機器,不管是調用三個命令中的哪一個

[root@localhost jobs]#poweroff --reboot

reboot:與poweroff用法基本一樣,此處不再贅述

hwclock:query or set the hardware clock(查詢或者設置硬件時間)

命令格式:

hwclock [function] [option...]

-s,–hctosys:將硬件時間設置為系統時間

[root@localhost jobs]# hwclock -s

-w,–systohc:將系統時間設置為硬件時間

[root@localhost jobs]# hwclock -s

date:print or set the system date and time(打印或者設置系統日期和時間)

命令格式:

date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

FORMAT: 格式符號

%D
%F
%T

date [MMDDhhmm[[CC]YY][.ss]]:設置

MM: 月分
DD:幾號
hh: 小時
mm: 分鐘
YY: 兩位年份
CCYY: 四位年份
.ss: 秒鐘

五、獲取命令幫助     

內部命令

help  COMMAND

外部命令

獲取命令位置

which、whereis

獲取幫助:

1、COMMAND –help

COMMAND -h

2、使用手冊manual

man COMMAND

手冊頁位于/usr/share/man目錄下,分為man1、man2、……man8

man1:用戶命令
man2:系統調用
man3:C庫調用
man4:設備文件及特殊文件
man5:配置文件格式
man6:游戲
man7:雜項
man8:管理類命令

注意:有些幫助文檔不止存在于一個章節中,查看指定的章節

man  #  COMMAND

man命令的配置文件:/etc/man.conf,指明新的手冊文件搜索位置 MANPATH  /PATH/TO/SOMEWHERE

man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索COMMAND命令的手冊也并顯示   

幫助手冊的段落說明:

MANE:名稱
SYNOPSIS:摘要
  []:可選內容
  <>: 必選內容
  a|b:二選一
  ...: 同一內容可出現多次
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:例子
AUTHOR:作者
REPORTING BUGS:提交BUGS
SEE ALSO:參考其他

man命令的操作方法:

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:翻至文件尾部

文件搜索:

/KEYWORD:以KEYWORD指定的字符串為關鍵字,從當前位置向文件尾部搜索;不區分字符大小寫;
n: 下一個
N:上一個                        
?KEYWORD:  以KEYWORD指定的字符串為關鍵字,從當前位置向文件首部搜索;不區分字符大小寫;
n: 跟搜索命令同方向,下一個
N:跟搜索命令反方向,上一個

3、信息頁

info COMMAND

4、程序自身的幫助文檔

README、INSTALL、ChangLog

5、程序官方文檔

Documentation

6、發行版的官方文檔

7、Google

六、Linux發行版的基礎目錄名稱命名法則以及功用規定 

/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader、grub)都存放于此目錄
/bin:供所有用戶使用的基本命令,不能關聯至獨立分區,OS啟動即會用到的程序
/sbin:管理類的基本命令,不能關聯至獨立分區,OS啟動即會用到的程序
/lib:基本共享庫文件,以及內核模塊文件(/lib/modules)
/lib64:專用于x86_64系統上的輔助共享庫文件存放位置
/etc:配置文件目錄(純文本文件)
/home/USERNAME:普通用戶家目錄
/root:管理員的家目錄
/media:便攜式移動設備掛載點 cdrom usb
/mnt:臨時文件系統掛載點
/dev:設備文件及特殊文件存儲位置
   b:block device,隨機訪問
   c:character device,線性訪問
/opt:第三方應用程序的安裝位置
/srv:系統上運行的服務用到的數據
/tmp:臨時文件存儲位置
/usr:universal shared,read-only data
    /bin:保證系統擁有完整功能而提供的應用程序
    /sbin:管理類的基本命令
    /lib:基本共享庫文件
    /lib64:專用于x86_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:用于輸出內核與進程信息相關的虛擬文件系統
/sys:用于輸出當前系統上硬件設備相關信息的虛擬文件系統
/selinux:security enhanced Linux,selinux相關的安全策略等信息的存儲位置

原創文章,作者:Anaconda,如若轉載,請注明出處:http://www.www58058.com/16849

(0)
AnacondaAnaconda
上一篇 2016-06-23
下一篇 2016-06-23

相關推薦

  • 磁盤管理之文件系統

    一,概述 文件系統是操作系統用于明確存儲設備或分區上的文件的方 法和數據結構;即在存儲設備上組織文件的方法。操作系統 中負責管理和存儲文件信息的軟件結構稱為文件管理系統, 簡稱文件系統。  從系統角度來看,文件系統是對文件存儲設備的空間進行組 織和分配,負責文件存儲并對存入的文件進行保護和檢索的 系統。具體地說,它負責為用戶建立文件,存入、讀出、修…

    Linux干貨 2016-09-05
  • sed命令用法詳解

    1.sed運行原理         sed(stream editor)是一個行處理器。處理時,把當前處理的行放到“模式空間中”,處理完畢后,把該行輸出到屏幕,接著處理下一行;這樣不斷重復,直到末行;此時文件本身內容并沒有改變 2.sed用途    …

    Linux干貨 2016-08-15
  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who user1    tty1         2016-12-27&nb…

    Linux干貨 2016-12-28
  • ansible實踐

    本偏文章以上圖拓撲部署 首先準備了6臺為centos7的主機(確保selinux和iptables不會成阻礙!關閉他們) 我們先來安裝ansible吧! 配置EPEL源過后使用 yum -y install ansible  ?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?出師不利啊,安裝ansible就失敗了。?。。。。。?看了一下…

    Linux干貨 2017-01-27
  • Java中的CopyOnWrite容器

    Copy-On-Write簡稱COW,是一種用于程序設計中的優化策略。其基本思路是,從一開始大家都在共享同一個內容,當某個人想要修改這個內容的時候,才會真正把內容Copy出去形成一個新的內容然后再改,這是一種延時懶惰策略。從JDK1.5開始Java并發包里提供了兩個使用CopyOnWrite機制實現的并發容器,它們是CopyOnWriteArrayList和…

    Linux干貨 2016-08-15
  • 網卡別名與多網卡綁定

    網卡別名 一塊網卡可以配置多個ip地址,叫做網卡別名   對虛擬主機有用 格式形如:eth0:1  eth0:2 …… 實現方法:   在命令行中臨時設置: ifconfig 命令: ifconfig eth0:0 192.168.1.100/24 演示:   修改配置文件 在/etc/sysconfig/networ…

    Linux干貨 2016-09-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-23 11:30

    寫的太棒了,而且還有案例做輔助說明,非常好!

欧美性久久久久