1. 程式人生 > >Linux入門(二)

Linux入門(二)

man linux終端 linux發行版本 linux文件系統初步 google高級用法

Linux常用的基礎命令

1.發行版本

2.CISC、RISC

3.編譯和反編譯(GPL、LGPL、BSD)

4.程序包管理

5.文件系統初步

終端設備

虛擬終端

圖形終端

串行終端

偽終端

Linux的哲學思想

6.開源協議GPL、LGPL、BSD、Apache

7.獲取命令的幫助

help內建命令

man命令

info在線幫助文檔

官方文檔

搜索引擎

8.google的高級用法


Linux常用的基礎命令

1.發行版本:

linux主要發行版:

debian:ubuntu,knopix

slackware:suse,opensuse

redhat:RHEL,fedora桌面版,centos

GNU/Linux ,GNU提供各種應用,

通常以源代碼(文本)方式提供:

自由、靈活

編譯器:源代碼--->二進制

Unix主要發行版:

HP:HPUX

MAC OS

IBM:AIX

Linux基礎:指令集是不同的

2.cpu架構

//主要分為CISC,RISC

CISC:{復雜指令集計算機}就是復雜指令集計算機,目前專指x86和x86_64兩類

RISC:{精簡指令集計算機}

X86-64:又叫AMD64,他的Intel版本叫做EM64T

現在基本上都是RISC,但是能夠接受CISC的復雜指令,也就是說這兩個趨於融合

x86 :

x64(amd64) :兼容x86

m6800,m68k:另外一種,機器的語言,

ultraparc ,solaris

arm:移動終端設備,最常用的CPU,設計上的,例如高通,華為,三星的

power //IBM的CPU,性能非常強悍,價格也非常高

powerpc //簡裝版的power

現在是可以在intel的cpu上安裝mac的,早期的mac使用的是power

HP:alpha,hp-ux

交叉編譯cross compile:告訴編譯器,程序編譯的時候,編譯到另外一個平臺

例如在x86的平臺上,編寫的軟件,編譯成在power上運行的軟件

-----------------

|程序員

-----------------

| 庫 | | //庫調用,把一些通用的system call封裝

-----------------

| kernel | //system call

-----------------

{powerpc,x86,arm}

//但是不同的OS,使用的庫是不同的,例如windows和linux的庫是不同的

//posix:portable 可移植的 system interface,規範了API

//API:應用程序接口,程序員的編程接口,除非遵循了posix才是兼容來的

//ABI:應用二進制接口,

例如nginx在linux上編譯,可以在linux上運行,在windows上編譯,可以在win上運行 //因為都遵循posix

但是一旦編譯完成後,就不兼容了

ABI 允許編譯好的目標代碼在使用兼容ABI的系統中,無需改動就能運行。

//編譯好後,可以直接在遵循該api的其他的平臺上運行

API 同樣的代碼可以在支持這個API的任何系統中編譯,

//例如nginx可以在windows中編譯,也可以在linux中編譯

Unix類的系統:

Linux,BSD,AIX,......Unix-like

Unix類的系統;

API://這一類的系統,在一個系統上編譯好的,也可以在另外一個系統上運行

ABI:

3.編譯和反編譯:

閉源:windows,不給你源代碼,也不會讓你輕易反編譯成功(加殼,加密)

開源:提供源代碼,//中間提供了漏洞,我是不保證的,

//你可以買我的服務,我保證你的。

//提供開源軟件的人的收入:{提供該軟件的服務支持,捐贈}

//很多大型公司,不必自己建立一個開發團隊,捐贈來支持,作者的後續努力

GPL:general public license

只要遵循GPL協定,那麽他的版權屬於GPL

任何其他人,只要參考了GPL程序,就必須遵循GPL協定,必須開源和免費

copyright,copyleft使用

linux的內核是支持GPL協定的

//這樣反而阻礙了GPL的發展

LGPL:lesser GPL更少要求的GPL協定

//調用我的庫接口的話,可以不開源

//GPLv2,GPLv3

FSF:free software foundation基金會負責

BSD:

Apache://這兩個都差不多

在做商業宣傳的時候,只要不以原作者的名義做宣傳就可以

ASF:apache software foundation基金會

雙線授權:

社區版:遵循開源協議,GPL或者BSD

商業授權:商業版本,不開源


4.程序包管理:

程序的組成部分:

二進制程序

