Linux運維學習歷程-第三天-初識Linux

初識Linux

本章內容

   初安裝Linus的網絡配置

   防火墻的關閉

   用戶

   終端

   shell

   命令紀要

安裝linux之后,linux默認網卡開機不是自動激活,并且防火墻開啟的,這對初期我們學習linux會產生一定的阻礙,所以我們先要設置一下參數讓我們的linux能對我們更友好一下。

一、網卡設置

若網卡要設置成靜態IP地址

命令如下:首先登錄管理員賬戶(配置系統只有管理員由此權限哦),用vim文本編輯器編輯eno16777736,進入界面按字母a鍵,編輯參數-Esc退出編輯模式按住Shift+:,輸入wq保存并退出

   

wKiom1eXXOKBJ-9BAABp7p-npmg444.jpg

wKioL1eXXOPRjgv-AACJ_oXHTg0497.jpg

wKiom1eXXOPCAw3TAAB0jjCKavs564.gif動態IP只需要改ONBOOT=yes,激活網卡就行,BOOTPROTO=dhcp保持不動

wKiom1eXYRex269QAABIkFSg4wk606.jpg重啟網絡服務

wKioL1eXYRiioo1VAAE_nKrC9Lc797.jpg查看一下網卡信息吧

二、關閉防火墻

centos6.8默認防火墻為iptabls,而centos7.2為firewalld,所以由于防火墻的不同,操作也不同

wKioL1eXYwnRuxrWAACCfBVl_EI420.jpg

首先可以查看一下firewall防火墻的狀態,running正在運行

停止firewall,然后禁止自啟動firewall,然后狀態就會變為not running了

啟動則是:systemcl start firewalld.service

6.8命令如下

查看防火墻狀態—-service iptables status

1 關閉防火墻—–service iptables stop 臨時的

2 啟動防火墻—–service iptables start 

3 重啟防火墻—–service iptables restart 

4 查看防火墻狀態–service iptables status 

5 永久關閉防火墻–chkconfig iptables off 

6 永久關閉后啟用–chkconfig iptables on

這樣我們就可以在初期用到網絡連接時,一般就不會出現連接不上被防火墻屏蔽的情況了。

三、用戶類別

Linux用戶簡單的分為管理員和普通用戶,普通用戶又分為系統內建用戶和自定義用戶??梢圆榭?etc/passwd來查看。如下圖所示:

4d086e061d950a7ba9720a820fd162d9f2d3c935


1、系統管理員:即root帳戶,UID號為0,擁有所有系統權限,它類似于Windows系統中的administrator帳戶,是整個系統的所有者。

  root用戶:

      一個特殊的管理帳戶,也被稱為超級用戶

     root已接近完整的系統控制,因此對系統損害幾乎有無限的能力,基本什么都可以操作,甚至作死命令 rm -rf /(千萬別想不開)

     除非必要,不要登錄為 root,我們一般不用,用也是臨時切換,或者臨時提升普通用戶權限來完成操作


2、普通( 非特權  )用戶,UID號1-65535,沒有對系統管理權限,權限有限,造成損害的能力比較有限

   系統用戶:linux為滿足自身系統管理所內建的賬號,通常在安裝過程中自動創建,不能用于登錄操作系統。centOS6以前版本UID在1-499之間,centos7在1-999之間。如上圖中的的halt、mail等等用戶即是此類用戶。它類似于Windows中的system帳戶,當然權限遠沒有system帳戶高。

   自定義用戶:由root管理員創建供用戶登錄系統進行操作使用的賬號,centOS6以前版本UID在500-60000之間,centos7在1000-60000之間。它類似于Windows系統中users用戶組中的帳戶 。

