計算機相關簡介和linux相關簡介


一、計算機相關簡介與linux的一些概念

計算機系統 由硬件(Hardware)系統和軟件(Software)系統兩大部分構成:

  • 硬件系統 :CPU(控制器、運算器),內存儲器(RAM、ROM),外存儲器(硬盤等),輸入設備(鍵盤、鼠標等),輸出設備(顯示器等),其他設備相關設備。 
    軟件系統 :系統軟件(操作系統,數據庫等),應用軟件(例如office等用戶應用程序)。

CPU (Central Processing Unit)中央處理器。由控制器和運算器構成,是整個計算機系統的大腦。


計算機(computer):是一種能夠接收和存儲信息,并按照存儲在其內部的程序對海量數據進行自動、高速的處理,并輸出結果的一種電子設備。


發展歷史

  • 第一代計算機 (1946-1957)電子管時代
  • 第二代計算機 (1958-1964)晶體管時代
  • 第三代計算機 (1965-1970)集成電路時代
  • 第四代計算機 (1971-) 大規模集成電路時代

1946年,世界第一臺計算機ENIAC(electronic numerical integrator and calculator)在美國賓州大學誕生。使用17468只電子管,占地170平米,重30噸,耗電174千瓦,耗資40多萬美元。每秒可進行5000次加法或減法運算。


摩爾定律:Intel聯合創始人戈登·摩爾1965年提出,每隔18-24個月,集成電路上可容納的元器件數目和性能將提高一倍。


按規模劃分計算機類型:巨型計算機、大型計算機、小型計算機、微型計算機。


服務器:是計算機的一種,網絡中可客戶端提供各種服務的高性能計算機。


服務器按應用功能可分為

  • web服務器,數據庫服務器,郵件服務器,文件服務器等等。

服務器按外形分類: 
式服務器、機架服務器、刀片式服務器。


服務器的主要硬件構成 :電源、CPU、網卡、PCI、硬盤、風扇、內存、RAID卡,顯卡、網卡等等。


服務器按CPU架構分類

  • 非X86服務器:使用RISC(精簡指令集)或EPIC(并行指令代碼)處理器。
  • x86服務器:CISC(復雜指令集)架構服務器。

服務器按CPU個數來分 :4路及以上服務器;2路服務器;1路服務器。


存儲基礎知識 

  • 用于存放數據信息的設備和介質,是計算機系統的外部存儲,數據可長期駐留。
  • 存儲設備:軟盤、磁帶、光盤、磁盤陣列等。
  • 存儲網絡: 

    • DAS(Direct Attached Storage)–直接連接存儲
    • NAS(Network Attached Storage)–網絡連接存儲
    • SAN(Storage Area Networks)–存儲區域網絡

操作系統 

  • OS(operating system):實現硬件驅動、進程管理、內存管理、網絡管理、安全管理、文件管理等功能。
  • OS分類:服務器OS、桌面OS、移動設備OS。

開發接口標準 

  • ABI:Application BinaryInterface,描述了應用程序和OS之間的底層接口。
  • API:Application Programming Interface,定義了源代碼和庫之間的接口。
  • POSIX:可移植操作系統接口。
  • 運行程序格式:
  • Linux:ELF,.so(shared object), .a

編程語言 

  • 低級語言:匯編等;功能,硬件驅動等
  • 中級語言:c語言等; 功能 系統級應用等
  • 高級語言:java,php等;功能應用級程序開發。

服務器三大操作系統 

  • windows;Linux;Unix

Linux起源 

  • 1984年RIchard Stallman發起GNU項目和自由軟件基金會。
  • 1991年Linus Torvalds發布Linux內核

開源 :Open Source,軟件和源代碼提供給所有人,自由分發軟件和源代碼,能夠修改和創建衍生作品。

  • 開源協議: 
    GPLv2,LGPL 
    Apache:apache 
    BSD:bsd 

linux哲學思想 

  • 一切皆文件:所有設備,通信接口,文件等等都抽象為文件。
  • 一個程序負責一項功能,多個小程序完成復雜任務。
  • 避免與用戶交互,易于以編程化的方式實現特定功能。
  • 用文本文件保存配置信息。

端類型:terminal

  • 設備終端: 
    鼠標鍵盤顯示器
  • 物理終端: 
    /dev/consle
  • 虛擬終端:tty 
    本地的字符界面 

    • =偽終端: 
      pst/[0,1,2,3],遠程登錄

