linux 基礎

文件系統

a.目錄結構node

ls /
bin dev home lib lost+found mnt proc run selinux sys usr vmlinuz
boot etc initrd.img lib64 media opt root sbin srv tmp var

b.經常使用目錄介紹linux

/bin 全部用戶都能執行的命令
/dev 設備特殊文件
/etc 系統管理和配置文件
/home 用戶主目錄的基點
/sbin 系統管理員才能執行的命令
/tmp 公用的臨時文件存儲點
/root 系統管理員的主目錄
/mnt 系統提供這個目錄是讓用戶臨時掛載其餘的文件系統
/var 某些大文件的溢出區,比方說各類服務的日誌文件

c.簡單瞭解的目錄介紹正則表達式

/lib 標準程序設計庫
/lib64 標準程序設計庫
/lost+found 這個目錄平時是空的,系統非正常關機而留下恢復的文件
/proc 正在運行的內核信息映射
/sys 硬件設備的驅動程序信息
/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄
/usr/bin 衆多的應用程序
/boot 該目錄默認下存放的是Linux的啓動文件和內核
/media 掛載多媒體設備
/opt 第三方軟件在安裝時默認會找這個目錄,因此你沒有安裝此類軟件時它是空的

d. 文件和目錄shell

ls -l /etc/passwd
-rw-r--r-- 1 root root 1146 May 28 20:48 /etc/passwd
第一列:文件類型和權限
第二列:i節點,硬件鏈接數
第三列:用戶
第四列:用戶組
第五列:文件大小
第六列:最近一次修改時間mtime
第七列:文件或者目錄名

上面第一列: -rw-r--r--
1列:文件類型 (-普通文件, d目錄, l連接文件)
2-10列:用戶權限,用戶組權限,其餘人權限, 讀r(4),寫w(2),執行x(1)
rw- : 4+2+0=6
r-- : 4+0+0=4
r-- : 4+0+0=4
chmod 644 /etc/passwd

經常使用命令

man: 查詢幫助文檔
ls: 列出目前下的全部內容 (a, l)
cd: 變換工做目錄(~, . , .., -)
pwd: 顯示當前目錄
touch: 建立一個空文件或者改變建立時間
mkdir: 建立一個目錄(p)
rmdir: 刪除一個空目錄(p)
rm: 刪除文件和目錄 (rf)
cp: 複製文件和目錄(rf)
mv: 移動文件和目錄
cat: 顯示一個文件內容
head: 顯示文件前N行 (-n)
tail: 顯示文件後N行(-n)

less : 分屏顯示文件內容
wc: 統計計數 (l,w,m)
chmod:  給目錄設置權限(R)
chown:  修改目錄和文件用戶或者用戶組 (R)
chgrp: 修改目錄和文件用戶組(R)
which: 按路徑查找命令
whereis: 按資料庫查找命令
locate: 按文件包查詢
find: 按條件查詢
gzip: 壓縮和解壓文件(-n,d)
zcat: 查看gzip壓縮文件內容

zip: 以zip壓縮文件和目錄 (r)
unzip: 解壓zip文件
bzip2: 以bz2壓縮和解壓文件 (z,d) 
bzcat: 查看bz2壓縮文件內容
tar: 打包並壓縮文件(czvf, xzvf)
shutdown: 定時關機(-h 18:00, -r重啓)
halt: 關機
init: 切換運行級別(0關機)
poweroff: 關機
reboot: 重啓
history: 查看命令行歷史
grep: 使用正則表達式搜索文本

echo:  打印環境變量
export: 查看環境變量,或者聲明變量
clear: 清空屏幕
alias: 設置別名(alias cls='clear')
locale: 當前系統語言環境
sudo: 切換成root用戶運行
> : 輸入到文件 (locale > a.txt)
>> : 合併到文件末尾 (locale >> a.txt)
| : 管道過濾 (cat a.txt| grep en_US)
ln: 創建連接文件(s軟連接)
sh: 執行一個shell腳本
date: 查看當前系統時間
time:統計程序消耗時間