四、終端

   服務器主機非必要部件,沒有終端服務器一樣能夠運行;可以理解為鼠標、鍵盤、顯示器等可供用戶與主機交互必然用到的I/O設備

    物理終端:直接接入本機的顯示器和鍵盤設備/dev/console又叫控制臺,是系統開機時能夠進入的單用戶模式,而且網絡是被禁用的

     虛擬終端:附加在物理終端之上的以軟件方式虛擬實現的終端,設備文件路徑:/dev/tty#,CentOS 6 默認啟動6 個虛擬終端 Ctrl+Alt+F#: [1,6]

        圖形終端:屬于虛擬終端,附加在物理終端之上的以軟件方式虛擬實現的終端,但額外會提供桌面環境; Ctrl+Alt+F7

               centos7:在哪個虛擬終端啟動的圖形界面,即位于那個虛擬終端;而剩下的則為字符界面;默認Ctrl+Alt+F1圖形界面,[2-6]是字符界面

        串行終端(ttyS)

     模擬終端:圖形界面打開 的 命令行以及基于ssh 協議或telnet 協議等遠程打開的界面, 設備文件:/dev/pts/# [0,  ∞ )

            比如我們使用的SecureCRT、我們在圖形界面也是模擬終端

    查看當前的終端設備:#tty

wKioL1eXb92CImIpAABlp9OpH0g180.jpg

五、shell

shell (計算機殼層)

    在計算機科學中,Shell俗稱殼(用來區別于核),是指“提供使用者使用界面”的軟件(命令解析器)。在Linux系統中shell是用戶界面提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行。它類似于DOS下的command和后來的cmd.exe。它接收用戶命令,然后調用相應的應用程序。同時它又是一種程序設計語言。作為命令語言,它交互式解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程序設計語言,它定義了各種變量和參數,并提供了許多在高級語言中才具有的控制結構,包括循環和分支。

基本上shell分兩大類:

    一:圖形界面shell(Graphical User Interface shell 即 GUI shell)

          例如:應用最為廣泛的 Windows Explorer (微軟的windows系列操作系統),還有也包括廣為人知的 Linux shell,其中linux shell 包括 X window manager (BlackBox和FluxBox),以及功能更強大的Desktop、CDE、GNOME(C,  圖形庫gtk)、KDE(C++, 圖形庫qt)、 XFCE( 輕量級桌面)。

    二:命令行式shell(Command Line Interface shell ,即CLI shell)

          例如:

          bash / sh / ksh / csh(Unix/linux 系統)

       (MS-DOS系統)

        cmd.exe/ 命令提示字符(Windows NT 系統)

          Windows PowerShell(支援 .NET Framework 技術的 Windows NT 系統)

          傳統意義上的shell指的是命令行式的shell,以后如果不特別注明,shell是指命令行式的shell。

      文字操作系統與外部最主要的接口就叫做shell。shell是操作系統最外面的一層。shell管理你與操作系統之間的交互:等待你輸入,向操作系統解釋你的輸入,并且處理各種各樣的操作系統的輸出結果。

    shell提供了你與操作系統之間通訊的方式。這種通訊可以以交互方式(從鍵盤輸入,并且可以立即得到響應),或者以shell script(非交互)方式執行。shell script是放在文件中的一串shell和操作系統命令,它們可以被重復使用。本質上,shell script是命令行命令簡單的組合到一個文件里面。

    Shell基本上是一個命令解釋器,類似于DOS下的command。它接收用戶命令(如ls等),然后調用相應的應用程序。較為通用的shell有標準的Bourne shell (sh)和C shell (csh)。wKiom1eXc4STA8cuAABea99p_7Q540.jpg

    交互式shell和非交互式shell

    交互式模式就是shell等待你的輸入,并且執行你提交的命令。這種模式被稱作交互式是因為shell與用戶進行交互。這種模式也是大多數用戶非常熟悉的:登錄、執行一些命令、簽退。當你簽退后,shell也終止了。

    shell也可以運行在另外一種模式:非交互式模式。在這種模式下,shell不與你進行交互,而是讀取存放在文件中的命令,并且執行它們。當它讀到文件的結尾,shell也就終止了。

    shell的類型

    在UNIX中主要有:

    Bourne shell (包括 sh,ksh,and bash)

    Bourne shell ( sh)

    Korn shell ( ksh)

    Bourne Again shell ( bash)

    POSIX shell ( sh)

    C shell (包括 csh and tcsh)

    C shell ( csh)

    TENEX/TOPS C shell ( tcsh)

