Linux基礎知識一:
1、Unix的變種:
BSD:FreeBSD、OpenBSD、NetBSD;
SystemI SystemII SystemIII SystemIV SystemV等.
2、GNU:GNU is Not Unix,一個發布自由軟體的組織.
3、GPL:(General Public License)通用公共許可證,其特徵如下:
1】軟體的源代碼可以任意地被下載、修改和重新向外發布.
2】遵循GPL約定的程序在修改後反饋給GNU組織,將它的任何改變都開源出來.
GPL現有三個版本:GPL、GPLv2、GPLv3.
4、LGPL:比較鬆散的GPL,即不使用帶GPL約定的軟體的源代碼,只是通過介面來調用庫,該些軟體可以不開源.
5、Linux的發行商:將Linux的內核和各種GNU的軟體在通用的架構上編譯好,可以直接運行.
1】Slackware,比較老的.
2】RedHat(商業組織)
Fedora,社區維護的個人版.
CentOS(Community ENTerprise Operation System),社區維護的企業版Linux操作系統.
3】SUSE(Novell收購了,Novell為商業組織)
OpenSUSE(開源的)
4】Debian(社區版)
Ubuntu
Mint(基於Ubuntu的)
5】Gentoo(源代碼發行的版本)
6】LFS:Linux From Scratch(從零構建Linux)
6、GCC:GNU C Complier,GNU組織的C語言編譯器.
7、redhat不同版本支持的平台架構:(可以到官網上去查:http://www.redhat.com),操作系統的選擇跟硬體平台密切相關.
redhat 5.0不支持的平台架構:arm,mips,Ultrasparc.原因是:redhat考慮到各種平台的穩定性,不會支持所有的平台,但Linux實際上是支持很多種平台架構的.
redhat 6.0支持的平台架構:amd、 x86、x86-64、power、System Z、S/390等;
redhat 4.0和5.0支持的平台架構:amd、x86-64、x86、power、System Z、S/390、Itanium等;
8、linux的CLI介面:bash,ksh,csh,tcsh,zsh.
linux的GUI介面:Gnome,KDE.
9、控制台:
物理控制台:PC架構上,只能有一個物理控制台,物理控制台是實現虛擬控制台的基礎.
虛擬控制台:redhat上默認有6個虛擬控制台,通過ctrl alt F1-6實現不同虛擬控制台的切換./dev/tty1-6
圖形控制台:非第一次啟動使用ctrl alt F7;# startx &:首次啟動圖形控制台,該種情況指的是GUI的Gnome介面;KDE首次啟動圖形界面用:# startkde &.
模擬控制台(終端):在圖形界面下打開的終端或者通過遠程連接工具(例如Xshell)連接上的終端叫做模擬終端./dev/pts#
可以通過命令:" # tty "來查看該終端是何種終端.如果出現“/dev/pts/#”則表示連接的終端是模擬終端;如果出現“/dev/tty1-6”則表示是虛擬終端.
10、屏幕:同一個終端可以有多個屏幕.
# screen :啟動屏幕不同的屏幕.
11、Linux的哲學思想:
1】一切皆文件;
2】linux中充滿了很多體積小,目的單一的小程序組成;當需要完成複雜任務的時候,要組合某些小程序來共同完成.
3】儘可能避免捕獲用戶介面,即任何命令在執行的時候,不再和用戶進行交互.
4】通過配置文件保存程序的配置信息,配置文件通常是純文本文件.
12、linux的特徵:
1】linux嚴格區分大小寫;
2】Linux不以文件名後綴判斷文件類型.
3】Linux中以“.”開頭的是隱藏文件.
13、工作目錄:當前目錄;
主目錄:屬於用戶自己的,也叫用戶的家目錄;
14、現在的操作系統大都建立在文件系統基礎上.
15、文件路徑:操作系統上文件的組織方式.
16、# pwd 查看當前工作目錄;(print work directory)
# cd 切換到用戶的家目錄;(change directory)
# cd ~用戶名:切換到其他用戶名的家目錄中;
# cd - :上一個目錄與當前目錄的來回切換;
17、命令提示符:
#:管理員的命令提示符;
$:普通用戶的命令提示符;
18、[用戶@主機名稱 當前目錄] 例如:[root@station51 student].可以通過修改PS1變數來改變形式.通過# man bash 來查看相關選項.
19、# echo $SHELL:顯示當前的shell是哪個shell.
20、# command [options] [arguments]
options:選項,用來定義或者修正命令的執行方式;一般來說,選項使用橫線引導;選項有兩種:短選項,通常只有一個字元,使用一個橫線來引導;長選項,通常是一個完整意義的單詞或者單片語合,使用兩個橫線來引導.
arguments:參數,是命令的作用對象.當不帶參數的時候,意味著命令有默認作用對象.
21、# \ls :當命令前面加“\”表示執行的是命名本身,並不是命令的別名.
22、FHS:Linux的文件層次標準.
/bin:非管理類的可執行命令,普通用戶和管理員都可以使用的命令.
/sbin:管理類的可執行命令,通常只有管理員可以使用.(通常放在/bin和/sbin目錄下的文件是Linux為了啟動和正常運行需要用的可執行文件.)
/lib:存放的是系統級別的庫文件.
/etc:大多數可執行文件的配置文件的存放位置.
/etc/sysconfig:通常存放的是服務的額外配置文件及網路設備相關配置文件.
/etc/init.d/:通常存放的是服務的管理腳本.
/usr:系統的資源存放位置,相當於windows中的program files.
/usr/bin、/usr/sbin、/usr/etc、/usr/lib
/usr/local:通常用來安裝第三方軟體的路徑.
/usr/local/bin、/usr/local/sbin、/usr/local/etc、/usr/local/lib
/usr/include:存放頭文件的目錄.頭文件是把別人聲明的函數包含進當前程序.
/boot:引導文件存放的目錄.kernel、bootloader(即grub)都存放在該目錄下.
/dev:設備文件存放的目錄;
/home/username:用戶的家目錄;
/root:管理員的家目錄;(如果一個用戶沒有家目錄,則登錄操作系統后是處在根目錄下,則該用戶的私有信息就無處保存.)
lost found:表示一個分區,任何格式化成功的目錄下面都有該目錄,存放的是系統突然斷電時那些來不及保存的文件,當下次開機重啟后,從該目錄裡面找回.
/media,/mnt:系統默認使用的掛載點目錄.對Linux而言,任何一個存儲設備要想被訪問到,掛載到某一個已存在的目錄下.
/media:通常掛載的是攜帶型的設備;
/mnt:通常掛載的是固定存儲設備;
/misc:雜項文件存放位置;
/opt:可選目錄,但有些第三方軟體把此目錄當做默認安裝位置.
/proc:偽目錄,目錄中的文件是假的,通常放的是內核相關信息的映射.
/sys:偽目錄,目錄中的文件是假的,通常放的是類似磁碟這樣的存儲設備或某些匯流排設備的驅動程序相關屬性信息.
/srv:某些服務運行中中間文件的存放位置.
/tmp:臨時文件目錄.
/var:系統運行中所產生的數據和那些經常發生變化的文件的存放位置;
/var/log:日誌文件的存放位置.
/var/run:每一個服務的Pid文件的存放位置.
/var/mail:用戶尚未收取的郵件隊列.
23、用戶:許可權的集合,每一個用戶擁有一個uid.用戶存放在/etc/passwd.
1】管理員:root用戶.其id號為0.
2】系統用戶:該用戶不需要登錄,它是為系統上不屬於任何用戶的進程運行所使用的.其id號為1-499.
3】普通用戶:其id號>=500且小於等於65535.
進程:每一個進程的運行總是以某一個用戶的身份來運行的,即該進程擁有該用戶的許可權.
安全上下文:系統的運行是通過n個相互協調運行的進程實現的.
密碼:驗證用戶身份的憑證./etc/shadow
組:組是許可權的容器.可以將某一個許可權應用在組中的每一個用戶.每一個組有一個gid.組存放在/etc/group.
1】私有組:只有用戶一個.也叫某一個用戶的基本組.
2】系統組:系統用戶的組.
3】公共組:可以同時包含多個用戶.
組密碼:組密碼保存在/etc/gshadow.
24、/etc/passwd中記錄的格式: account:passwd:UID:GID:GECOS:directory:shell
25、當前系統的可用shell存放在:/etc/shells.
26、添加一個用戶:# useradd 用戶名;當添加一個用戶的時候,系統會將目錄/etc/skel裡面的文件直接複製到用戶的家目錄下面去./etc/skel裡面存放的是用戶的基本環境設置文件.
用戶自己更改個人密碼:# passwd;
管理員給用戶改密碼:# passwd 用戶名;
27、su - 用戶名:表示完全切換到某一個用戶的家目錄裡面.
28、useradd命令背後所執行的命令和步驟:
1)在/etc/passwd裡面添加一個用戶;
2)在/etc/shadow裡面添加該用戶的密碼,密碼通過# openssl passwd -1 -salt 八位的鹽 獲得;
3) 在/etc/group裡面添加該用戶的基本組;
4)將/etc/skel裡面的文件複製到用戶的家目錄下面,並遞歸修改這些文件的屬主和屬組;
29、useradd -u 用戶名:指定uid;
-g 用戶名: 指定gid,此前提是指定的組事先一定要存在;
-c "string":註釋說明,即GECOS的內容;
-d PATH:指定用戶的加目錄,此前提是用戶的家目錄事先不存在;
-s SHELL:指定shell;
-G group1,group2,group3……指定用戶的附加組;
-M 不創建家目錄;
-m 要創建家目錄;
-r 添加該用戶為系統用戶,系統用戶不需要家目錄,在/home下面沒有該用戶.
useradd 創建用戶的默認值是在文件/etc/default/useradd里.
/etc/default/useradd裡面的內容:GROUP,HOME,INACTIVE,EXPIRE,SHELL,SKEL,CREATE_MAIL_SPOOL.
useadd -D (修改/etc/defualt/useradd文件中的默認值,即GROUP,HOME,INACTIVE,EXPIRE,SHELL,SKEL,CREATE_MAIL_SPOOL的值.)
-b:改用戶的家目錄起始位置;
-e:改超時時間;
-f:改非活動時間,非活動時間即密碼過期多長時間用戶賬號將被禁用.
-g:改初始化gid;
-s:改默認shell類型.
30、/etc/group中的記錄的格式: 組名:組passwd(此處為密碼佔位符):GID:以此組作為附加組的用戶名稱列表.
/var/spool/mail/:該目錄裡面保存的是有郵筒的用戶名.
31、定義命令的別名:alias 別名="command"
撤銷別名:unalias 別名;撤銷別名.
32、腳本的執行:1)通過# chmod x 腳本名 ,賦予腳本執行許可權,再在腳本所在的目錄執行命令# 腳本名 即可.
2)通過 bash命令,即在腳本所在的目錄執行# bash 腳本名 即可.
33、規範腳本的寫法:
1)#!/bin/bash
#description:
#author:
#date:
#version:
#options:
2)注意縮進和註釋;
34、寫完腳本后,使用命令# bash -n 腳本名,來測試腳本有無語法錯誤.
35、腳本的執行流程主要由三種:選擇、循環和順序.
bash腳本中循環的方式通常有三種:for,while,until.
for循環用於指定循環次數已知的循環.
while和until都是通過條件來限制循環的次數.
bash腳本中for循環的格式如下:
for 變數 in 列表; do
statement1
statement2
…………
done
如何定義for循環中的列表?
1)簡單列出,一個一個的,以空格隔開;
2){1..10},表示從1到10;
3)`seq 1 10`
36、使用命令# wc -l 文件名,可以查看該文件總共有多少行,包括空白行.
37、seq 命令:用來顯示一串排列好的數字;
1)eg:# seq 2 7
2)eg:# seq -f g 2 7 (-f:定義seq顯示出來的數字的格式.)
eg: # seq -f %5.2f 23.1 33.1
eg: # seq -f %4.2f 23.1 -2 13
3)eg:# seq -s"@" 2 10 (-s:定義seq顯示出來的數字以什麼作為分隔符.)
4)eg:# seq -w 2 10 (-w:定義seq顯示出來的數字有相同的寬度.)
5)eg: # seq 2 2 10 (一次步進2個單位.)
[火星人 ] Linux基礎知識一已經有411次圍觀