vi編輯器

a. vi的基本概念
基本上vi可分爲三種操做狀態,分別是命令模式(Command mode)、插入模式(Insert mode)和底線命令模式(Last line mode),ubuntu

  • Comand mode:控制屏幕光標的移動,字符或光標的刪除,移動複製某區段及進入Insert mode下,或者到Last line mode。安全

  • Insert mode:惟有在Insert mode下,纔可作文字數據輸入,按Esc等可回到Comand mode。服務器

  • Last line mode:將儲存文件或離開編輯器,也可設置編輯環境,如尋找字符串、列出行號等。網絡

b. 命令模式(Command mode)less

移動光標類命令:dom

h :光標左移一個字符 
l :光標右移一個字符 
space:光標右移一個字符 
Backspace:光標左移一個字符 
k或Ctrl+p:光標上移一行 
j或Ctrl+n :光標下移一行 
Enter :光標下移一行 
w或W :光標右移一個字至字首 
b或B :光標左移一個字至字首 
e或E :光標右移一個字至字尾 
) :光標移至句尾 
( :光標移至句首 
}:光標移至段落開頭 
{:光標移至段落結尾 
$:光標移至當前行尾

屏幕翻滾類命令

Ctrl+u:向文件首翻半屏 
Ctrl+d:向文件尾翻半屏 
Ctrl+f:向文件尾翻一屏 
Ctrl+b;向文件首翻一屏

插入文本類命令

i :在光標前 
I :在當前行首 
a:光標後 
A:在當前行尾 
o:在當前行之下新開一行 
O:在當前行之上新開一行

刪除命令

do:刪至行首 
d$:刪至行尾 
ndd:刪除當前行及其後n-1行

c. 插入模式(Insert mode)
編輯文本信息

d. 底線命令模式(Last line mode)

:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下 
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下 
:n1,n2 d :將n1行到n2行之間的內容刪除 
:w :保存當前文件 
:e filename:打開文件filename進行編輯 
:x:保存當前文件並退出 
:q:退出vi 
:q!:不保存文件並退出vi 
:!command:執行shell命令command 
:n1,n2 w!command:將文件中n1行至n2行的內容做爲command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容做爲command的輸入 
:r!command:將命令command的輸出結果放到當前行

用戶管理

useradd:命令用來創建用戶賬號和建立用戶的起始目錄。
passwd: 設定帳號的密碼
groupadd: 將新組加入系統
adduser: 增長用戶到sudo

groupadd hadoop 
useradd hadoop -g hadoop;
passwd hadoop 
adduser hadoop sudo
mkdir /home/hadoop 
chown -R hadoop:hadoop /home/hadoop

sudo: 切換到root執行命令
  sudo –i: 切換到root帳號

su: 切換其餘用戶      
who: 顯示系統中有哪些用戶登錄系統。
whoami: 顯示當前操做的用戶名

ls -l /etc/passwd
-rw-r--r-- 1 root root 1146 May 28 20:48 /etc/passwd

 磁盤管理

fdisk: 硬盤分區工具(l)
partprobe: 不重啓讓分區生效
mkfs: 格式化硬盤(-t ext4)

mount: 掛載分區
umount: 取消掛載分區

/etc/fstab:開機自動掛載
    /dev/vdb1        /home/cos/hadoop      ext4    defaults 0       0

df: 查看當前硬盤的使用狀況(ah)
du: 查看目錄下的文件夾大小(shd)

 網絡管理

a. 網絡配置

hostname: 顯示或修改主機名
/etc/hostname
    u1

/etc/hosts:配置主機名與ip的映射
    127.0.0.1       localhost
    127.0.1.1       u1

    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters

/etc/network/interfaces: 配置網卡信息
    auto lo
    iface lo inet loopback

    auto eth0
    #iface eth0 inet dhcp
    iface eth0 inet static
    address 192.168.1.200
    netmask 255.255.255.0
    gateway 192.168.1.1

/etc/init.d/networking restart: 重啓網絡配置

ifup eth0: 激活eth0網卡
ifdown eth0: 關閉eth0網卡

/etc/resolv.conf: DNS配置
    nameserver 192.168.1.1
    nameserver 8.8.8.8

b. 網絡命令

ping: 檢查主機網絡接口狀態
netstat: 檢查整個Linux網絡狀態。
route: 檢查本地路由信息
ifconfig: 檢查網卡的信息
nslookup:機器的IP地址和其對應的域名
dig:用於詢問DNS域名服務器的靈活的工具
traceroute:追蹤網絡數據包的路由途徑

8. 系統管理

a. 系統命令

ps: 檢查系統進程(aux)
kill: 指定進程ID殺進程(-9)
killall: 經過批量名字殺死進程(-9)
top: 查看系統運行狀態,以CPU佔用最高排序
free: 查看系統內存資源

b. 系統日誌

dmesg:dmesg用來顯示開機信息,kernel會將開機信息存儲在ring buffer。
/var/log/syslog: 查看系統日誌

 軟件包管理

a. dpkg
dpkg是Debian系統的後臺包管理器,相似RPM。也是Debian包管理系統的中流砥柱,負責安全卸載軟件包,配置,以及維護已安裝的軟件包。因爲ubuntu和Debian乃一脈相承,因此不少命令是不分彼此的。

dpkg -i package.deb 安裝包
dpkg -r package 刪除包
dpkg -P package 刪除包(包括配置文件)
dpkg -L package 列出與該包關聯的文件
dpkg -l package 顯示該包的版本
dpkg –unpack package.deb 解開 deb 包的內容
dpkg -S keyword 搜索所屬的包內容
dpkg -l 列出當前已安裝的包
dpkg -c package.deb 列出 deb 包的內容
dpkg –configure package 配置包

b. apt-get
apt-get是一條linux命令,適用於deb包管理式的操做系統,主要用於自動從互聯網的軟件倉庫中搜索、安裝、升級、卸載軟件或操做系統。是debian,ubuntu發行版的包管理工具,與紅帽中的yum工具很是相似。

軟件源:

/etc/apt/sources.list

deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
deb http://mirror.bjtu.edu.cn/cran/bin/linux/ubuntu precise/

命令:

apt-cache search :  (package 搜索包)
apt-cache show :  (package 獲取包的相關信息,如說明、大小、版本等)
sudo apt-get install : (package 安裝包)
sudo apt-get install : (package - - reinstall 從新安裝包)
sudo apt-get -f install : (強制安裝?#"-f = --fix-missing"當是修復安裝吧...)
sudo apt-get remove : (package 刪除包)
sudo apt-get remove --purge : (package 刪除包,包括刪除配置文件等)
sudo apt-get autoremove --purge : (package 刪除包及其依賴的軟件包+配置文件等(只對6.10有效,強烈推薦))
sudo apt-get update : 更新源
sudo apt-get upgrade : 更新已安裝的包
sudo apt-get dist-upgrade :升級系統
sudo apt-get dselect-upgrade :使用 dselect 升級
apt-cache depends : (package 瞭解使用依賴)
apt-cache rdepends : (package 瞭解某個具體的依賴?#當是查看該包被哪些包依賴吧...)
sudo apt-get build-dep : (package 安裝相關的編譯環境)
apt-get source : (package 下載該包的源代碼)
sudo apt-get clean && sudo apt-get autoclean :清理下載文件的存檔 && 只清理過期的包
sudo apt-get check :檢查是否有損壞的依賴

經常使用軟件

a. 遠程管理

telnet: 遠程登陸Linux主機
ssh: 遠程安全登陸Linux主機
scp: 基於ssh登錄進行安裝的遠程文件傳輸
ftp: 經過ftp協議遠程文件傳輸
wget: 經過http協議遠程文件下載

b. 程序編譯

./configure:是用來檢測你的安裝平臺的目標特徵的。configure是一個腳本,用來肯定所處系統的細節,好比使用何種編譯器、何種庫,以及編譯器和庫的保存位置,並把Makefile.in的相應部分進行替換,造成Makefile。
make: 是用來編譯的,它從Makefile中讀取指令,而後編譯。
make install: 是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。
make clean: 刪除臨時文件

c. 產生密鑰

ssh-keygen:產生SSH認證RSA密鑰
ssh 是一個專爲遠程登陸會話和其餘網絡服務提供安全性的協議。默認狀態下ssh連接是須要密碼認證的,能夠經過添加系統認證(即公鑰-私鑰)的修改,修改後系統間切換能夠避免密碼輸入和ssh認證.

~ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/conan/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/conan/.ssh/id_rsa.
Your public key has been saved in /home/conan/.ssh/id_rsa.pub.
The key fingerprint is:
40:9b:fe:ad:76:29:79:20:b5:7c:74:e4:c9:46:73:f1 conan@conan
The key's randomart image is:
+--[ RSA 2048]----+
|      .       .. |
|     . o    + .. |
|      +    = +  E|
|     . .. . *    |
|      .oSo o     |
|      ..+..      |
|       ..+..     |
|        +.+      |
|       ..+       |
+-----------------+

ls ~/.ssh
id_rsa  id_rsa.pub  known_hosts authorized_keys

id_rsa:私鑰
id_rsa.pub: 公鑰
known_hosts:登錄認證過的主機信息
authorized_keys:公鑰受權文件

d. 時間管理

ntp:服務器是用來使計算機時間同步化的一種協議,它可使計算機對其服務器或時鐘源作同步化,它能夠提供高精準度的時間校訂,在LAN上與標準間差小於1毫秒,WAN上幾十毫秒,且經過加密確認的方式來防止惡毒的協議攻擊。

#服務器配置:
sudo apt-get install ntp

ps -aux|grep ntp
ntp      23717  0.0  0.0  39752  2184 ?        Ss   19:40   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 126:135

/etc/init.d/ntp status
* NTP server is running

#客戶端同步:
ntpdate 0.cn.pool.ntp.org  
22 Jul 16:45:05 ntpdate[6790]: step time server 218.75.4.130 offset 7618978.781348 sec

e. 定時任務

crontab:設置任務調度(el)
分鐘m(0-59), 小時h(1-23), 日期dom(1-31), 月份mon(1-12), 星期down(0-6,0表示週日) 

crobtab -e
# m h    dom mon dow   command
# 每週一早點5:00給目錄打包
# 0 5     *   *   1    tar -zcf /var/backups/home.tgz /home/

# 天天同步2次時間。(8:00, 16:00)
# 0 8,16  *   *   *    /usr/sbin/ntpdate 192.168.1.79

f. 網絡文件系統

nfs:網絡文件系統(NFS,Network File System)是一種將遠程主機上的分區(目錄)經網絡掛載到本地系統的一種機制,經過對網絡文件系統的支持,用戶能夠在本地系統上像操做本地分區同樣來對遠程主機的共享分區(目錄)進行操做。

#服務器端安裝
sudo apt-get install nfs-kernel-server

#配置訪問權限
vi /etc/exports
/home/conan/.ssh *(rw,no_root_squash,sync)

#重啓
sudo /etc/init.d/nfs-kernel-server restart

#查看配置列表
showmount -e
Export list for conan:
/home/conan/.ssh  *

#建立目錄
sudo mkdir /mnt/ssh

#掛載目錄
sudo mount 192.168.1.201:/home/conan/.ssh /mnt/ssh/

#查看目錄
ls /mnt/ssh/
id_rsa  id_rsa.pub  known_hosts

                                                                                                                                                                摘自粉絲日誌

相關文章
相關標籤/搜索