GNU Bourne-Again Shell(bash) 是GNU計劃中重要的工具軟件之一,目前也是 Linux 標準的shell與sh 兼容。

CentOS 默認使用bash

 顯示當前使用的shell: 

    #echo ${SHELL}    花括號可以省略

 顯示當前系統使用的所有shell:

    #cat /etc/shells

 切換當前shell類型:  

    [root@localhost ~]# echo $SHELL

    /bin/bash

    [root@localhost ~]# chsh

    Changing shell for root.

    New shell [/bin/bash]: /bin/tcsh

    Shell changed.

    [root@localhost ~]# echo $SHELL

    /bin/bash

    [root@localhost ~]# su –

    上一次登錄:三 7月 27 10:58:49 CST 2016pts/0 上

    [root@localhost ~]# echo $SHELL

    /bin/tcsh

bash 的快捷鍵

Ctrl+l 清屏,相當于clear 命令

Ctrl+c  取消命令的執行

Ctrl-a  會移動到命令行的最前面

Ctrl-e  會移動到命令行的最后面

Ctrl-u  會刪除到行首

Ctrl-k  會刪除到行尾

arrow ctrl-b ctrl-f 會向左或向右移動一個字符

Esc-b 左移一個單詞

Esc-f 右移一個單詞


六、命令紀要

1、命令提示符

 命令提示符:prompt

     默認格式[root@localhost ~]#

 顯示提示符格式:

         [root@localhost ~] :echo $PS1

   臨時修改:#PS1=*****

   wKioL1eXdovTC9CLAABBubSrJBY401.jpg

 prompt: 

         管理員:#

         普通用戶:$

wKioL1eXd3_QmP_nAABIjk0aLFg484.jpg

2、命令的執行

  輸入命令,回車:提請shell程序找到鍵入命令所對應的可執行程序或代碼,并由其分析后提交給內核分配資源將其運行起來;而找尋命令對應關系的過程是先查找命令別名,沒有則進入shell自帶的內部命令中查找,沒有則進入hash緩存中查找對應外部命令的記錄,沒有則按照$PATH的目錄依次查找外部命令,第一次找到并執行對應的可執行程序或代碼。

  查找優先級:命令別名>內部命令>hash緩存的執行過的對應外部命令>按照$PATH查找   如果在$PATH中找到第一個對應的外部命令便執行并且保存帶內存中hash中就會存在這個命令的信息,下次執行時就會默認執行hash中對應的命令,而不會再次查找

3、命令別名:

   獲取所有可用的別名的定義: ~]# alias

   定義別名:~]# alias NAME=’COMMAND’(注意名字最好是小寫字母,COMMAND如果當中沒用空格可以不加’’,僅對當前shell進程有效,其它用戶或再次登入無效)

   撤銷別名:~]# unalias NAME  

wKiom1eYCZDg6dacAAEOyUMm5vk677.jpg注意用alias定義的別名只對當前shell有效,從硬件角度說就是數據保存在內存中而非硬盤中,所以重新登陸重啟都會失效,如果想要永久有效則需要編輯.bashrc文件,將定義的別名寫入到文件中,相當于保存在硬盤中才可以

   如果只想定義的別名自己使用,不影響別人則編輯用戶家目錄下的.bashrc文件

   ~]#vim .bashrc

   如果想對所有用戶有效則編輯全局/etc/.bashrc

wKioL1eYGWKCdSb_AAB0fXJatt8909.jpg

wKiom1eYGWOBX07VAABqYfrhMGw999.jpg此為只對當前用戶生效

而上圖中source 雖然成功執行,但是并沒有成功改變設置,而重登賬戶才生效。

   注意有的發型版本修改的是profile文件來實現的,這里我簡單說一下我查閱的相關信息

/etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.并從/etc/profile.d目錄的配置文件中搜集shell的設置.

        也就是說這個文件里的配置針對所有用戶和shell類型
/etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.

        這個只針對所有使用shell類型為bash的用戶有效
~/.bash_profile:每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件.

~/.bashrc:該文件包含專用于你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取.類似的文件還有.cshrc、.tcshrc等

~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件.

       這些文件針對當前用戶的shell類型為bash有效

  另外,/etc/profile中設定的變量(全局)的可以作用于任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是"父子"關系.
  ~/.bash_profile 是交互式、login 方式進入 bash 運行的
  ~/.bashrc 是交互式 non-login 方式進入 bash 運行的
  通常二者設置大致相同,所以通常前者會調用后者。

以上部分涉及變量問題,我們以后再深入探討,在這里我們還沒有知識,所以不好理解,只是要有個概念


4、內部命令和外部命令

   在shell 中可執行的命令有兩類:內部命令:由shell自帶的,而且通過某命令形式提供,這些命令都是內嵌在shell內部的

       enable命令可以啟用或禁用內部命令:                     

                         enable -n COMMAND 禁用內部命令

                             enable CMOMMAND 啟用內部命令                       

                       外部命令:在當前系統的某文件系統路徑下有對應的可執行程序文件;which ,whereis;注意shell本身也是外部命令,因為shell本身也存在所對應的可執行程序文件例如: /bin/sh、/bin/bash、/sbin/nologin、/bin/tcsh、/bin/csh、/usr/bin/sh、/usr/bin/bash等

                             which:查看外部命令路徑在$PATH變量里面搜索

                             whereis:查看程序及其幫助文檔的路徑

                        區別當前使用的命令是內部或外部命令:

                                                #type COMMAND     

                                          內部:顯示builtin

                                          外部:顯示為命令文件路徑,但不是絕對的,因為有些文件有別名,別名我們上文說過

   

5、hash 命令:搜尋到的外部命令路徑結果緩存至 至kv(key-value) 存儲,

       hash  顯示hash緩存 

       hash -d COMMAND   刪除制定命令的hash緩存  

       hash –r 清除緩存

七、命令格式

 COMMAND [OPTIONS…] [ARGUMENTS…]

選項:用于啟用或關閉命令的某個或某些功能;

  短選項:-c,  例如:-l, -h 

             長選項:–word ,例如:–all, –human-readable 

                第一種:參數用一橫的說明后面的參數是字符形式。

                第二種:參數用兩橫的說明后面的參數是單詞形式。

               第三種:參數前有橫的是 System V風格。

                第四種:參數前沒有橫的是 BSD風格。

              有關System V和BSD的其他區別:

             系統啟動過程中 kernel 最后一步調用的是 init 程序,init 程序的執行有兩種風格,即 System V 和 BSD。

             System V 風格中 init 調用 /etc/inittab,BSD 風格調用 /etc/rc,它們的目的相同,都是根據 runlevel 執行一系列的程序。       

參數:命令的作用對象,比如文件名,用戶名等

注意:  

            1 、多選項,以及多參數和命令之間使用空白字符分隔

             eg:cp -r /usr/games /tmp 

            2 、取消和結束命令執行:Ctrl+c ,Ctrl+d

              在執行過程中可以Ctrl+c,中斷執行

            3 、多個命令可以用; 符號分開

              # cd /tmp;ll -a /tmp;cp -r /usr/games /tmp

            4 、一個命令可以用\分成多行

              eg:#pwd   查看當前工作目錄

wKioL1eYWVygBTT9AAA7NNIXGjo857.jpg

            5 、短選項可以合在一起使用,但有些命令的短選項是遵循一定順序的;

               eg:ls -l -h 可以為   ls -lh  或   ls -hl

                  而gcc -o hello.c hello 和 gcc hello.c -o hello       

                    如果只做編譯,不做鏈接(-c 選項,只生成.o文件,不生成執行文件),參數順序沒有要求。

                    不同類的選項沒有順序要求(如多個 -I 屬于同一類)。

                    gcc在鏈接時,對參數中的庫的順序有要求,參數右側的庫會先于左側的庫加載;不同庫中有相同的符號定義時,鏈接順序不同會產生不同結果。

            6、長選項不能合并,有些選項可以帶參數:稱為選項參數

                這個我還沒有接觸到,所以就不給大家例子啦,如果以后知道或者有知道的大神,請留言,我會及時更新,并表示感謝

