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 22:15
下一篇 2016-09-17 23:51

相關推薦

  • Homework Week-12 LAMP部署

    1、請描述一次完整的http請求處理過程;     http全稱超文本傳輸協議,屬于應用層協議;常見客戶端應用是各種瀏覽器。     一次服務器端完整http請求處理過程:     (1)建立或處理連接:接收請求或拒絕請求;     (2)接收請求:接收來自于…

    Linux干貨 2016-12-05
  • 文件系統管理_設定文件系統的配額

    認識配置配額系統 :為控制用戶使用的空間的大小,在linux可以實現對分區的大小控制,控制用戶在這個分區內使用空間的大小同時還可以對用戶的文件個數實現控制。 在linux系統中其遵循文件分區來實現控制 磁盤的配額只針對單個分區來實現控制,不能對單塊磁盤(硬盤)來實現控制的 【搭建試驗環境 1】 怎樣把某一個文件夾(/home)單獨放到(遷移)一個獨立的分區中…

    Linux干貨 2017-04-24
  • shell腳本編程之數組

    bash僅支持一維數組,類型聲明: declare -i    : 表示數值 declare -a  :表示普通數組(默認,可不用聲明類型) declare -A :表示關聯數組(必須聲明類型,bash需4.0以上版本才支持,可通過bash –version查看版本) 一、普通數組(用數字為下標) 1.1數組賦值(修…

    Linux干貨 2015-08-24
  • 小巧精悍——常見文本處理工具用法及技巧總結

    小巧精悍——常見文本處理工具用法及技巧總結 Linux最重要的哲學思想就是:一切皆文件。可見文件及文件操作在Linux當中是多么的重要。在Linux系統中我們也會經常用到各種文本文件處理的操作,熟練使用這些小巧精悍的文本處理工具,在關鍵時刻往往展現非凡的神奇功效。常見文本處理小工具:cat、hexdump、nl、less、head、tail、cut、tr、r…

    Linux干貨 2016-11-05
  • 發送mail的幾種方法

    mail,顧名思義就是郵件。在這兩天上課中,接觸了發送mail的一些用法,課下自己在網上又查詢補充了一下,總結出來,增加印像。 為了顯示清晰,首先我們分別使用兩個用戶在不同的終端下登錄,一個超級管理員root,一個是剛剛創建的用戶zhangsan,看下圖: 首先先來看一下發送mail用到什么選項:  -s<郵件主題>:指定郵件的主題; …

    2017-07-20

評論列表(1條)

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

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

欧美性久久久久