linux學習總結-linux基礎(之一)

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

馮諾依曼結構的計算機由運算器、控制器、存儲器和輸入設備、輸出設備五部分組成。馮諾依曼理論的要點是:數字計算機的數制采用二進制;計算機應該按照程序順序執行。

控制器:控制程序執行;

存儲器:記憶程序和數據;

輸入設備:輸入數據和程序;

輸出設備:輸出處理結果。

二、Linux發行版

Linux的發型版本眾多,大體可以分為兩類,一類是商業公司維護的發型版本,以RedhatRHEL)為代表,一類是社區組織維護的發型版本,以Debian為代表。下面是常見的發型版本及其繼承關系:

Debian
        Ubuntu
                 Mint
        Knopix
Slackware
        S.u.S.E
                 SLES
                 OpenSUSE
Redhat
        RHEL
        CentOS
        Fedora
Gentoo
ArchLinux

三、Linux哲學思想

Linux的哲學思想官方給出的貌似是(解釋為本人自己的理解):

1.一切皆文件linux中,文件、目錄、數據、設備等都被認為是文件。

2.單一目的的小程序:程序不要太復雜,一個程序完成一個目的,確保Linux內核的高效。

3.組合小程序完成復雜任務:復雜功能由多個簡單的程序共同組合實現。

4.文本的形式保存配置數據:linux中所有配置文件都放在文本的配置文件中,如果需要修改配置,只需用文本編輯器修改文本配置文件。

5.盡量避免與用戶交互:linux大多通過簡潔的命令行方式,避免復雜的用戶界面

6.提供機制而非策略:這個比較難理解,機制可以理解為為實現某個功能需要的原語操作和結構;策略可以理解為某個功能的直接實現。而此句意味著我們應該提供實現某個功能需要的原語操作,而不是直接去實現。這也保證了linux具有強大的可配置性(對比某水果)。

 

其實這幾點更像是Linux的設計理念,在我看來Linux的哲學思想同時也是開源界的核心思想,可以概括為:自由與分享。遵循自由軟件的思想:自由使用、自由學習和修改、自由分發、自由創建衍生版本等。


四、Linux命令格式及常用命令


Linux系統的命令格式大多為:

command  [-options]  parameter1 parameter2 …

命令    選項    參數參數2 …

ifconfig


1.命令格式:

ifconfig [網絡設備] [參數]

2.命令功能:

ifconfig 命令用來查看和配置網絡設備。當網絡環境發生改變時可通過此命令對網絡進行相應的配置。

3.命令參數:

up 啟動指定網絡設備/網卡。

down 關閉指定網絡設備/網卡。該參數可以有效地阻止通過指定接口的IP信息流,如果想永久地關閉一個接口,我們還需要從核心路由表中將該接口的路由信息全部刪除。

arp 設置指定網卡是否支持ARP協議。

-promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包

-allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包

-a 顯示全部接口信息

-s 顯示摘要信息(類似于 netstat -i)

add 給指定網卡配置IPv6地址

del 刪除指定網卡的IPv6地址

<硬件地址> 配置網卡最大的傳輸單元

mtu<字節數> 設置網卡的最大傳輸單元 (bytes)

netmask<子網掩碼> 設置網卡的子網掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。如果不打算將網絡分成子網,可以不管這一選項;如果要使用子網,那么請記住,網絡中每一個系統必須有相同子網掩碼。

tunel 建立隧道

dstaddr 設定一個遠端地址,建立點對點通信

-broadcast<地址> 為指定網卡設置廣播協議

-pointtopoint<地址> 為網卡設置點對點通訊協議

multicast 為網卡設置組播標志

address 為網卡設置IPv4地址

txqueuelen<長度> 為網卡設置傳輸列隊的長度

4.使用實例:

實例1:顯示網絡設備信息(激活狀態的

命令:

ifconfig

實例2:啟動關閉指定網卡

命令:

ifconfig eth0 up

ifconfig eth0 down

說明:

ifconfig eth0 up 為啟動網卡eth0 ;ifconfig eth0 down 為關閉網卡eth0。ssh登陸linux服務器操作要小心,關閉了就不能開啟了,除非你有多網卡。

實例3:用ifconfig修改MAC地址

命令:

ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE

實例4:配置IP地址

命令:

ifconfig eth0 192.168.120.56 

/給eth0網卡配置IP地:192.168.120.56

ifconfig eth0 192.168.120.56 netmask 255.255.255.0 

/給eth0網卡配置IP地址:192.168.120.56 ,并加上子掩碼:255.255.255.0

ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255

/給eth0網卡配置IP地址:192.168.120.56,加上子掩碼:255.255.255.0,加上個廣播地址: 192.168.120.255


echo


1.命令格式:

echo [-ne][字符串]或 echo [–help][–version]

2.命令功能:

顯示文字到標準輸出

3.命令參數:

-e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般
文字輸出:
   \a 發出警告聲;
   \b 刪除前一個字符;
   \c 最后不加上換行符號;
   \f 換行但光標仍舊停留在原來的位置;
   \n 換行且光標移至行首;
   \r 光標移至行首,但不換行;
   \t 插入tab;
   \v 與\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八進制)所代表的ASCII字符;
–help 顯示幫助
–version 顯示版本信息

4.使用實例:

實例1:輸出一行文本

命令:

echo  a line Text

實例2:不換行輸入

命令:

echo -n  a line Text

實例3:打印當前目錄下所有文件和文件夾(ls替代)

命令:

echo *


tty


1.命令格式:

      tty [-s][–help][–version]

2.命令功能:

顯示終端機連接標準輸入設備的文件名稱。在Linux操作系統中,所有外圍設備都有其名稱與代號,這些名稱代號以特殊文件的類型存放于/dev目錄下。你可以執行tty指令查詢目前使用的終端機的文件名稱。

3.命令參數:

-s或–silent或–quiet   不顯示任何信息,只回傳狀態代碼。
  –help   在線幫助。
  –version   顯示版本信息。

4.使用實例:

實例1:查看當前的標準終端文件描述符號

命令:

tty

實例2:運行tty什么也不輸出,然后查看其退出碼

命令:

tty -s
   echo $?

說明:

    這里,使用shell的命令"echo $?"來顯示上一條命令的退出狀態碼。狀態碼的含義如下: 

    0 表示標準輸入是一個終端。 

    1 表示標準輸入不是一個終端。 

    2 表示給定的參數是不正確的參數。 

    3 表示發生了寫錯誤。


startx


1.命令格式:

     startx [ -d Display:0 ] [ -t | -w ] [ -x Startup | [ -r Resources ] [ -m Window_Manager ] ] [ -wait ]

2.命令功能:

初始化一個 X 會話。

3.命令參數:

-d Display :0 指定在啟動過程中傳遞給 X 客戶機的 X 服務器的顯示名稱。
   -m Window_Manager 當未找到 startup 腳本時,啟動窗口管理器。
   -r Resources 當未找到 startup 腳本時,裝入資源文件。
   -t 為一個 X 終端啟動 X 客戶機。
   -w 為工作站上的 X 窗口會話啟動 X 服務器和 X 客戶機。
   -wait 當 xdm 命令調用 startx 時,防止重新啟動 X 會話。
   -x Startup 使用 startup 腳本啟動 X 窗口會話。

4.使用實例:

實例1:啟動x回話

命令:

startx

實例2:強制啟動x回話

命令:

startx  -w


export


1.命令格式:

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

2.命令功能:

設置或顯示環境變量。

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

3.命令參數:

-f  代表[變量名稱]中為函數名稱。
   -n  刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。
   -p  列出所有的shell賦予程序的環境變量。

        4.使用實例:

實例1:將制定路徑加入到環境變量

命令:

export $PATH="路徑”


pwd


1.命令格式:

     pwd [選項]

2.命令功能:

查看”當前工作目錄“的完整路徑

3.命令參數:

一般情況下不帶任何參數

如果目錄是鏈接時

                 格式:pwd -P  顯示出實際路徑,而非使用連接(link)路徑。

        4.使用實例:

實例1:用 pwd 命令查看默認工作目錄的完整路徑

命令:

     pwd

   實例2:目錄連接鏈接時,pwd -P  顯示出實際路徑,而非使用連接(link)路徑;pwd顯示的是連接路徑