配置文件

庫文件

幫助文件

程序包管理器:

x:

程序的組成文件打包成一個或有限幾個文件

安裝:把文件放到指定位置,

卸載:

//程序包管理器,是記錄了安裝的程序,以及生成的文件的所在地

debian:dpkg包管理器,apt-get

Redhat:RPM包管理器,yum,rpm//新版本叫做dnf

suse:rpm包管理,zypper前端工具

archlinux:port包管理

有專門的包轉換工具,但是一般作者都會提供兩種格式的包

Gentoo:安裝很難,很多需要編譯的

LFS:linux from scratch//從零構建linux

一本書,編譯安裝指南,拼湊成一個發行版本

//每一個程序運行的時候,都需要獨占硬件,後來為了讓多個程序同時運行

//把計算機的各種資源切割了,

CPU復用:按照時序,時間片

內存:空間切割復用

硬盤:空間復用

IO:時序復用

//從這個角度來說,OS其實就是一個虛擬機

虛擬化軟件程序:

vmware workstation:

virtualbox:SUN公司的

miscrosoft:Hyper-V

使用cobbler安裝linux //教師內部網絡

CD/DVD使用物理驅動器:自動檢測

只要網卡設置為橋接網卡,會自動連接cobbler

全程自動安裝:

root:mageedu

終端:terminal

centos7使用

localectl set-locale LANG=zh_CN.utf8=zh_CN.gb2312

locale //查看字符集

使用cobbler實現linux自動安裝:

http://blog.csdn.net/liangliangdetianxia/article/details/37605787

http://www.osyunwei.com/archives/7606.html


5.文件系統初步

硬盤大小:120G以上

網卡:橋接

vmware :編輯-->虛擬網絡編輯器-->編輯需要橋接的網卡

終端:terminal

用戶界面:

GUI:GNome KDE

bash,zsh,csh,tcsh,ksh

ssh協議:secure shell:

ss -tnl

查看系統是否監聽tcp協議的22號端口

ip addr list

ifconfig //查看ip地址

1.啟動或者關閉防火墻:

centos7 :

systemctl stop/start firewalld.service

systemctl disable/enable firewalld.service

centos6:

service iptables stop/start

chkconfig iptables on/off

iptables -F

2.查看自己的shell

echo $SHELL

3.終端設備:

多任務,多用戶

物理終端:控制臺,console//只在系統啟動的時候用

//當系統啟動之後,就會虛擬出多個虛擬終端

虛擬終端:tty,pts{xshell使用,圖形界面右鍵terminal} //默認驅動6個虛擬終端

ctrl+alt+f{1,2,,,6}

圖形終端://可以啟動多個

Centos 6:

ctrl+ALT+F7 //圖形終端

centos 7:

在哪個虛擬終端啟動,即位於哪個虛擬終端

串行終端{ttys}:

偽終端{pty}:例如通過ssh,telnet連接近來的

桌面右鍵:Konsole也是偽終端

4.linux的哲學思想之一:一切皆文件

表現之一:硬件設備也通過文件表示

物理終端:/dev/console

虛擬終端:/dev/tty{1-6}

圖形終端:tty7

串行終端:/dev/ttyS#

偽終端:/dev/pts/#{xshell,右鍵} //#代表一個數字

tty //查看自己使用的tty

註意:在啟動設備之後,在其上關聯一個用戶接口程序

即可實現與用戶交互

啟動GUI:startx

-------------

|1|2|3|.... //應用程序,其中shell是必須的

-----------

|庫 | //有的程序,不調用庫,直接交互內核

----------------|

|內核 |

----------------|

|硬件 |

-----------------

//用戶通過shell去管理其他程序

shell{庫{內核{硬件}}}

5.[[email protected] ~]# //prompt:提示符

~ 用戶家目錄 //工作{current,working}目錄

root 主機名

MT 主機名

# 管理員

$ 普通用戶

建議使用非管理賬號登錄,然後切換

echo $PS1 //查看命令提示符

ctrl +c //終止

//命令寫完了,但是不想執行該命令,也可以使用ctrl+C

6.常見命令

systemtl poweroff //CentOS 7的命令

poweroff //斷電

systemctl reboot

reboot

shutdown

halt

自由:

自由學習和修改:自由使用:自由分發:自由創建延伸板

debian之後又ubuntu,RHEL之後有CentOS,但是無能為力因為GPL