八、命令行擴展、被括起來的集合

 命令行擴展:$( ) 或 “

    把一個命令的輸出打印給另一個命令的參數

       $ echo "This system's name is $(hostname ) "

         This system's name is server1.example.com    主機名   所以小伙伴們的和我的例子應該不會一樣  

       $echo "i am `whoami ` "   whoami    用戶正在使用的賬號    

         i am root

   括號擴展:{ }

        打印重復字符串的簡化形式

         $ echo file{1,3,5}

           file1 file3 file5


  希望各位小伙伴們多多留言指教,學習就是要多交流,才能更快的積累學識,所以多多探討問題,很讓我們不知不覺間將理論變為理解,從練習到實踐應用。

                為所有每一刻為了美好未來和理想而努力學習的我們 j_0003.gif

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

(0)
NameLessNameLess
上一篇 2016-08-03
下一篇 2016-08-03

相關推薦

  • N25第二周視頻作業:用戶、組與權限管理詳解

    此篇博客是根據視頻要求寫的,因為馬哥在視頻中說了,用戶組、權限在linux運維過程中比較重要,所以一定要深入學習 首先,先介紹一下用戶、組與權限是什么:     用戶:用戶時指你在服務器上的標識,通過不同類型的用戶,你享受到不同的待遇,而待遇就是權限的大小。每個用戶在服務器上都有唯一的id標識,即使你將此用戶刪除,再建…

    Linux干貨 2016-11-26
  • 源碼編譯安裝之apache

    工具: Development tools組包 httpd-2.2.9.tar.gz links網站瀏覽工具   安裝apache之前需要安裝編譯需要的環境“Development tools”這個是編譯使用的必須的環境包,使用下面的命令可以安裝。 [root@CentOS6 ~]# yum groupinstall&…

    Linux干貨 2016-08-24
  • 細數Linux發行版

    什么是Linux 廣義上講:Linux內核+應用程序狹義上講:Linux內核  > Linux內核指的是我們通常所說的Kernel,主要用于負責系統調用、進程管理、內存管理、文件系統管理等功能。  應用程序指的是由GNU組織提供的開源的、通用的應用程序,如gcc、glibc、vi等。 我們平常所說的Linux,通常指廣義層面上的Li…

    Linux干貨 2017-08-30
  • 從Linux小白到大?!c狼共舞的日子12(上)

    馬哥教育網絡班21期+第12周課程練習 1、請描述一次完整的http請求處理過程; 1)建立或處理連接:客戶端發送http請求報文,服務器端接收或拒絕請求; 2)接收請求:服務器端接收來自客戶端對某些資源的請求; 3)處理請求:服務器端解析客戶端請求報文,獲取客戶端請求的資源及請求方法等信息; 4)訪問資源:服務器端獲取客戶端請求的資源; 5)構建響應報文;…

    Linux干貨 2016-12-26
  • 計算機操作系統與簡單命令

    計算機系統的組成 硬件:主機(cpu、內存等),外部設備(輸入設備鍵盤鼠標、輸出設備顯示屏;硬軟盤   等等)。 軟件:主要由操作系統和應用程序構成。 計算機硬件的組成部分及工作流程圖 輸入設備——存儲器——CPU運算——輸出設備   服務器主要分類有: 塔式服務器:立式PC相像 機架式服務器:統一標準寬度19英寸(48.26c…

    Linux干貨 2017-02-14
  • 2016/10/14作業

    操作類: 1、設置自己的終端提示符,要求終端登陸時:     a> 需要帶顏色      b> 需要顯示當前執行到了第幾條命令      c> 顯示當前登錄終端,主機名和當前時間 首先我們要了解一個環境…

    Linux干貨 2016-10-19
欧美性久久久久