命令:

   pwd -p


history


1.命令格式:

    history(選項)(參數)

2.命令功能:

history命令用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件

3.命令參數:

-c:清空當前歷史命令;
  -a:將歷史命令緩沖區中命令寫入歷史命令文件中;
  -r:將歷史命令文件中的命令讀入當前歷史命令緩沖區;
  -w:將當前歷史命令緩沖區命令寫入歷史命令文件中。

        4.使用實例:

實例1:使用history命令顯示最近使用的10條歷史命令

命令:

     history 10


shutdown


1.命令格式:

    poweroff(參數)

2.命令功能:

關閉計算機操作系統并且切斷系統電源

3.命令參數:

-c  當執行"shutdown -h 11:50"指令時,只要按+鍵就可以中斷關機的指令。
 -f  重新啟動時不執行fsck。
 -F  重新啟動時執行fsck。
 -h  將系統關機。
 -k  只是送出信息給所有用戶,但不會實際關機。
 -n  不調用init程序進行關機,而由shutdown自己進行。
 -r  shutdown之后重新啟動。
 -t<秒數>  送出警告信息和刪除信息之間要延遲多少秒。
 [時間]  設置多久時間后執行shutdown指令。
 [警告信息]  要傳送給所有登入用戶的信息。

        4.使用實例:

實例1:系統在十分鐘后關機并且馬上重新啟動

命令:

    shutdown –r +10

實例2:系統馬上關機不重啟

命令:

    shutdown –h now


poweroff


1.命令格式:

    shutdown [-efFhknr][-t 秒數][時間][警告信息]

2.命令功能:

關閉計算機操作系統并且切斷系統電源

3.命令參數:

-n:關閉操作系統時不執行sync操作;
   -w:不真正關閉操作系統,僅在日志文件“/var/log/wtmp”中;
   -d:關閉操作系統時,不將操作寫入日志文件“/var/log/wtmp”中添加相應的記錄;
   -f:強制關閉操作系統;
   -i:關閉操作系統之前關閉所有的網絡接口;
   -h:關閉操作系統之前將系統中所有的硬件設置為備用模式。

 

        4.使用實例:

實例1:立即關閉操作系統

命令:

        poweroff


   reboot


1.命令格式:

    reboot [-n] [-w] [-d] [-f] [-i]

2.命令功能:

重啟Linux系統

3.命令參數:

   -d  重新啟動時不把數據寫入記錄文件/var/tmp/wtmp
    -f  強制重新開機,不調用shutdown指令的功能。
    -h  在系統關機或poweroff之前,將所有的硬盤處于待機模式
    -i  關閉網絡設置之后再重新啟動系統
    -n  保存數據后再重新啟動系統
    -p  When halting the system, do a poweroff. This is the default when halt is called as     poweroff
    -w  僅做測試,并不真的將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件

        4.使用實例:

實例1:強制重新開機,不調用shutdown指令的功能

命令:

         reboot -f


實例2:保存數據后再重新啟動系統

命令:

         reboot -n


       hwclock


1.命令格式:

    hwclock [–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test]
[–utc][–version][–set –date=<日期與時間>]

2.命令功能:

顯示與設定硬件時鐘。

在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是通??稍贐IOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。當Linux啟動時,系統時鐘會去讀取硬件時鐘的設定,之后系統時鐘即獨立運作。所有Linux相關指令與函數都是讀取系統時鐘的設定。

3.命令參數:

–adjust  hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用–adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,并用來校正目前的硬件時鐘。
   –debug  顯示hwclock執行時詳細的信息。
   –directisa  hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘。
   –hctosys  將系統時鐘調整為與目前的硬件時鐘一致。
   –set –date=<日期與時間>  設定硬件時鐘。
   –show  顯示硬件時鐘的時間與日期。
   –systohc  將硬件時鐘調整為與目前的系統時鐘一致。
   –test  僅測試程序,而不會實際更改硬件時鐘。
   –utc  若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作。
   –version  顯示版本信息。

        4.使用實例:

實例1:顯示硬件時鐘

命令:

         hwclock


實例2:硬件時鐘調整與系統時鐘一致

命令:

             hwclock -systohc


       date