Linux的哲學思想:

1.一切皆文件

把所有的資源統統抽象為文件形式,包括硬件設備,甚至通信接口等

對文件的操作:open(),read(),write(),close(),delete(),create()

2.由眾多功能單一的程序組成:一個程序只做一件事,並且做好

組合小程序,完成復雜任務

3.盡量避免和用戶交互

目標:易於以編程的方式實現自動化任務

4.使用文本文件保存配置信息

7.文件是什麽,眾多文件如何有效組織起來

目錄:路徑映射

文件:磁盤上的一段數據流 對數據可以做到按名存取 //右邊界

文件系統:由目錄映射的各種路徑,是一種層級結構,有索引

/dev/pts/2 //一級一級映射的關系,所有的文件都從屬於 /

/ 原始起點:根目錄

第二層:子目錄,

第三層:

倒置的樹狀結構

文件系統:層級結構,有索引

/dev/pts/2

最左側/:表示根目錄

其他的/:表示路徑分隔符

linux的路徑分隔符 /

windows的分隔符 \

文件的路徑表示:

絕對路徑:從跟開始

相對路徑:從當前位置開始

./當前目錄

../ 父目錄

pwd 查看路徑

dirname 查看文件的絕對路徑

basename 查看文件的名字

用戶的家目錄:

用戶的起始目錄:普通用戶管理文件的位置

工作目錄:隨時變化

/etc/sysconfig/network-scripts/ifcfg-eno16777736

basename:ifcfg-eno16777736

dirname: /etc/sysconfig/network-scripts

小結:

1.物理終端console,圖形終端tty7,偽終端pts,虛擬終端tty1-6,串行終端ttyS

2.dirname,basename

3.pwd

6.開源協議:

GPL,LGPL,BSD,Apache

代碼的共產主義運動

BSD:

1.如果二次發布的產品中包含源代碼,則在源代碼中必須帶有原來的

代碼中的BSD協定

2.如果二次發布產品是二進制格式的,庫或者程序,則需要在

發布的文檔或者版權聲明中,說明包含原來的代碼中的BSD協定

3.不可以用開源代碼作者或組織,以及保護的產品的名字做市場推廣

文件系統、文件,目錄:

倒置的樹樁結構

目錄:

文件:

文件名:嚴格區分大小寫,路徑分隔符 /

路徑:

絕對路徑:從跟開始

相對路徑:從當前位置開始

程序的組成部分:二進制文件,庫文件,幫助文件,配置文件,

二進制、庫文件:可執行文件

//庫文件,只能在被調用的時候執行。

配置文件,幫助文件:可被查看其內容的文件

人機交互界面:

GUI:

CLI:

[email protected] workdir}#

Linux的基礎知識:

命令的語法通用格式:

COMMAND OPTIONS ARGUMENTS

命令:發起一個命令,請求內核將某個二進制程序運行為一個進程

程序:-->進程

靜態:-->動態(有生命周期)

命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用庫文件,有可能會調用共享庫文件

多數程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin

普通命令:/bin,/usr/bin,/usr/local/bin

特權命令:/sbin,/usr/sbin,/usr/local/sbin

共享庫:/lib,/lib64,/usr/{lib,lib64},/usr/local/{lib,lib64}

32bit庫,64bit庫

命令必須遵循特定的規範,格式規範

.exe,.si,ELF(Linux)

file /bin/ls //查看遵循的命令格式

註意:並非所有的命令,都有一個在某目與之對應的可執行程序文件

命令分類:

由shell程序的自帶的命令:內置命令(builtin)

獨立的可執行程序文件:文件名即命令名:外部命令

1.PATH變量

shell程序是一個獨特的程序:負責解析用戶提供的命令

環境變量:PATH //自左往右,找到就挺停

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

查看命令類型:

type type //查看是否為內置命令

which type //找不到路徑,因為他是shell內置的命令

2.OPTIONS :指定命令的運行特性

ls -l /var/

選項的兩種表現形式:

短選項:- //可以合並

例如:-l,-d

長選項:-- //不可合並

例如:--help,--human-readable

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

短選項的參數:一般空格分割

長選項:一般 = 等於

如果同一命令同時使用多個短選項,多數可合並:-l,-d

ls -l -d /var

ls -ld /var

3.arguments

命令的作用對象:

註意:不同的命令的參數,有些命令可同時帶多個參數