交互式接口:啟動終端后,在終端設備附加一個交互式應用程序

  • GUI:graphic user interface
  • gnome c 圖形庫gtk
  • kde c++ 圖形庫qt對面
  • xfce 輕量級桌面
  • CLI: comamnd line interface 
    sh bash csh tcsh ksh … 
    centos默認shell為bash(bourn again shell)

  • shell是linux系統用戶界面,提供了用戶與內核進行交互操作的一種接口。

  • shell是linux的一種命令解釋器,負責解析用戶提交的命令,找到對應路徑下的程序,最終將結果反饋給用戶。

Ctrl+c 強制關閉當前命令 
Ctrl+d 正常關閉當前命令,可實現快速注銷。


“comand/弱引用,內部的命令會被替換name’ 
強引用,內部的命令等不會被替換 
command 或$(command)命令調用,直接調用命令的執行結果


manual man

  • man手冊各章節信息: 
    1、用戶命令 
    2、系統調用 
    3、c庫調用 
    4、設備文件或特殊文件 
    5、配置文件格式 
    6、游戲幫助 
    7、雜項 
    8、管理命令 
    9、linux內核API


文件系統

  • 文件和目錄被組織成單根倒置樹結構 
    文件從根目錄開始,用/表示 
    根文件系統:root filesystem 
    文件名嚴格區分大小寫(標準的linux文件系統): 
    以.開頭的文件為隱藏文件 
    路徑分隔符 / 
    數據類型有兩類 
    元數據:metadata:文件的各種屬性,訪問時間atime,修改時間mtime等等 
    數據:data:文件的真實存儲內容 
    文件系統分層結構:LSB linux standard base 
    FHS:FILFsystem Hierarchy standard。 
    http://www.pathname.com/fhs/

文件名規則

  • 文件名最長255個字節 
    包括路徑在內文件名最長4095節 
    藍色–>目錄 綠色–>可執行文件 紅色–>壓縮文件 淺藍色–>鏈接文件 灰色–>其他文件 粉色–>套接字文件 
    除了斜杠和nul,所有字符都有效,但使用特效字符的目錄名和文件不推薦使用,有些字符需要用引號來引用它們。 
    標準linux文件系統如ext4,文件名稱大小寫敏感。


    linux文件類型

    • -,f普通文件 
      l,鏈接文件 
      b,塊設備文件 
      c,符號鏈接文件 
      p,管道文件 
      s,套接字文件 
      d,目錄文件

文件系統結構

  • /boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader,grub)都存放于此目錄 
    /bin:所有用戶使用的基本命令:不能關聯至獨立分區,OS啟動即會用到的程序 
    /sbin:管理類的命令,不能關聯至獨立分區,OS啟動即會用到的命令, 
    /lib:啟動時程序依賴的基本共享文件以及內核模塊文件/lib/modudles 
    /lib64,專用于64位系統上輔助的共享庫文件存放位置 
    /etc 配置文件目錄 
    /home/username 普通用戶家目錄 
    /root 管理員的家目錄 
    /media:便攜式移動設備掛載點 
    /mnt 臨時文件系統掛載點 
    /dev 設備文件及特殊文件存儲位置 
    b:block device,隨機訪問 
    c:character device,線性訪問 
    /opt 第三方應用程序的安裝位置 
    /srv 系統上運行的服務用到的數據 
    /tmp 臨時文件存儲 
    /usr 全局共享只讀數據存儲路徑 
    bin 保證系統擁有完整的功能提供的應用程序 
    sbin 
    lib 
    lib64 
    include c程序的開頭文件 
    share:結構化獨立的數據, 
    local:第三方應用程序的安裝位置 
    bin,sbin,lib,lib64,etc share 
    /var:數據經常發生變化的目錄存放地 
    cache:應用程序緩存數據目錄 
    lib:應用程序狀態信息數據 
    local:專用于為/usr/local下的應用程序存儲可變數據; 
    lock:鎖文件 
    log:日志目錄及文件 
    opt:專用于為/opt下的應用程序存儲可變數據 
    run:運行中的進程相關數據,通常用于存儲進程pid文件 
    spool 應用程序數據池 
    tmp:保存系統兩次重啟之間產生的臨時數據 
    /proc:用于輸出內核與進程信息相關的虛擬文件系統 
    /sys:用于輸出當前系統上硬件設備相關信息虛擬文件系統 
    /selinux:security enhanced linux,selinux相關的安全策略等信息的存儲位置

