Linux 入門基礎 及一些常見命令(上)

計算機的組成及其各部分的功能


現代計算機的基本結構是由匈牙利-美國科學家馮· 諾依曼于1946年提出的。迄今為止所有進入實用的電子計算機  都是按馮· 諾依曼提出的結構體系和工作原理設計制造的,故又統稱為“馮·諾依曼型計算機".

根據馮.諾依曼原理:計算機由運算器、控制器、存儲器、輸入設備、輸出設備所組成.

運算器: 進行算術與邏輯運算.

控制器:  從內存中依次取出命令,產生控制信號,向其它部件發出指令,指揮整個運算過程.

運算器,控制器,緩存,寄存器組成CPU.

存儲器: 分為內部存儲和外部存儲 .內部存儲包括ROM(只讀)和RAM(隨機); 外部存儲包括硬盤,軟盤,磁帶機,光盤.

輸入設備:鍵盤,鼠標和掃描儀。主要功能:下指令,提供數據等.標準輸入設備(鍵盤)

輸出設備:顯示器,打印機和繪圖儀。主要功能:輸出數據加工的結果.標準輸入設備(顯示器)

 

Linux 主要發行版及各版本的區別與聯系

Linux發行版有數百種之多,這里介紹最主要的幾種:

—Debian, Slackware, RedHat,Gentoo, ArchLinux
Debian: ubuntu,knopix,mint

Debian是社區類Linux的典范,最遵循GNU規范。 特點是界面非常友好,對硬件的支持非常全面,最適合做桌面系統的Linux發行版.

Slackware:S.u.S.E, OpenSUSE

OpenSUSE 最可定制的發行版

RedHat: Fedora ,CentOS

RHEL Red Hat系列:包括RHEL、Fedora Core、CentOS.可以說是國內使用最多的Linux發行版.

穩定性方面RHEL和CentOS的穩定性非常好,適合于服務器使用,但是Fedora Core的穩定性較差,只好用于桌面應用.

Arch Linux 最好的企業級系統;

Gentoo: 是一個基于 Linux 或 FreeBSD 的自由操作系統,它幾乎能為任何應用程序或需求自動地作出優化和定制.
對極限的配置、性能的追求,以及頂尖的用戶和開發者社區,都是 Gentoo 的顯著特點.

聯系:都基于linux 內核

Linux 哲學思想

             1、一切皆文件:
           把幾乎所有資源統統抽象為文件形式;包括硬件設備,甚至通信接口等;
           和操作一般意義上的文件一樣,linux中對文件的操作只需要五個基本的函數:
           open(), read(), write(), close(), delete(), create()
           文件系統的第一級目錄稱為“根目錄”,用 / 表示,所有其他的文件或目錄都包含在其下,
           并且一層一層組織成樹型結構.
    2、 由眾多功能單一的程序組成;一個程序只做一件事,并且做好;
                   組合小程序完成復雜任務;可以通過管道等把各小程序組合起來,完成復雜任務.
    3、 盡量避免跟用戶交互;
          目標:易于以編程的方式實現自動化任務;
    4、使用文本文件保存配置信息(只需要一個簡單的文本編輯器就可以操作整個系統)

Linux系統上命令的使用格式和常見的幾個命令

 命令的語法通用格式:         