1.命令格式:

    hwclock [–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test]
[–utc][–version][–set –date=<日期與時間>]

2.命令功能:

用來顯示或設定系統的日期與時間

3.命令參數:

%H 小時(以00-23來表示)。
  %I 小時(以01-12來表示)。
  %K 小時(以0-23來表示)。
  %l 小時(以0-12來表示)。
  %M 分鐘(以00-59來表示)。
  %P AM或PM。
  %r 時間(含時分秒,小時以12小時AM/PM來表示)。
  %s 總秒數。起算時間為1970-01-01 00:00:00 UTC。
  %S 秒(以本地的慣用法來表示)。
  %T 時間(含時分秒,小時以24小時制來表示)。
  %X 時間(以本地的慣用法來表示)。
  %Z 市區。
  %a 星期的縮寫。
  %A 星期的完整名稱。
  %b 月份英文名的縮寫。
  %B 月份的完整英文名稱。
  %c 日期與時間。只輸入date指令也會顯示同樣的結果。
  %d 日期(以01-31來表示)。
  %D 日期(含年月日)。
  %j 該年中的第幾天。
  %m 月份(以01-12來表示)。
  %U 該年中的周數。
  %w 該周的天數,0代表周日,1代表周一,異詞類推。
  %x 日期(以本地的慣用法來表示)。
  %y 年份(以00-99來表示)。
  %Y 年份(以四位數來表示)。
  %n 在顯示時,插入新的一行。
  %t 在顯示時,插入tab。
  MM 月份(必要)
  DD 日期(必要)
  hh 小時(必要)
  mm 分鐘(必要)
  ss 秒(選擇性)
選擇參數:
  -d<字符串>  顯示字符串所指的日期與時間。字符串前后必須加上雙引號。
  -s<字符串>  根據字符串來設置日期與時間。字符串前后必須加上雙引號。
  -u  顯示GMT。
  –help  在線幫助。
  –version  顯示版本信息

1.在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號后接數個標記,其中可用的標記列表如下: % :  打印出 %:

%n : 下一行

%t : 跳格

%H : 小時(00..23)

%I : 小時(01..12)

%k : 小時(0..23)

%l : 小時(1..12)

%M : 分鐘(00..59)

%p : 顯示本地 AM 或 PM

%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)

%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數

%S : 秒(00..61)

%T : 直接顯示時間 (24 小時制)

%X : 相當于 %H:%M:%S

%Z : 顯示時區 %a : 星期幾 (Sun..Sat)

%A : 星期幾 (Sunday..Saturday)

%b : 月份 (Jan..Dec)

%B : 月份 (January..December)

%c : 直接顯示日期與時間

%d : 日 (01..31)

%D : 直接顯示日期 (mm/dd/yy)

%h : 同 %b

%j : 一年中的第幾天 (001..366)

%m : 月份 (01..12)

%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)

%w : 一周中的第幾天 (0..6)

%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)

%x : 直接顯示日期 (mm/dd/yy)

%y : 年份的最后兩位數字 (00.99)

%Y : 完整年份 (0000..9999)

2.在設定時間方面:

date -s //設置當前時間,只有root權限才能設置,其他只能查看。

date -s 20080523 //設置成20080523,這樣會把具體時間設置成空00:00:00

date -s 01:01:01 //設置具體時間,不會對日期做更改

date -s “01:01:01 2008-05-23″ //這樣可以設置全部時間

date -s “01:01:01 20080523″ //這樣可以設置全部時間

date -s “2008-05-23 01:01:01″ //這樣可以設置全部時間

date -s “20080523 01:01:01″ //這樣可以設置全部時間

3.加減:

date +%Y%m%d         //顯示前天年月日

date +%Y%m%d –date="+1 day"  //顯示前一天的日期

date +%Y%m%d –date="-1 day"  //顯示后一天的日期

date +%Y%m%d –date="-1 month"  //顯示上一月的日期

date +%Y%m%d –date="+1 month"  //顯示下一月的日期

date +%Y%m%d –date="-1 year"  //顯示前一年的日期

date +%Y%m%d –date="+1 year"  //顯示下一年的日期

  5.使用實例:

實例1:顯示當前時間

命令:

date