文件通配符

  • *匹配零個或多個字符 
    ?匹配任何單個字符 
    ~ 當前用戶家目錄 
    ~username指定用戶家目錄 
    ~+當前工作目錄 
    ~-前一個工作目錄 
    [0-9]:匹配范圍內的字符 
    [a-z]:匹配a-z,A-Z其中一個 
    [A-Z]:匹配A-Z,b-z其中一個,按 
    [^xxx]匹配指定范圍外的字符

* man 7 glob*

  • [[:digit:]] 任意數字 
    [[:lower:]] 任意小寫字母 
    [[:upper:]] 任意大寫字母 
    [[:alpha:]] 任意大小寫字母 
    [[:alnum:]] 任意數字或字母 
    [[:punct:]] 標點符號 
    [[:space:]] 水平或垂直空白字符 
    [[:blank:]] 水平空白字符 
    [[:print:]] 可打印字符 
    [[:cntrl:]] 控制字符,非打印字符 
    [[:graph:]] 圖形字符 
    [[:xdigit:]] 十六進制字符

二、一些基礎命令

注:某些命令可以不帶選項參數而直接執行


cat – concatenate files and print on the standard out‐put。查看文本文件和打印至標準輸出。 
cat [OPTION]… [FILE].. 
options: 
-E:顯示行結束符 
-n:顯示行號 

examples:
    cat /proc/cpuinfo:查看cpu信息(lscpu也可查看)
    cat /proc/partitions 查看分區信息
    cat /proc/meminfo 查看內存信息 (free也可查看)
    cat /proc/swaps 查看交換分區信息

uname:顯示系統信息 
uname [OPTION].. 
options: 
-s:顯示內核名稱 
-n:顯示主機名稱 
-r:顯示內核信息 


df:顯示系統磁盤空間使用情況 
df [OPTION]… [FILE].. 
-a,–all:虛擬文件系統也一起顯示 
-i,–inodes,顯示inode使用情況而不是磁盤塊使用情況。 
-h,–human-readable,單位轉換 
..


whoami 顯示當前終端的登錄用戶 
whoami [OPTION] 
options: 
–version:顯示版本信息并回到輸入命名時的shell環境。


tty:顯示當前鏈接系統的終端名 
tty [OPTION]… 
–version:顯示版本信息并回到輸入命名時的shell環境。


who:顯示所有登錄到該系統的終端信息。 
who [OPTION]… [ FILE | ARG1 ARG2] 
-b:顯示最近一次登錄系統的時間 
-r:顯示系統當前的默認運行級別 


w:顯示登錄系統的用戶信息及其執行的操作 
w [options] user […] 
options: 
-s,–short:使用短格式,不顯示登錄時間等等 
-V,顯示w命令的版本信息


shutdown:關機、重啟、等 
shutdown [OPTIONS…] [TIME] [WALL…] 
options: 
-h:關機 
-r:重啟 
-c:取消上述操作 
TIME: 
hh:mm:指定特定時間 
+mm/hh:指定當前時間推遲多少時間 
WALL: 
“告知各個用戶即將關機的信息,自己決定寫什么”


poweroff:關閉電源 
reboot:重啟


file: 判定文件類型 
file [options] file


gedit /etc/gdm/custom.conf 
# “手動輸入兩行” 
[dameon] 
AutomaticLoginEnable=True 
AutomaticLogin=root 
[security] 
#通過上述操作可以自動進入系統而不用輸入賬號密碼

runlevel:顯示系統改變前和當前的默認運行級別

file:創建空文件


echo:顯示文本信息 
echo [SHORT-OPTION]… [STRING].. 
echo LONG-OPTION

  • options: 
    -n,不進行換行 
    -E 不對轉義字符進行轉義 
    -e,使轉義字符生效 
    \a 發出警告聲 
    \e 退格鍵,將后面的字符退后一個 
    \n 換行且光標移動到行首 
    \r 回車,即光標移動至行首,但不換行 
    \t tab鍵位 
    \ 插入\字符 
    \onnn 插入nnn代表的八進制的ASCII字符 
    \xHH插入HH所代表的ASCII字符

    hostname:顯示主機名

cat /etc/DIR_COLORS 可以查閱shell下一些顏色的設置