# COMMAND OPTIONS ARGUMENTS

    COMMAND:
            發起一命令:請求內核將某個二進制程序運行為一個進程;
                程序 –> 進程
                靜態 –> 動態(有生命周期)

            命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;    
        
  命令分為兩類:
                由shell程序的自帶的命令:內置命令(builtin)
                獨立的可執行程序文件,文件名即命令名:外部命令

              例:  [root@localhost ~]# type cd
                    cd is a shell builtin
                    [root@localhost ~]# type ls
                    ls is aliased to `ls –color=auto'
                    [root@localhost ~]# which ls
                    alias ls='ls –color=auto'
                    /usr/bin/ls

                    [root@localhost ~]# which –skip-alias ls
                    /usr/bin/ls
                –skip-alias 過濾掉別名

 shell程序是獨特的程序,負責解析用戶提供的命令;
                環境變量:
                    PATH:從哪些路徑中查找用戶鍵入的命令字符串所對應的命令文件;
                        ~]# echo $PATH
                        /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

                 查找次序:

                查看命令類型:
                type COMMAND
OPTIONS:
            指定命令的運行特性;
            選項有兩種表現形式:
                短選項:-C, 例如-l, -d
                    注意:有些命令的選項沒有-;
                    如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld
                長選項:–word, 例如–help, –human-readable
                    注意:長選項不能合并;

                注意:有些選項可以帶參數,此稱為選項參數;

        ARGUMENTS:
            命令的作用對象;命令對什么生效;

            注意:不同的命令的參數;有些命令可同時帶多個參數,多個之間以空白字符分隔;

 

ifconfig:  – configure a network interface    配置網絡接口;
1) 查看IP接口信息:

      ~]# ifconfig或ip addr list或ip addr show  (CentOS 7):查看活動接口的ip地址: 

           -a     display all interfaces which are currently available, even if down
                顯示所有接口信息;即使接口處于關閉狀態;   

            例: ~]#ifconfig -a
            -s     display a short list (like netstat -i)
               例:   [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      660      0      0 0           520      0      0      0 BMRU
  lo       65536      392      0      0 0           392      0      0      0 LRU
  virbr0    1500        0      0      0 0             0      0      0      0 BMU

  CentOS 5和 CentOS 6 查看的接口名稱是eth0 ,CentOS 7上表現為eno16777736

  具體查看哪個接口聽信息,例:~]# ifconfig eno16777736

2)修改網卡的IP地址,子網掩碼:(當不指定子網掩碼時,將使用IP地址所在分類的默認子網掩碼)    
      以CentOS 7為例: 

                           ~]# ifconfig eno16777736 192.168.1.50/24 或                                                                                               ifconfig eno16777736  192.168.1.50  netmask  255.255.255.0

  此命令重啟系統后失效,永久生效只能修改配置文件,CentOS 7為例: 完整路徑如下 /etc/sysconfig/network-scripts/ifcfg-eno16777736

3)禁用,激活網絡接口:

       需要臨時禁用或重新激活指定的網絡接口時,需要結合 "down",   "up" 選項。網絡接口被禁用以后,將無法使用該網絡接口與其他主機進行連接。例: 執行以下操作將會禁用網卡eno16777726

     ~]# ifconfig eno16777736 down

4) 為網卡綁定虛擬接口: 

      在對服務器網絡進行測試時,有時需要臨時在同一個網卡上使用一個新的IP地址,但又不能覆蓋原有的IP地址,而導致服務器程序不可用。這時可以為網卡綁定一個虛擬的網絡接口,然后再為虛擬接口設置新的IP地址(相當于一塊網卡配多個IP)

    以CentOS 7 為例:

   ~]# ifconfig eno16777736:0 172.16.16.1

echo:      NAME  (回顯)
       echo – display a line of text
SYNOPSIS
       echo [SHORT-OPTION]… [STRING]…

                   -n: 不進行換行;
                    -e:讓轉義符生效;
                        \n:換行
                        \t:制表符
                        \b: 退格

例: [root@localhost ~]# echo "hello world"
hello world
[root@localhost ~]# echo -n "hello world"
hello world[root@localhost ~]# echo -e "hello \tworld"
hello     world
[root@localhost ~]# echo -e "hello \bworld"
helloworld
[root@localhost ~]# echo -e "hello \nworld"
hello
world

tty:  NAME
       tty – print the file name of the terminal connected to standard input
例:  [root@localhost ~]# tty
/dev/pts/1
[root@localhost ~]# tty -s   (–quiet   print nothing, only return an exit status)

[root@localhost ~]# tty –help
  -s, –silent
      –help    
      –version 

startx:  – initialize an X session

startx命令用來啟動X Window,實際上啟動X Window的程序為xinit.

export: 功能說明:設置或顯示環境變量.

語  法:export [-fnp][變量名稱]=[變量設置值]

補充說明:在shell中執行程序時,shell會提供一組環境變量。export可新增,修改或刪除環境變量,供后續執行的程序使用。export的效力僅及于該此登陸操作。

  1. [root@localhost ~]# !echo
    echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    [root@localhost ~]# export PATH=$PATH:/opt/au1200_rm/build_tools/bin
    [root@localhost ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/au1200_rm/build_tools/bin

    重新打開一個終端登錄:

 Last login: Tue Sep 13 17:59:34 2016
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
可以驗證: export的效力僅及于該此登陸操作

2.#vi /etc/profile

在適當位置添加 PATH=$PATH: /opt/au1200_rm/build_tools/bin(注意:= 即等號兩邊不能有任何空格)
這種方法最好,除非你手動強制修改PATH的值,否則將不會被改變

[root@localhost ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# vim /etc/profile
[root@localhost ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

3.#vi ~/.bash_profile
修改PATH行,把/opt/au1200_rm/build_tools/bin添加進去
這種方法是針對用戶起作用的

注意:第2,3種方法若想改變PATH,必須重新登陸才能生效,以下方法可以簡化工作:
如果修改了/etc/profile,那么編輯結束后執行source profile(source /etc/profile) 或 執行點命令 ./profile,PATH的值就會立即生效了。

個方法的原理就是再執行一次/etc/profile shell腳本,注意如果用sh
/etc/profile是不行的,因為sh是在子shell進程中執行的,即使PATH改變了也不會反應到當前環境中,但是source是在當前
shell進程中執行的,所以我們能看到PATH的改變。

[root@localhost ~]# source /etc/profile
[root@localhost ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/au1200_rm/build_tools/bin

pwd:  NAME  顯示工作目錄

       pwd – print name of current/working directory
     [root@localhost ~]# pwd
       /root

history:命令歷史:

           shell進程會其會話中保存此前用戶提交執行過的命令;
            ~]# history
                定制history的功能,可通過環境變量實現:
                    HISTSIZE:shell進程可保留的命令歷史的條數;
                    HISTFILE:持久保存命令歷史的文件;
                        .bash_history
                    HISTFILESIZE:命令歷史文件的大?。?br />             [root@localhost ~]# history
    1  history
    2  vim .bash_history
         …
   178  history
     [root@localhost ~]# history -c
     [root@localhost ~]# history
       1  history

   清空了歷史命令  

     [root@localhost ~]# echo $HISTSIZE
      1000
     [root@localhost ~]# cat -n .bash_history
         1    history
         2    vim .bash_history
           …

     [root@localhost ~]# history -r
     [root@localhost ~]# history
     1  history
         ….

      實現了從文件讀取命令歷史到歷史列表中

             命令用法:
                history [-c] [-d 偏移量] [n]
                或 history -anrw [文件名]
                或 history -ps 參數 [參數…]

                -c: 清空命令歷史;
                -d offset:刪除指定命令歷史
                -r: 從文件讀取命令歷史至歷史列表中;
                -w:把歷史列表中的命令追加至歷史文件中;
                history #:顯示最近的#條命令;

            調用命令歷史列表中的命令:
                !#:再一次執行歷史列表中的第#條命令;
                !!:再一次執行上一條命令;
                !STRING:再一次執行命令歷史列表中最近一個以STRING開頭的命令;

                    注意:命令的重復執行有時候需要依賴于冪等性;

            調用上一條命令的最后一個參數:
                快捷鍵:ESC, .
                字符串:!$

            控制命令歷史記錄的方式:
                環境變量:HISTCONTROL
                    ignoredups:忽略重復的命令;
                    ignorespace:忽略以空白字符開頭的命令;
                    ignoreboth:以上兩者同時生效;
           [root@localhost ~]# echo $HISTCONTROL
                   ignoredups
          [root@localhost ~]# echo HISTCONROL=ignoreboth
            HISTCONROL=ignoreboth
         [root@localhost ~]# !echo $
          echo HISTCONROL=ignoreboth $
          HISTCONROL=ignoreboth $
       修改變量的值:
                    NAME='VALUE'

shutdown: NAME
       shutdown – Halt, power-off or reboot the machine

SYNOPSIS
       shutdown [OPTIONS…] [TIME] [WALL…]
       -H, –halt
       -P, –poweroff
        -r, –reboot
        -k
            just write wall message.

        –no-wall
           Do not send wall message before halt, power-off, reboot.
       -c
           Cancel a pending shutdown.  打開另一個終端輸入shutdown -c,可取消關機命令

poweroff:  NAME
       halt, poweroff, reboot – Halt, power-off or reboot the machine

reboot:NAME
       halt, poweroff, reboot – Halt, power-off or reboot the machine

shutdown,poweroff,reboot都能實現關機,重啟,定時關機等操作.

關機命令:
            CentOS 7:
                ~]# systemctl poweroff
                ~]# systemctl reboot

            *:
                ~]# poweroff
                ~]# halt
                ~]# reboot

hwclock ,clock:
                    顯示或設定硬件時鐘
                        -s, –hctosys:以硬件為準,把系統調整為與硬件時間相同;
                        -w, –systohc:以系統為準,把硬件時間調整為與系統時鐘相同;                

Linux將時鐘分為系統時鐘(System Clock)和硬件(Real Time Clock,簡稱RTC)時鐘兩種。系統時間是指當前Linux Kernel中的時鐘,而硬件時鐘則是主板上由電池供電的那個主板硬件時鐘,這個時鐘可以在BIO的"Standard BIOS Feture"項中進行設置.                           

  date 命令查看的是系統時鐘,hwclock查看的是硬件時鐘;                  

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

(0)
oranixoranix
上一篇 2016-09-17
下一篇 2016-09-17

相關推薦

  • Haproxy+keepalivd+LAMP

    目錄 一、試驗部署 1、實驗要求 2、實驗準備 3、拓撲結構 4、網絡規劃 二、基礎設置 1、LAMP配置 2、HAProxy配置 3、Keepalived配置 三、測試 四、總結 一、試驗部署 1、實驗要求 (1) 動靜分離部署wordpress,動靜都要能實現負載均衡,要注意會話的問題; (2) 給出設計拓撲,寫成博客; (3)haproxy的設定要求:…

    2017-05-18
  • 磁盤管理(三)邏輯卷快照

      概述:邏輯卷管理(LVM)提供了為任何邏輯卷作一個快照的功能,目的是在一致的狀態下來得到一個文件系統的備份.因為在備份過程中,應用程序可能訪問一個分區的文件或者數據庫.一些文件可能在一個狀態被備份,而后面的文件可能在一個更新后被備份,導致備份的不完整 .傳統的解決方法是以只讀的方式掛載一個分區,對數據庫應用表級鎖或者關閉數據庫的引擎等;所有的措…

    Linux干貨 2016-09-05
  • 磁盤管理

    回顧 {a..f} a b c d e f ]# arr=({a..z}) ]# echo ${#arr[*]} 26 ]# N1=N2 ]# N2=zhuchaoming ]# echo ${!N1} eval N1=\$$N2 echo $N1 創建臨時文件 mktemp NAME.XXX 交互式登錄 /etc/profile –> /…

    Linux干貨 2016-09-07
  • Linux 救援模式初步運用詳解

    Linux救援模式初步運用 背景: 在運用Linux時會出現一些誤操作,導致系統無法正常使用,比如刪除了某個重要依賴庫,或者刪除了rpm等等。在這里記錄下具體的操作步驟,供以后參考。 意義: 學會在使用Linux系統出現誤刪除系統重要文件時,能使用救援模式來恢復系統。 案例詳解: 當我們刪除了Linux系統重要庫文件時,該如何恢復,比如在這里我們刪除/lib…

    2017-07-29
  • I/O重定向及管道

    一、I/O重定向     程序=指定+數據     讀取數據:input     輸出數據:output     打開的文件都有一個fd:文件描述符     l…

    Linux干貨 2016-08-02
  • 基于NFS實現WordPress

    實驗內容: (1)主機IP nfs server IP :192.168.29.120 nfs server IP: 192.168.29.110 (2)要求 nfs server共享/data/web/ 、/data/mysql 兩個目錄 nfs client掛載nfs server共享的/data/web/的文件系統至/var/www/html;部署wo…

    2017-06-13

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-20 14:52

    寫的很好,看得出來很用心,在注意一下排版會更好,加油

欧美性久久久久