date '+%c'

date '+%D'

date '+%x'

date '+%T'

date '+%X'

實例2:顯示月份和日數

命令:

date  '+%B %d'

實例3:date -d參數使用

命令:

date -d "nov 22"  /今年的 11 月 22 日是星期三

date -d '2 weeks' /2周后的日期

date -d 'next monday' /(下周一的日期)

date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d

date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d

date -d last-month +%Y%m(上個月是幾月)

date -d next-month +%Y%m(下個月是幾月)

使用 ago 指令,您可以得到過去的日期:

date -d '30 days ago' (30天前的日期)

使用負數以得到相反的日期:

date -d 'dec 14 -2 weeks' (相對:dec 14這個日期的兩周前的日期)

date -d '-100 days' (100天以前的日期)

date -d '50 days'(50天后的日期)

五、在Linux中獲取幫助的命令

linux中,獲取命令的幫助信息可以使用help,–help,man,info,具體使用格式為(以date命令舉例):

help  date

date  –help

man date

info date

        man page幫助頁的組成部分如下表所示:

      

代號

內容說明

NAME

簡短的命令、數據名稱說明

SYNOPSIS

簡短的命令執行語法(syntax)簡介

DESCRIPTION

較為完整的說明

OPTIONS

針對SYNOPSIS部分中,有列舉的所有可用的選項說明

COMMANDS

當這個程序在執行過程中,可以在此程序中執行的命令

FILES

這個程序或數據所使用或參考或連接到的某些文件

SEE ALSO

這個命令或數據有相關的其他說明

EXAMPLE

一些可以參考的范例

BUGS

相關錯誤

原創文章,作者:北京-其實二變,如若轉載,請注明出處:http://www.www58058.com/48354

(0)
北京-其實二變北京-其實二變
上一篇 2016-09-23
下一篇 2016-09-23

相關推薦

  • bash功能特性四 文件名通配符

    文件名通配(globbing)     通配符在bash中是一個非常有用的功能,它可以使我們更加方便的查找符合特定條件的文件。     文件通配符的包括以下幾種:          *:任意長度的任意…

    Linux干貨 2015-04-21
  • Linux系統程序包的管理-Yum及編譯安裝

          Yum 是通過分析RPM的標頭數據后,根據各軟件的依賴關系制作出有依賴關系時的的解決方案,然后可以自動處理軟件的依賴性問題,以解決軟件安裝或移除與升級的問題。       由于發行版必須要先釋放軟件,然后將軟件放置于yum服務器上面,以提供用戶端用來安裝與升…

    2017-05-02
  • 從Linux小白到大牛——與狼共舞的日子9

    馬哥教育網絡班21期+第9周課程練習 1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; [root@localhost ~]# cat shell.sh  #!/bin/bash # declare…

    Linux干貨 2016-12-05
  • 關于大型網站技術演進的思考(四):存儲的瓶頸(4)

    原文出處: 夏天的森林    如果數據庫需要進行水平拆分,這其實是一件很開心的事情,因為它代表公司的業務正在迅猛的增長,對于開發人員而言那就是有不盡的項目可以做,雖然會感覺很忙,但是人過的充實,心里也踏實。 數據庫水平拆分簡單說來就是先將原數據庫里的一張表在做垂直拆分出來放置在單獨的數據庫和單獨的表里后更進一步的把本來是一個整體…

    2015-03-11
  • 馬哥教育網絡21期+第三周作業博客

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 [ro…

    Linux干貨 2016-08-01
  • shell編程的常見實例

    1. 寫一個腳本/root/bin/argsnum.sh 用戶輸入一個文件路徑并查找文件中空白行的個數 ,如果用戶沒有輸入路徑則自動退出  實驗結果如下: 如果不輸入任何路徑程序會自動退出:實驗結果如下: 用其他方法驗證是不是有兩行空行: (個人總結): 1.   read 命令,如果用 -p 來做提示信息,則不支持\n換行,這…

    Linux干貨 2016-08-12

評論列表(1條)

  • Net17_desperado
    Net17_desperado 2016-09-23 21:29

    請加群557442874一起成長 順便說一句你可以采用markdown進行排版,效果會非常不錯

欧美性久久久久