type command 查看命令是內部還是外部 
外部命令:有專門的文件路徑,builtin 
內部命令:集成在shell內部


enable:查看和設定內部命令是否可用 
enable [options] [command] 
enable -n command 禁用內部命令 
enable command啟用內部命令 
enable -n 查看禁用的內部命令列表


hash:查看hash緩存 
hash [options] [name] 
hash -l 顯示hash緩存,可作為輸入使用 
hash -d name 清除指定緩存 
hash -r 清除所有緩存 
hash -p path name :給hash緩存設置別名 
hash -t name 打印緩存中name的路徑


which :顯示shell命令的路徑全名 
which [options] [–] programname […] 
-a:顯示所有與name相關的命令路徑 
–skip-alias 忽略別名


alias:定義與查看別面名 
定義別名:alias name=’comand’ 
取消別名:unalias name


ls:顯示目錄文件 
ls [options]..[file].. 
options: 
-a:顯示所有文件包括隱藏 
-A:顯示所有文件不包括.和.. 
-l:顯示長格式信息,文件的相關屬性 
-d:顯示指定目錄的信息,而不顯示他的子目錄信息。 
..


date:顯示系統時間 
date [OPTION]… [+FORMAT]

  • options: 
    -d,–date=string 指定日期以顯示時間 
    .. 
    FORMAT: 
    %A:完整的星期名稱(e.g..,Sunday) 
    %a:簡寫的星期名稱 (e.g..,Sun) 
    %F:完整的年月日 
    %T:完整的時分秒 
    %H:小時 
    %M:分鐘 
    %S:秒 
    %y:簡寫的年 
    %Y:完整的年 
    %m:月 
    %d:日 
    … 
    example: 
    date MMDDHHMM[cc[yy]].[ss]

hwclock ,clock顯示硬件時間 
-s, –hctosys 以硬件為基準設置系統時間 
-w, –systohc以系統時間為基準設置硬件時間


cal:顯示日歷


screen:(可以實現多個用戶共同操作,需要建立在多個用戶連接到同一主機的情況) 
建立新screen會話

  • screen -S [session] 
    加入screen會話: 
    screen -x [session] 
    退出并關閉screen會話: 
    exit 
    剝離當前screen會話 
    Ctrl+a,d 
    顯示已打開的screen 會話 
    Ctrl -ls 
    恢復某screen會話 
    Ctrl -r [session]

whatis:顯示命令的簡短描述 
whatis [options] name


history:查看命令歷史,保存你輸入的命令歷史

  • history [option] 
    -c:清空命令歷史 
    -d:刪除歷史列表中指定的命令 
    #:顯示最近的#條歷史 
    -a: 追加本次會話新執行的命令列表至歷史文件 
    -n:讀取歷史文件中未讀過的行到歷史列表 
    -r:讀取歷史文件附加到歷史列表 
    -w:保存歷史列表到指定的歷史文件 
    -p:展開歷史參數成多行,但不存在歷史列表中 
    -s:展開歷史參數成一行,附加在歷史列表后

    登錄shell時,加載~/.bash_history文件中的歷史記錄

調用上一個命令的最后一個參數 
!$ 
esc 松手 . 
alt 同時 .


一些快捷操作

  • ctrl + l 清屏,相當于clear命令 
    ctrl + o 執行當前命令,并重新顯示本命令 
    ctrl + S 阻止屏幕輸出,鎖定 
    ctrl + q 允許屏幕輸出,鎖定 
    ctrl + c 終止命令 
    ctrl + z 掛起命令 
    ctrl + a 移動到命令行首 
    ctrl + e 移動到命令行尾 
    ctrl + f 按字符前移 右向 
    ctrl + b 按字符后移,左向 
    alt + f 按單詞前移 右向 
    alt + b 按單詞后移 左向 
    ctrl + u 從光標處刪除至命令行首 
    ctrl + k 從光標處刪除至命令行尾 
    Ctrl + w從光標處向左刪除至單詞首 
    Alt + d從光標處向右刪除至字尾 
    Ctrl + d刪除光標處的字符 
    Ctrl + h刪除光標前的字符 
    Ctrl + y將刪除的字符粘貼至光標后 
    Alt + c從光標處更改為首字母大寫的單詞 
    ? Alt + u從光標處更改為全部大寫的單詞 
    Alt + l從光標處更改為全部小寫的單詞 
    Ctrl + t交換光標處和之前的字符 
    Alt + t交換光標處和之前的單詞 
    Alt + N提示輸入指定字符后,重復顯示該字符N次 
    注意:Alt快捷鍵較少使用,因為常常和編輯器沖突