多個之間以空白符分割

例如: ls -ld /var /etc


7.獲取命令的使用幫助(man)

內部命令:內建命令

help COMMMAND //help type

//修改LANG可以修改幫助信息

外部命令:

(1) 命令自帶簡要格式的幫助

COMMAND --help //ls --help

(2) 使用手冊

位置:/usr/share/man

man 命令即可

whatis localectl //查看該文件的幫助信息

SECTION:

NAME:功能說明

SYNOPSIS:語法格式

DESCRIPTION:描述

OPTIONS:選項

EXAMPLES:使用示例

AUTHOR:作者

BUGS:報告程序bug的方式

SEE ALSO:參考

...

SYNOPSIS:語法格式

[] 可選內容

《 》 必須提供的內容//小於和大於

a|b|c 多選一

...同類內容可出現多個

{} 輔助性的標識

使用手冊:壓縮格式的文件,有章節之分;

/usr/share/man

man1,man2

1:用戶命令,普通用戶可以運行的命令

2:系統調用,

3:C庫調用

4:設備文件及特殊文件

5:文件格式:(配置文件格式)

6:遊戲使用幫助

7:雜項

8:管理工具及守護進程

1 Executable programs or shell commands

2 System calls (functions provided by the kernel)

3 Library calls (functions within program libraries)

4 Special files (usually found in /dev)

5 File formats and conventions eg /etc/passwd

6 Games

7 Miscellaneous (including macro packages and conventions),

e.g. man(7), groff(7)

8 System administration commands (usually only for root)

9 Kernel routines [Non standard] ///內核例行公式,慣例

註意:並非每個COMMAND在所有章節下都有手冊

whatis COMMAND //查看幫助章節

whatis :是查詢數據庫進行的

makewhatis //更新數據庫

mandb //在centos7上更新,man數據庫

5.man命令打開手冊之後的操作方法

翻屏:

空格 b //一個屏幕,上下

ctrl + d 向尾部翻半屏

ctrl + u 回翻

回車 或者 j:一行

k:向上

G:最後一行

3G:跳轉到指定行

文本搜索:

/keyword 向下搜索,當前位置,不區分大小寫

?keyword 向上搜索,當年位置,無大小寫

n :與 查找命令方向相同

N:與查找命令方向相反

man -M /PATH/TO/SOMEWHERE :到指定目錄下去查看命令手冊並打開之

6.info COMMAND

獲取命令的在線文檔

7.很多應用程序會自帶幫助文檔:

/usr/share/doc/APP-VERSION

README:程序的相關的信息

INSTALL:安裝幫助

CHANGES:程序隨著版本更新,發生的改變

8.官方文檔

主流發行版官方文檔

http://www.redhat.com/doc

9.程序官方的文檔

官方站點上的“Document ”

Google

centos filetype:pdf //查看所有的pdf文檔

10.搜索引擎:

google

zabbix site:baidu.com

zabbix filetype:pdf


書籍的出版社:

O‘Reiley

Wrox

機械工業出版社、電子工業、人郵、清華大學、水利水電

寫書要像老外一樣具有責任感:

8、google的高級用法

1.centos filetype:pdf,ps,dwf, kml, kmz, doc,xls,ppt,rtf,swf,all(所有上面的文檔格式)。

2.大熊貓 -百科 //空格 -排除關鍵詞

3.大熊貓 +百科 //必須出現

4.~搜索 //類似搜索

5.國家*匹夫* //統配

6.奧運會 2014 OR 2016 //或者and,or,not

7.手機 價格2000..5000

搜索結果中會出現價格是2000元至5000元的手機相關信息

8.zabbix site:baidu.com

9.視頻教程 inurl:video //在URL中出現video

10.出國留學 intitle:美國 //在網頁標題中出現

11.related:baidu.com //和百度相關的網站

小結:

1.BSD隨便商用,得說是BSD的,但是不能說我的名字

2.幫助 // whatis ls ;makedb 更新數據庫

help 內建命令

--help

man COMMAND

info COMMAND //在線幫助文檔

/usr/share/doc

該軟件的在線幫助信息

google

3.打開手冊之後的使用方法

整個屏幕:空格| b

半個屏幕:ctrl + d/u

一行:j/k

定行:#G

4.google的高級用法

aa +/-

fietype:pdf

zabbix 論文 or 設計


Linux入門(二)