pwd:顯示當前所處的工作目錄 
-P:顯示真實物理路徑 
-L:顯示鏈接路徑(默認)


cd 改變當前工作目錄 
-P 切換到真實物理路徑,而不是鏈接路徑 
-在當前工作和前一次的工作目錄之間切換 
~,回到家目錄 
~username,回到指定用戶的家目錄 
PWD,存放當前工作目錄的變量 
OLDPWD,存放上一次工作目錄的變量


touch創建空文件或者修改timestap,默認三種類型時間戳都修改 
touch -a 僅改變atime和ctime 
-m 改變mtime和ctime 
-t stamp 修改時間戳 
CCYYMMDDhhmm.ss 
-c 如果文件不存在,則不創建文件


cp 復制文件和目錄 
cp – copy files and directories 
cp [OPTION]… [-T] SOURCE DEST 
cp [OPTION]… SOURCE… DIRECTORY 
cp [OPTION]… -t DIRECTORY SOURCE…

  • options 
    -i 交互式 
    -r,-R遞歸復制 
    -d,不復制源文件,而僅僅復制符號鏈接本身 
    -a 歸檔,相當于-dR –preserv=all 
    –preserv[=ATTR_LIST] 
    mode:權限 
    ownership:屬主屬組 
    timestamp:時間戳 
    links 鏈接 
    xattr 隱藏屬性 
    -p :=–preserv=mode,ownership,timestamp 
    -v:顯示詳細信息 
    -f:–force

    如果對一個目錄擁有寫權限,則可以對目錄內的文件進行增加刪除操作。

mv – move (rename) files 
mv [OPTION]… [-T] SOURCE DEST 
mv [OPTION]… SOURCE… DIRECTORY 
mv [OPTION]… -t DIRECTORY SOURCE… 
移動文件

  • options: 
    -i 交互式 
    -f 強制

rm – remove files or directories 
rm [OPTION]… FILE..

  • -i 交互式 
    -f 強制刪除 
    -r 遞歸 
    –no-preserve–root

    > /some/file 在文件被其他進程占用的情況下,清空該文件內容,釋放存儲空間。

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

(0)
switchswitch
上一篇 2017-02-18
下一篇 2017-02-18

相關推薦

  • MapReduce數據流

    Hadoop的核心組件在一起工作時如下圖所示: 圖4.4高層MapReduce工作流水線   MapReduce的輸入一般來自HDFS中的文件,這些文件分布存儲在集群內的節點上。運行一個MapReduce程序會在集群的許多節點甚至所有節點上運行mapping任務,每一個mapping任務都是平等的:mappers沒有特定“標識物”與其關聯。因此,任意的map…

    Linux干貨 2015-05-13
  • 網絡接口Bonding以及網絡組

    網絡接口Bonding就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 網絡組 :網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量。網絡組不同于舊版中bonding技術,提供更好的性能…

    Linux干貨 2016-11-23
  • Linux磁盤配額

    磁盤配額 什么是磁盤配額? 磁盤配額(Quota)是Linux系統中由于是多用戶、多任務的環境,所以會有多用戶共同使用一個硬盤空間的情況發生,如果其中少數幾個用戶大量占掉了磁盤空間的話,那肯定影響其他用戶的使用權限。因此我們就需要對每個用戶限制硬盤使用空間,來避免此種情況的發生,這就是磁盤配額。 Quota的一般用途: *針對WWW server,例如:每個…

    Linux干貨 2016-09-01
  • 基于通用二進制格式安裝mysql

    實驗環境: Linux主機:centos6.8 mysql二進制格式包:mysql-5.5.52-linux2.6-x86_64.tar.gz 1、解壓包到特定目錄 [root@centos6 ~]# tar xf mysql-5.5.52-linux2.6-x86_64.tar.gz -C /us…

    Linux干貨 2016-10-29
  • Net-25第5周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; grep -E "^[[:space:]]+" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; grep&nbsp…

    Linux干貨 2017-01-03
  • 創建LVM分區實例

                         內容概述   LVM邏輯卷的定義                       &nbsp…

    2017-06-25
欧美性久久久久