CentOS初級掃盲

發行版介紹

Linux是一套無償使用和自由傳播的類Unix操做系統,是一個基於POSIX(可移植操做系統接口Portable Operating System Interface ,縮寫爲 POSIX )和UNIX(1969)的多用戶、多任務、支持多線程和多CPU的操做系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操做系統。 html

GNU和GPL(GNU General Public License,GPL)是由Richard Stallman在1983年9月27日公開發起的,即"反版權"(或稱Copyleft)概念。是指軟件能夠自由地"使用、複製、修改和發佈",全部GNU軟件都有一份在禁止其餘人添加任何限制的狀況下受權全部權利給任何人的協議條款,GNU通用公共許可證。 單位或我的開發的商業版本軟件,只要使用了有GPL的軟件,能夠收取費用,可是必須開放源代碼。 java

Linus Benedict Torvalds,Linux內核的發明人及該計劃的合做者,與1991年發佈了Linux內核。 node

Linux加入GNU計劃以前,有很多組織把Linux包裝發行。好比比較Debian(1993)和Slackware(1993)。加入GPU以後有其它發行版,例如Slackware一個比較出名的分支是SUSE(1994)。Debian一個分支是Ubuntu(2004),Kali Linux是Debian的一款衍生版,用於滲透測試。RedHat誕生於1994,其中出名的RHEL主要針對企業,2個分支,新技術先在Fedora上跑,若是穩定再移植到RHEL中。CentOS也是基於RedHat(2003)是分支。國產有ReadFlag(1999)。 python

目錄介紹

能夠參考這個 linux

http://www.linuxidc.com/Linux/2013-01/77368.htm ios

 

啓動流程介紹

第1階段: sql

bios加電自檢,檢測硬件。 shell

確認啓動介質,找到啓動介質MBR。 數據庫

第2階段: vim

找到MBR後確認GRUB,在grub配置文件中確認內核以及內核映像位置。

第3階段:

由內核控制,內核只包含最基本的硬件driver,常見的硬件驅動在initrd中。

initrd先釋放內存中臨時構成一個只讀文件系統,在這個只讀的文件系統中,內核回字形臨時文件系統中的init進程,目的至加載各類驅動。驅動加載完成,內核再次掛載真正的根文件系統,內核把控制器給了/sbin/init進程。

第4階段:

/sbin/init是父進程,接管控制權後,讀取inittab文件來執行相應腳本系統初始化。

  1. 執行系統初始化腳本/etc/rc.d/rc.sysinit
  2. 執行/etc/rc.d/rc腳本
  3. 執行用戶自定義/etc/rc.d/rc.local
  4. 完成任務後,啓動終端/sbin/(tty)或者x-windows等待用戶登陸。

 

fg用法

用Jobs查看暫停的任務,能夠用fg調至前臺繼續運行。

 

bg用法

 

暫停的任務用bg調至後臺運行,不在前臺顯示。

快捷鍵用法

crtl+c終止當前命令

crtl+D,退出當前終端,也能夠輸入exit

ctrl+z,暫停當前進程,能夠用fg恢復,暫停的進程也能夠用jobs查看

ctrl+L,清屏

ctrl+u,刪除前面敲的字符

ctrl+A,移動光標至行首

crtl+E移動光標到行尾。

 

arp用法

直接輸入arp就好了,能夠查同一局域網中與之有通訊的設備的mac。

 

 

route用法

 

經常使用route -n或者-C

netstat查看端口

通常用這2個

netstat –lnp查看當前系統啓動哪些端口

netstat –an查看網絡鏈接情況

 

 

 

 

抓包工具tcpdump

選項:

-nn顯示成ip+端口號形式

-i跟設備名稱

-c指定包數量

-w寫入指定文件中,可用wireshark查看

 

 

 

 

lsblk用法

 

通常用lsblk或者lsblk -f就能夠了。

lsscsi用法

通常用lsscsi --list或者lsscsi就能夠了。

 

 

lsblk能夠查看到硬盤分區狀態或者已經掛載的文件系統mount point。

lsscsi能夠查看到詳細的某塊硬盤的狀態,如timeout或者queue_depth。

less用法

g快速返回文件首部

G快速到文本最末端

/當前行向下搜索

?當前行向上搜索

n顯示下一個

q退出

 

 

cp用法

r拷貝一個目錄必須加這個

 

 

rm用法

r刪除目錄

f強制刪除

 

mkdir用法

p不存在的目錄會報錯,須要加這個。

 

 

cat用法

-A顯示全部東東,包括特殊字符。

 

head 用法

n顯示前面多少行

 

tail 用法

n顯示後面多少行,f動態跟蹤顯示

 

 

ls -l用法

第1列:

d標示目錄-標示普通文件l標示連接文件b標示塊設備c表示串行端口設備s標示套接字文件

r讀w寫x執行,前3位全部者user權限,中間3位所屬組權限最後3位其餘非本羣組權限。

 

第2列:

Inode,這個數值與目錄下有多少一級子目錄有關係。

第3列:全部者

第4列:所述組

第5列:文件大小

第六、七、8列:修改日期

第9列:文件名文件名

 

chmod用法

-R表示級聯更改

可用數字表示r=4,w=2,x=1

可用縮寫表示u=rwx,g=rwx,o=rwx ;u-x,a-x

root用戶,默認一個目錄權限爲755,一個文件默認權限爲644,普通用戶登陸一個目錄權限是775,一個文件權限是664

umask用法

例如目錄最大權限777文件最大權限666,Umask設置後須要減掉的權限。

例如通常使用者爲umask 002,默認爲0022(前面那1位是特殊權限位),由於寫權限11分重要。

建立後目錄權限爲775,文件權限爲664

 

chown用法

-R級聯更改

EXAMPLES

chown root /u

Change the owner of /u to "root".

 

chown root:staff /u

Likewise, but also change its group to "staff".

 

chgrep用法

EXAMPLES

chgrp staff /u

Change the group of /u to "staff".

 

chgrp -hR staff /u

Change the group of /u and subfiles to "staff".

chattr用法

+-=分別爲增長、減小、設定

A:增長該屬性後,文件或目錄的atime將不可被修改

S:增長該屬性後,會將數據同步寫入磁盤中

a:增長該屬性後,只能追加不能刪除,非root用戶不能設定該屬性

c:自動壓縮改文件,讀取時會自動解壓

i:增長後,使文件不能被刪除、重命名、設定軟鏈接、寫入、新增數據。

經常使用的有a和i兩個選項。

 

root@cs1w1 root]# chattr +i 111111111111111111111111111111111111

[root@cs1w1 root]# lsattr

-------------e- ./env.log

-------------e- ./install.log.syslog

-------------e- ./aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

-------------e- ./install.log

-------------e- ./456

-------------e- ./lvm

-------------e- ./cs1w1.pub

----i--------e- ./111111111111111111111111111111111111

lsattr: Operation not supported While reading flags on ./11link

-------------e- ./111

-------------e- ./sshd_config

-------------e- ./lvmdump-cs1w1-20160714133655.tgz

-------------e- ./anaconda-ks.cfg

[root@cs1w1 root]# rm -rf 111111111111111111111111111111111111

rm: cannot remove `111111111111111111111111111111111111': Operation not permitted

[root@cs1w1 root]#

 

 

[root@cs1w1 root]# chattr -i 111111111111111111111111111111111111

[root@cs1w1 root]# rm -rf 111111111111111111111111111111111111

 

 

 

[root@cs1w1 root]# chattr +a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/

 

 

 

[root@cs1w1 root]# lsattr

-------------e- ./env.log

-------------e- ./install.log.syslog

-----a-------e- ./aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

-------------e- ./install.log

-------------e- ./456

-------------e- ./lvm

-------------e- ./cs1w1.pub

-------------e- ./111

-------------e- ./sshd_config

-------------e- ./lvmdump-cs1w1-20160714133655.tgz

-------------e- ./anaconda-ks.cfg

 

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# rm -rf view

rm: cannot remove `view': Operation not permitted

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# touch aa

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# echo "test " >> aa

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# cat aa

test

 

[root@cs1w1 root]# chattr -a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/

[root@cs1w1 root]# cd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# ls

aa view

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# rm -rf *

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# ls

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]#

 

[root@cs1w1 root]# chattr +Asaci aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/

[root@cs1w1 root]# lsattr

-------------e- ./env.log

-------------e- ./install.log.syslog

s---ia-Ac----e- ./aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

-------------e- ./install.log

-------------e- ./456

-------------e- ./lvm

-------------e- ./cs1w1.pub

-------------e- ./111

-------------e- ./sshd_config

-------------e- ./lvmdump-cs1w1-20160714133655.tgz

-------------e- ./anaconda-ks.cfg

 

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# mkdir aa

mkdir: cannot create directory `aa': Permission denied

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# touch aa

touch: cannot touch `aa': Permission denied

 

 

 

[root@cs1w1 root]# chattr -Asaci aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/

[root@cs1w1 root]# cd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# ls

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# mkdir aa

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# touch bb

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# rm -rf aa bb

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]# ls

[root@cs1w1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]#

 

 

lsattr用法

-a相似與ls -a連同隱藏文件一同列出

-R連同子目錄數據一同列出

特殊權限之suid

針對二進制可執行文件,在執行階段具備文件全部者的權限。建立u+s,取消u-s

[root@cs1w1 root]# su - apugyt

[apugyt@cs1w1 ~]$ ls -l /root/

ls: cannot open directory /root/: Permission denied

[apugyt@cs1w1 ~]$ exit

logout

[root@cs1w1 root]# chmod u+s /bin/ls

[root@cs1w1 root]# ls -l /bin/ls

-rwsr-xr-x. 1 root root 117024 Nov 22 2013 /bin/ls

[root@cs1w1 root]# su - apugyt

[apugyt@cs1w1 ~]$ ls -l /root/

total 0

[apugyt@cs1w1 ~]$

特殊權限之sgid

設置set gid後,執行該文件的用戶會臨時以改文件所屬組的身份執行。建立g+s,取消g-s

[root@cs1w1 root]# mkdir /tmp/test

[root@cs1w1 root]# chmod 777 /tmp/test/

[root@cs1w1 root]# ls -ld /tmp/test/

drwxrwxrwx 2 root root 4096 Jul 15 09:34 /tmp/test/

[root@cs1w1 root]# chmod g+s /tmp/test/

[root@cs1w1 root]# ls -ld /tmp/test/

drwxrwsrwx 2 root root 4096 Jul 15 09:34 /tmp/test/

[root@cs1w1 root]# su - apugyt

[apugyt@cs1w1 ~]$ cd /tmp/

[apugyt@cs1w1 tmp]$ cd test/

[apugyt@cs1w1 test]$ ls

[apugyt@cs1w1 test]$ touch 1.txt

[apugyt@cs1w1 test]$ ls

1.txt

[apugyt@cs1w1 test]$ ll

total 0

-rw-rw-r-- 1 apugyt root 0 Jul 15 09:35 1.txt

[apugyt@cs1w1 test]$ exit

logout

[root@cs1w1 root]# chmod g-s /tmp/test/

[root@cs1w1 root]# su - apugyt

[apugyt@cs1w1 ~]$ cd /tmp/

[apugyt@cs1w1 tmp]$ ls

test yum.log

[apugyt@cs1w1 tmp]$ ll

total 4

drwxrwxrwx 2 root root 4096 Jul 15 09:35 test

-rw-------. 1 root root 0 Jul 12 10:16 yum.log

[apugyt@cs1w1 tmp]$ cd test/

[apugyt@cs1w1 test]$ ls

1.txt

[apugyt@cs1w1 test]$ touch 2.txt

[apugyt@cs1w1 test]$ ll

total 0

-rw-rw-r-- 1 apugyt root 0 Jul 15 09:35 1.txt

-rw-rw-r-- 1 apugyt apugyt 0 Jul 15 09:35 2.txt

[apugyt@cs1w1 test]$

特殊權限之sticky_bit

防刪除位,即便對目錄擁有寫權限,也不能刪除其餘用戶的文件,建立+t,取消-t

[root@cs1w1 root]# ls -ld /tmp/

drwxrwxrwt. 4 root root 4096 Jul 15 09:34 /tmp/

[root@cs1w1 root]# useradd user2

[root@cs1w1 root]# passwd user2

Changing password for user user2.

New password:

BAD PASSWORD: it is based on your username

Retype new password:

passwd: all authentication tokens updated successfully.

[root@cs1w1 root]# su - apugyt

[apugyt@cs1w1 ~]$ touch /tmp/apugyt.txt

[apugyt@cs1w1 ~]$ exit

logout

[root@cs1w1 root]# su - user2

[user2@cs1w1 ~]$ rm -rf /tmp/apugyt.txt

rm: cannot remove `/tmp/apugyt.txt': Operation not permitted

[user2@cs1w1 ~]$ exit

logout

[root@cs1w1 root]# chmod o-t /tmp/

[root@cs1w1 root]# ll /

total 106

-rwSr--r-- 1 root root 0 Jul 15 09:30 aa

dr-xr-xr-x. 2 root root 4096 Jul 13 07:37 bin

dr-xr-xr-x. 5 root root 1024 Jul 12 10:24 boot

drwxr-xr-x. 2 root root 4096 Nov 22 2013 cgroup

drwxr-xr-x 19 root root 3740 Jul 15 05:46 dev

drwxr-xr-x. 100 root root 12288 Jul 15 09:38 etc

drwxr-xr-x. 4 root root 4096 Jul 15 09:38 home

dr-xr-xr-x. 11 root root 4096 Jul 12 10:22 lib

dr-xr-xr-x. 9 root root 12288 Jul 13 07:37 lib64

drwx------. 2 root root 16384 Jul 12 10:16 lost+found

drwxr-xr-x. 2 root root 4096 Sep 23 2011 media

drwxr-xr-x 2 root root 0 Jul 15 05:46 misc

drwxr-xr-x. 2 root root 4096 Sep 23 2011 mnt

drwxr-xr-x 2 root root 0 Jul 15 05:46 net

drwxr-xr-x. 3 root root 4096 Jul 12 10:23 opt

dr-xr-xr-x 110 root root 0 Jul 15 05:45 proc

dr-xr-x---. 3 root root 4096 Jul 15 09:31 root

dr-xr-xr-x. 2 root root 12288 Jul 13 07:37 sbin

drwxr-xr-x. 2 root root 4096 Jul 12 10:17 selinux

drwxr-xr-x. 2 root root 4096 Sep 23 2011 srv

drwxr-xr-x 13 root root 0 Jul 15 05:45 sys

drwxrwxrwx. 4 root root 4096 Jul 15 09:39 tmp

drwxr-xr-x. 13 root root 4096 Jul 12 10:17 usr

drwxr-xr-x. 20 root root 4096 Jul 12 10:22 var

[root@cs1w1 root]# su - user2

[user2@cs1w1 ~]$ cd /tmp/

[user2@cs1w1 tmp]$ ls

apugyt.txt test yum.log

[user2@cs1w1 tmp]$ rm -rf apugyt.txt

[user2@cs1w1 tmp]$

軟連接和硬連接

 

軟連接:

1.軟連接,以路徑的形式存在。相似於Windows操做系統中的快捷方式

2.軟連接能夠 跨文件系統 ,硬連接不能夠

3.軟連接能夠對一個不存在的文件名進行連接

4.軟連接能夠對目錄進行連接

5.軟連接佔用Inode

 

 

 

1.硬連接,以文件副本的形式存在。但不佔用實際空間。

2.不容許給目錄建立硬連接

3.硬連接只有在同一個文件系統中才能建立

4.不佔用inode和空間

 

 

 

經常使用項

f 若是目標文件存在會強制移除

s軟鏈接

d硬連接

 

 

 

#軟連接能夠連接跨文件系統

 

#連接目錄、文件

 

ln -s /mnt/aaa /opt/aa

 

ln -s /opt/ /mnt

 

 

 

#硬連接只容許在本身的文件系統

 

ln -d /opt/aaa /opt/bb

用戶名文件

[root@cs1w1 ~]# cat /etc/passwd | head -n 3

root    :    x    :    0    :    0    :    root    :    /root    :    /bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

第1字段,用戶名,可使大小寫字母、數字、減號(不能出如今首位)、點以及下劃線,其它不合法。

第2字段,早期unix存放在這裏,基於安全因素,放在/etc/shadow中了。

第3字段,uid用戶身份,0是root,1-499系統保留做爲管理帳號,普通用戶標示從500開始。

第4字段,組標示,對應group中一條記錄

第5字段,註釋說明

第6字段,用戶家目錄

第7字段,指定默認的shell程序,啓動後會啓動一個進程,用來將指令傳遞給操做系統內核。

 

 

密碼文件

[root@cs1w1 ~]# cat /etc/shadow | head -n 3

root    :    $6$dPgogaO9$xKdBg64FWHJJcutWDtyxuF465Ri.TsNHTMhYpUUPTCcTZPhAhypNmLdBsbCwdWY621bocFWJn3y1eFNR.x.xz1:16995    :    0    :    99999    :    7    :    :    :

bin:*:15980:0:99999:7:::

daemon:*:15980:0:99999:7:::

9個字段含義:

第1字段,跟/etc/passwd用戶名對應

第2字段,真正的加密過的密碼

第3字段,從1970年1月1日到上次更改密碼的日期。

第4字段,過多少天才能夠更改密碼,默認0不限制

第5字段,多天後密碼到期,默認99999不限制

第6字段,密碼到期警告期限

第7字段,密碼已經到期,到期前沒修改,再過幾天就鎖定

第8字段,生命週期,在這個日期前可使用,到期後做廢。

第9字段,做爲保留用的,沒有什麼意義

 

 

 

 

 

增長刪除用戶組

Groupadd用法

G指定gid

groupdel後面指定用戶組

 

 

增長刪除用戶

Useradd用法

u自定義uid

U建立一個和用戶同樣的組

N建立用戶沒有一樣的組

g加入已經存在的某個組

d自定義用戶家目錄

m建立家目錄

M不創建家目錄

S自定義shell

L指定建立的用戶不加入log數據庫

 

Userdel用法

R刪除帳戶時候帶帳戶家目錄一塊兒刪除

 

 

 

Usermod修改用戶屬性

Usermod用法

u更改用戶uid

G更改用戶屬組,也能夠跟組id

d更改用戶家目錄

S更改用戶shell

 

 

Passwd修改用戶密碼

Passwd用法

-stdin從標準輸入設置密碼,適用於腳本

-d刪除密碼

-e設置密碼過時

-x設置密碼最大生命週期

-w設置密碼過時提示週期

 

mkpasswd用法

生成密碼,安裝一個expect包纔可使用

-s指定特殊字符個數

-d指定數字個數

-l指定密碼個數

 

su切換用戶

Su用法

-須要加這個

C指定執行命令

su – apugyt –c "touch /home/apugyt/apugytsuswitchtest"

 

 

sudo詳解

普通用戶登陸沒法執行一些命令操做,若是告知給普通用戶root密碼,有風險。能夠修改解決sudoers配置文件解決這個問題,容許普通用戶執行系統中的一些命令。

[apugyt@localhost ~]$ yum install

Loaded plugins: fastestmirror

You need to be root to perform this command.

[apugyt@localhost ~]$ sudo yum install

apugyt is not in the sudoers file. This incident will be reported.

 

 

visudo編輯配置文件,添加普通用戶就能夠了。能夠明確用戶名,容許切換的組,Ip,容許的命令

 

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

apugyt ALL=(ALL) ALL

 

 

設置完成後sudo 加命令,輸入本身的密碼就能夠運行了

 

 

[apugyt@localhost root]$ sudo ls

[sudo] password for apugyt:

 

 

 

[apugyt@localhost root]$ sudo ls

? anaconda-ks.cfg apugytswitchtest yum.conf

[apugyt@localhost root]$

 

 

 

 

若是有多個普通用戶一次一次添加麻煩,能夠直接開啓wheel組。普通用戶加入這個wheel組就能夠了。

## Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

 

 

查看這個測試帳戶的組

[apugyt@localhost ~]$ id apugyt

uid=1000(apugyt) gid=1000(apugyt) groups=1000(apugyt),10(wheel)

[apugyt@localhost ~]$

 

從新測試ok

[apugyt@localhost home]$ yum install lsof

Loaded plugins: fastestmirror

You need to be root to perform this command.

[apugyt@localhost home]$ sudo yum install lsof

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: ftp.sjtu.edu.cn

* extras: mirrors.163.com

* updates: mirrors.163.com

Package lsof-4.87-4.el7.x86_64 already installed and latest version

Nothing to do

[apugyt@localhost home]$

fdisk用法

fdisk用法

l指定某個盤

w寫入

p主分區

e擴展分區

一個磁盤只能有4個主分區,或者3個主分區,一個擴展分區,而後是邏輯分區。

parted用法

EXAMPLES:

加標籤

parted /dev/sdb mklabel gpt

分區

parted /dev/sdb mkpart PartedTest 0% 100%

格式化文件系統

mkfs.ext4 /dev/sdb1

 

 

partx用法

 

經常使用

partx –a /dev/sdb

刪除

partx –d /dev/sdb

列出

partx –l /dev/sdb

 

 

 

NAME

partx - telling the kernel about presence and numbering of on-disk partitions.

 

mke2fs用法

mke2fs用法

-b設定每一個區塊佔用空間大小,目前支持102四、2048以及4096Bytes每一個塊。

-N指定inode數量

-c建立文件系統以前檢查壞塊

-L指定分區標籤

-D使用direct IO

-t文件系統類型

 

 

 

 

[root@localhost ~]# mke2fs -t ext4 -N 1000 -c -L ext4mke2fstest -D -b 2048 /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=ext4mke2fstest

OS type: Linux

Block size=2048 (log=1)

Fragment size=2048 (log=1)

Stride=0 blocks, Stripe width=0 blocks

5120 inodes, 10485248 blocks

524262 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=278921216

640 block groups

16384 blocks per group, 16384 fragments per group

8 inodes per group

Superblock backups stored on blocks:

    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,

    2048000, 3981312, 5619712, 10240000

 

Checking for bad blocks (read-only test): done

Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

 

 

 

 

 

 

 

 

[root@localhost ~]# mount -t ext4 /dev/sdb1 /mnt/

[root@localhost ~]# stat /mnt/

File: '/mnt/'

Size: 2048     Blocks: 4 IO Block: 2048 directory

Device: 811h/2065d    Inode: 2 Links: 3

Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

Context: system_u:object_r:unlabeled_t:s0

Access: 2016-07-14 05:44:16.000000000 -0400

Modify: 2016-07-14 05:44:16.000000000 -0400

Change: 2016-07-14 05:44:16.000000000 -0400

Birth: -

 

e2label用法

查看分區標籤

[root@localhost ~]# e2label /dev/sdb1

ext4mke2fstest

[root@localhost ~]#

mount用法

若是須要開機啓動建議mount分區的label或者uuid喲。

UUID指定掛載文件系統的uuid

LABEL指定掛載文件系統的的標籤

a掛載全部fstab中指定的文件系統

o指定其餘選項,如-o loop

t指定文件系統類型

av還能夠檢查fstab配置文件中指定掛載的文件系統

 

 

[root@localhost ~]# blkid

/dev/sdb1: LABEL="ext4mke2fstest" UUID="90ceec7f-bf30-44b3-af46-a24c091156ab" TYPE="ext4"

/dev/sr0: UUID="2015-12-09-23-03-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"

/dev/sda1: UUID="23ef456b-700c-421a-94b4-4aa7636c5ec9" TYPE="xfs"

/dev/sda2: UUID="wpNLhW-vVjP-s4wi-kXMr-VaD4-A74G-xbhsZN" TYPE="LVM2_member"

/dev/mapper/centos-root: UUID="6f348a94-c270-42e9-96bd-b6166d689ba2" TYPE="xfs"

/dev/mapper/centos-swap: UUID="992c1fae-1daa-4297-adf8-546548fa0769" TYPE="swap"

/dev/mapper/centos-home: UUID="48398901-c2a7-4278-894b-5b66c707d4ec" TYPE="xfs"

 

 

 

 

[root@localhost ~]# mount UUID="90ceec7f-bf30-44b3-af46-a24c091156ab" /mnt/

 

[root@localhost ~]# mount LABEL=ext4mke2fstest /mnt/

 

umount用法

l強制卸載

分區表fstab

[root@localhost ~]# cat /etc/fstab

 

#

# /etc/fstab

# Created by anaconda on Tue Jul 12 03:20:27 2016

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/centos-root / xfs defaults 0 0

UUID=23ef456b-700c-421a-94b4-4aa7636c5ec9 /boot xfs defaults 0 0

/dev/mapper/centos-home /home xfs defaults 0 0

/dev/mapper/centos-swap swap swap defaults 0 0

[root@localhost ~]#

 

第1列:分區標示,label/uuid/分區名字都ok

第2列:掛載點

第3列:分區類型

第4列:掛載參數,通常寫defaults

第5列:是否被dump備份,1是,0不是

第6列:0不自檢磁盤,1和2都檢測,1先檢測

 

第4列參數詳解:

async磁盤和內存不一樣步,每隔一段時間吧內存數據寫入磁盤

sync時時同步內存和磁盤中數據

auto/noauto:開機自動掛載/不自動掛載

ro:只讀權限

rw:可讀可寫權限

exec/noexec:容許/不容許可執行文件執行

user/nouser:是否容許root用戶外的其餘用戶掛載分區,通常Nouser

suid/nosuid:容許/不容許分區有suid屬性,通常nosuid

usrquota:啓用磁盤配額

grquota:啓動羣組磁盤配額模式

w用法

第一行顯示當前時間,系統運行時間,登錄用戶數量,系統負載1分鐘、5分鐘、15分鐘,值超過cpu數量證實系統壓力大。

tty爲顯示器

pts爲遠程終端。

 

[root@cs1w1 root]# w

12:13:05 up 6:27, 3 users, load average: 0.00, 0.00, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root tty1 - 12:09 3:54 0.00s 0.00s -bash

root pts/0 192.168.211.1 05:47 36.00s 0.55s 0.55s -bash

root pts/1 192.168.211.1 07:13 0.00s 0.02s 0.00s w

[root@cs1w1 root]#

 

 

有可能遠程服務器本地顯示器tty沒有退出,能夠經過kill進程關閉本地tty。

[root@cs1w1 root]# ps -ef | egrep -i tty

UID PID PPID C STIME TTY TIME CMD

root 1338 1 0 05:46 tty2 00:00:00 /sbin/mingetty /dev/tty2

root 1340 1 0 05:46 tty3 00:00:00 /sbin/mingetty /dev/tty3

root 1342 1 0 05:46 tty4 00:00:00 /sbin/mingetty /dev/tty4

root 1344 1 0 05:46 tty5 00:00:00 /sbin/mingetty /dev/tty5

root 1349 1 0 05:46 tty6 00:00:00 /sbin/mingetty /dev/tty6

root 4293 4245 0 12:09 tty1 00:00:00 -bash

root 4390 2363 0 12:17 pts/1 00:00:00 egrep -i tty

 

[root@cs1w1 root]# kill -9 4293

-bash: kill: (4293) - No such process

[root@cs1w1 root]# ps -ef | egrep -i tty

UID PID PPID C STIME TTY TIME CMD

root 1338 1 0 05:46 tty2 00:00:00 /sbin/mingetty /dev/tty2

root 1340 1 0 05:46 tty3 00:00:00 /sbin/mingetty /dev/tty3

root 1342 1 0 05:46 tty4 00:00:00 /sbin/mingetty /dev/tty4

root 1344 1 0 05:46 tty5 00:00:00 /sbin/mingetty /dev/tty5

root 1349 1 0 05:46 tty6 00:00:00 /sbin/mingetty /dev/tty6

root 4393 1 0 12:17 tty1 00:00:00 /sbin/mingetty /dev/tty1

root 4395 2363 0 12:17 pts/1 00:00:00 egrep -i tty

[root@cs1w1 root]#

 

[root@cs1w1 root]# w

12:20:13 up 6:34, 2 users, load average: 0.00, 0.00, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 192.168.211.1 05:47 3:01 0.55s 0.55s -bash

root pts/1 192.168.211.1 07:13 0.00s 0.03s 0.00s w

[root@cs1w1 root]#

 

 

vmstat詳解

vmstat用法

6部分。

 

procs顯示進程相關信息

r:表示運行和等待cpu時間片的進程數。若是長期大於cpu個數,說明cpu不夠用了。

b:等待資源進程數。例如等待I/O、內存等。若是長時間大於1,須要關注下。

 

memory內存相關信息

swpd切換到交換分區中的內存數量

free當前空閒的內存數量

buff緩衝大小,即將寫入磁盤的。

cache緩存大小,從磁盤中讀取的。

 

swap內存交換狀況

si:交換區寫入到內存的數據量

so:由內存寫入到交換區的數據量

 

io磁盤使用狀況

bi:從塊設備讀取數據的量

bo:從塊設備吸入數據的量

 

system顯示採集間隔內發生的中斷次數

in:表示在某一時間間隔中觀測到的每秒設備中斷數

cs:每秒上下文切換次數

 

CPU顯示cpu的使用狀態

us:顯示用戶下所花費cpu時間的百分比

sy:顯示系統花費cpu時間百分比

id:cpu處於空閒狀態的時間百分比

wa:表示I/O等待所佔用cpu時間百分比

st:被偷走的cpu所佔百分比

 

 

[root@cs1w1 root]# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 0 767452 43688 86112 0 0 5 1 12 14 0 0 100 0 0    

[root@cs1w1 root]#

 

關注r\b\wa列就能夠了。

 

 

top動態查看負載

top用法

c能夠查看進程命令

k提示kill掉哪一個進程的Pid

其中RES能夠查看進程佔用內存大小。

top –bn1非動態打印系統資源使用狀況,能夠用在shell腳本中。

 

[root@dntodu001 ~]# top

top - 16:39:36 up 6 days, 22:04, 10 users, load average: 27.39, 28.05, 27.28

Tasks: 3406 total, 39 running, 3367 sleeping, 0 stopped, 0 zombie

Cpu(s): 20.1%us, 4.3%sy, 0.0%ni, 69.3%id, 4.8%wa, 0.1%hi, 1.5%si, 0.0%st

Mem: 264279036k total, 44741164k used, 219537872k free, 365716k buffers

Swap: 33554424k total, 0k used, 33554424k free, 29961196k cached

 

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

38413 root 20 0 21.6g 933m 13m S 148.0 0.4 514:12.13 java

98366 oracle -2 0 28.1g 22g 22g S 72.4 8.9 159:21.52 oracle

98300 oracle -2 0 28.1g 22g 22g R 51.7 8.9 162:38.06 oracle

98374 oracle -2 0 28.1g 22g 22g S 45.2 8.9 162:46.30 oracle

98287 oracle -2 0 28.1g 22g 22g S 42.0 8.9 162:15.72 oracle

98370 oracle -2 0 28.1g 22g 22g R 41.7 8.9 159:16.79 oracle

98415 oracle 20 0 28.1g 178m 168m R 28.8 0.1 108:06.83 oracle

17592 oracle 20 0 28.1g 23g 23g S 25.9 9.4 82:11.82 oracle

17711 oracle 20 0 28.1g 23g 23g S 25.9 9.4 81:53.08 oracle

17696 oracle 20 0 28.1g 23g 23g S 25.5 9.4 81:56.69 oracle

 

sar命令

sar用法

sar –n DEV顯示網卡流量,rx表示進,tx表示出

sar –n EDEV    Network interfaces (errors)

sar –b        I/O and transfer rate statistics

sar –r        Memory utilization statistics

sar -u [ ALL ]    CPU utilization statistics

安裝sysstat這個包就有sar命令。

sar數據文件放在/var/log/sa下,加日期的須要用sar -f查看,不加日期的能夠直接cat。

 

 

 

free查看內存

通常查看剩餘看第2行。所以系統分配物理內存給緩存用來給程序使用。若是程序不用就是空閒的。因此查看那個比較靠譜。

[root@dntodu001 ~]# free -g

total used free shared buffers cached

Mem: 252 73 178 0 0 58

-/+ buffers/cache: 14 237

Swap: 31 0 31

[root@dntodu001 ~]#

 

 

ps查看進程

STAT進程狀態:

D不能中斷,一般爲IO

R正在運行的進程

S已經中斷,系統大部分進程都在這個狀態

T,已經中止或暫停的進程

Z殭屍進程,佔系統一點資源,少了沒問題,多了就有問題了。

<高優先級進程

N低優先級進程

L在內存中被鎖了內存分頁

s主進程

l多線程進程

+在前臺運行的進程

 

df用法

i顯示inode

k顯示1k block

m顯示1M block

h顯示任性化

T顯示文件系統

通常用df -hT

 

 

 

du用法

b顯示bytes

k顯示kB

m顯示mB

h人性化顯示

s顯示聚合

S不包括子目錄

通常用du –sh

 

stat用法

 

Atime:讀取或執行文件時更改的。

Mtime:吸入文件時隨文件內容更改而更改。

Ctime::寫入文件、更改全部者、權限或連接設置時隨inode的內容更改而更改的。

這3個time屬性都在inode中。若是指定了文件系統noatime參數,Atime不必定在訪問後修改。Mtime改了inode必定改,既然inode改了,ctime也得跟着改。

 

lsof用法

EXAMPLES:

查找本地主機使用端口範圍1-1024的進程。

 

 

NAME

lsof - list open files

 

tree用法

EXAMPLES:

 

NAME

tree - list contents of directories in a tree-like format.

 

 

pstree用法

使用示例:

 

 

pstree - display a tree of processes

selinux用法

獲取狀態

getenforce

設置臨時關閉

setenforce 0

配置文件位置

/etc/selinuc/config

 

 

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

# targeted - Targeted processes are protected,

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

 

 

 

 

 

cron計劃任務

crontab用法

-u指定某個用戶,不加-u爲當前用戶

-e制定計劃任務,實際上編輯/var/spool/cron/username文件

-l列出計劃任務

-r刪除計劃任務

列出計劃任務

crontab –l

刪除計劃任務

crontab –r

服務查看、啓停

service crond status\stop\start

從左到右,分、時、日、月、周

 

 

示例:沒隔一分鐘輸出hello,world到/root/目錄下的cron-test.log文件中。

 

iptables詳解

3張表

filter用於過濾包,是系統預設的表,應用最多。裏面3個鏈,input用於進入本機的包,output用於本機出去的包,forward用於跟本機無關的包。

 

nat用於網絡地址轉換,裏面3個鏈,prerouting用於在包到達防火牆時改變它的目的地址。output改變本地產生包的目的地址,postrouting用於在包離開防火牆時改變源地址。

 

mangle用於給數據包打標記。幾乎不怎麼用。除非想成爲一個高級網絡工程師。

 

查看規則以及清除規則:

#iptables –t filter –nvL

 

選項:

#-t後面跟代表,-n不針對ip反解析主機名,-L標示列出,-v標示列出詳細信息

#-A日後增長

#-D刪除

#-I,往前插入

#-p指定協議,可使tcp,udp或者icmp

#-dport跟p一塊兒使用,目標端口

#-s指定源ip

#-d指定目的ip

#-j跟動做,accept容許,drop丟掉,reject拒絕包,MASQUERADE假裝

#-i指定網卡

#-o跟設備名

#--line-numbers顯示規則號碼

#-P表示預設策略

#–F清除所有規則,

# -Z包以及流量計數器置零

 

注意事項:

iptables –P input drop一旦設定,必須用iptables –P input accept才能恢復原始狀態,-不能使用-F。

 

防火牆服務停掉後,一旦從新設定規則,會自動開啓。

 

 

 

 

使用示例:

 

需求:只針對filter表,預設策略input鏈drop,其它2個鏈accept,而後針對某個管理ip開通22端口,對全部網段開通80端口和21端口。

 

 

 

 

#備份&恢復

iptables-save >myipt.sh

iptables-restore <myipt.sh

 

 

 

設置nat表上網

需求:1臺linux主機2塊網卡,1個能上網,1個不行,局域網中還有其它主機與不能上網的主機相連。如何保證也能上網。

#設置內核參數,打開路由轉發

#對nas標作了一個IP轉發的操做

 

 

 

系統服務

ntsysv圖形化配置服務開啓或關閉。

 

運行級別說明

# 0 - halt (Do NOT set initdefault to this)

# 1 - Single user mode

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 - Full multiuser mode

# 4 - unused

# 5 - X11

# 6 - reboot (Do NOT set initdefault to this)

 

 

 

查詢

chkconfig –list| grep cron

設置級別3關閉

chkconfig –level 3 crond off

設置級別345關閉

chkconfig –level 345 crond off

默認2345開啓

chkconfig crond on

刪除

chkconfig –del crond

添加

chkconfig –add crond

 

Linux日誌

日誌配置文件/etc/rsyslog.conf

控制如何日誌歸檔/etc/logrotate.conf

messages是系統核心日誌文件,若是服務沒有定義日誌,該服務產生日誌會到這個文件中,每週歸檔一次。

 

debug有調試信息的,日誌信息最多

info通常信息日誌,最經常使用

notice具備重要性的普通條件的信息

warning警告級別

err錯誤級別,阻止某個功能或模塊不能正常工做信息

crit嚴重級別,阻止系統或整個軟件不能正常工做的信息

alert須要當即修改信息

emerg內核崩潰等嚴重信息

none什麼都不記錄

 

xargs詳解

 

示例:

有些時候過濾後的東西須要傳遞給後面其它命令執行實現需求,這個時候xargs就派上用場了。

 

好比我想把過濾後的東東拷貝至其它目錄,其實我能夠進入那個目錄而後執行ls,而後是過濾,接着再手工以拷貝那樣也能夠,只不過太慢了,因此下面一條連續的命令就能夠搞定。

 

mkdir pakage && ll | egrep -v 'anaconda-ks.cfg|paka*'| gawk -F' ' '{ print $9 }' | xargs -n1 -i cp {} /root/pakage/

 

 

 

 

把找到不用的文件刪除掉,能夠這樣。

find /root/pakage/* -print | xargs /bin/rm –f

 

 

 

xargs –n1 –I {}相似for循壞,-n1意思是一個一個對象去處理,-i{}把前面的對象使用{}取代。cp {}拷貝前面的對象到tmp目錄下{}_bak,名字加_bak。

 

 

 

rsync詳解

與cp,scp不一樣的是rsync工具不但能夠本地拷貝,還能夠遠程拷貝以及同步數據。

 

rsync工具在作數據備份方便很是受歡迎。試想一下,若是有數千萬個文件或目錄你怎麼樣制定拷貝計劃呢?每個選項都會佔用系統計算時間,每個選項錯誤,都會延遲拷貝計劃任務進度,因此作拷貝計劃前頗有必瞭解rsync每一個選項,作個詳細測試。

兒。

 

 

 

#拷貝installxxx文件到/tmp的目錄命名爲aa

rsync -av install.log.syslog /tmp/aa

 

#拷貝本地主機文件800.png到遠程主機172的/tmp/目錄

rsync -av 800.png 192.168.36.172:/tmp/

 

#拷貝遠程主機172中的數據到本地/mnt/目錄

rsync -av root@192.168.36.172:/tmp/800.png /mnt/

 

#拷貝本地aa/到cc/注意須要加/斜槓,不加不行哦。

rsync -a aa/ cc/

 

#--no-l,去除軟鏈接,若是源目錄中含有軟鏈接,不拷貝喲。

rsync -av --no-l /root/bb/ /root/cc/

 

#-L,把源文件軟鏈接指向的物理文件拷貝到目標目錄中。

rsync -avL /root/bb/ /root/cc/

 

#-u,若是目標目錄中文件比源文件中新,不會執行同步。

rsync -avu /root/aa/ /root/bb/

 

#-delete,若是目標目錄bb/中有源目錄aa/中沒有的東東,會執行清除目標目錄bb/中已有的數據。

rsync -av --delete /root/aa/ /root/bb/

 

#--exclude,用於過濾掉源中不須要拷貝的文件

#--progress,用於觀察拷貝進程

rsync -av --progress --exclude="*.txt" /root/aa/ /root/bb/

 

 

find搜索命令

-type類型d目錄l連接s套接字c串行設備b塊設備f文件

-size +1M大於1M -1M小於1M

-atime +n/-n訪問或者執行時間大於/小於n天的文件

-ctime +n/-n寫入、更改inode屬性(更改全部者、權限或者連接)時間大於/小於n天的文件

-mtime +n/-n:寫入時間大於/小於n天的文件

[root@cs1w1 root]# mkdir aa

[root@cs1w1 root]# cd aa/

[root@cs1w1 aa]# ls

[root@cs1w1 aa]# touch aa bb cc

[root@cs1w1 aa]# cd

[root@cs1w1 root]# find /root/aa/ -atime +1

[root@cs1w1 root]# find /root/aa/ -atime -1

/root/aa/

/root/aa/cc

/root/aa/aa

/root/aa/bb

[root@cs1w1 root]# find /root/aa/ -ctime -1

/root/aa/

/root/aa/cc

/root/aa/aa

/root/aa/bb

[root@cs1w1 root]# find /root/aa/ -ctime +1

[root@cs1w1 root]# find /root/aa/ -mtime -1

/root/aa/

/root/aa/cc

/root/aa/aa

/root/aa/bb

[root@cs1w1 root]# find /root/aa/ -mtime +1

[root@cs1w1 root]# find /root/aa/ -name aa

/root/aa/

/root/aa/aa

[root@cs1w1 root]# find /root/aa/ -type d

/root/aa/

[root@cs1w1 root]# find /root/aa/ -type f

/root/aa/cc

/root/aa/aa

/root/aa/bb

[root@cs1w1 root]# find /root/aa/ -type b

[root@cs1w1 root]# find /root/aa/ -type c

[root@cs1w1 root]# find /root/aa/ -type l

[root@cs1w1 root]# find /root/aa/ -type s

[root@cs1w1 root]# cd aa

[root@cs1w1 aa]# ls

aa bb cc

[root@cs1w1 aa]# ln -s cc dd

[root@cs1w1 aa]# ls

aa bb cc dd

[root@cs1w1 aa]# ll

total 0

-rw-r--r-- 1 root root 0 Jul 15 10:29 aa

-rw-r--r-- 1 root root 0 Jul 15 10:29 bb

-rw-r--r-- 1 root root 0 Jul 15 10:29 cc

lrwxrwxrwx 1 root root 2 Jul 15 10:31 dd -> cc

[root@cs1w1 aa]# cd

[root@cs1w1 root]# find /root/aa/ -type l

/root/aa/dd

[root@cs1w1 root]# find /root/aa/ -size -1M

/root/aa/cc

/root/aa/aa

/root/aa/bb

[root@cs1w1 root]# find /root/aa/ -size +1M

[root@cs1w1 root]#

shell中特殊符號用法

*表明0個或多個任意字符

?只表明一個任意的字符

\脫意,將shell特殊符號還原爲普通字符

$!上條命令中最後名稱

^開頭

^[^fs]除去

$?上條命令運行成功狀態值

;一行運行2個命令

&命令放在後臺執行

>重定向

>>追加劇定向

2>錯誤重定向

2>>錯誤追加劇定向

[]表明中間字符中任意一個字符

 

 

;無論command1是否成功都會執行command2

&&只有command1執行成功,command2纔會執行,不然不執行

 

||,command1執行成功後command2不執行,不然執行command2

grep&egrep用法

學好正則收益無窮

.標示任意一個字符(包含特殊字符)

*標示零個或多個*前面的字符

.*表示任意個任意字符(包含空行)

+標示1個或多個+前面的字符

?標示0個或1個?前面字符

-c打印符合要求的行數

-n輸出符合要求的行同時連同行號一塊兒輸出

-v打印不符合要求的行

-A後跟數字,打印符合要求的行以及下面2行

-B後跟數字,打印符合要求的行以及上面2行

-C跟數字,打印符合要求的行以及上下各2行

-r會把目錄下面全部文件所有遍歷

--color把匹配到的關鍵字紅色標識

--include包含有

#過濾etc目錄下含有root的conf文件

 

 

 

#過濾包含root字符的行

#統計包含字符abc的行數

#過濾不包含字符abc的行

 

#過濾包含數字的行

#過濾包含字符abccbd的行以及後面的1行

#過濾包含字符sabc的行以及前面的1行

#過濾不包含數字的行

#過濾不包含#開頭的行以及空行

#過濾包含字符a-zA-Z的開頭的行

#過濾不包含已數字開頭的行

#過濾j與f之間包含任意一個字符或任意一個特殊符號的行

#過濾0個多個包含f的行。

#過濾包含一個字符或空行的行

#過濾包含一個或多個包含ok的行

#過濾包含0個或多個含有o或k或ok的字符的行

#過濾aa目錄下包含ok的行

sed用法

s替換

g全局替換

d刪除行

r調整位置

-i直接修改文件內容

#將1-2行含有aa替換成test

#將全部行的test字符替換成performance

 

#刪除1-11行

#刪除含有aa的行

 

 

 

#()標示1個總體,root和bash替換位置

awk用法

截取文件中第1段

自定義字符鏈接某個段

使用awk內部變量OFS指定鏈接符

 

匹配含有root的行

 

匹配第1段含有oo的行

 

匹配第3段包含0的行

 

匹配含有root的行,只打印一、3段,匹配第3段含有50的行,打印第一、二、7段。

 

 

 

匹配第3段大於100的行。

匹配第7段不是/sbin/nologin的行。

匹配第3段小於第4段的行

匹配第3段大於5,而且第3段小於7的行

匹配第3段大於5,或者第7段爲/bin/bash

 

NF段數,NR行數

匹配20行之後的行

 

匹配20行之後而且第1段包含ssh的行

更改第1段爲root

 

 

數學計算,第三、4段相加,賦予第7段

 

計算第3段總和

 

 

if第1段包含有root的行就打印

 

 

 

if-else語句

[root@localhost ~]# cat aa

tony    gu     35     F

fs     fs     36     M

fsfs    fsfs    20    F

fsfs    kl    25    M

[root@localhost ~]#

 

 

 

 

[root@localhost ~]# cat bb

#!/bin/bash

awk ' {

    if ( $3 <=25 ){

        print "user",$1,$2,"is less than 25 years old.";

            }

            else {

                print "User",$1,$2,"is more than 25 years old";

                }

}' ~/aa

 

 

[root@localhost ~]# ./bb

User tony gu is more than 25 years old

User fs fs is more than 25 years old

user fsfs fsfs is less than 25 years old.

user fsfs kl is less than 25 years old.

 

 

for語句

 

while語句

do while語句

 

 

 

cut用法

 

-d指定分隔符

-f指定第幾段

-c跟數字,標示截取第幾個字符,或一個範圍區域

 

 

 

 

 

sort用法

 

 

-t指定分隔符

-n使用純數字排序,若是對象時英文字母,按0處理。

-r反向排序

-u去重

-kn1,n2,對某1字段進行排序

 

 

針對第3字段純數字進行排序

 

默認從首字符排序

 

 

uniq用法

-c統計重複行數

須要先給文件排序,不然去重不生效。

 

 

 

tee用法

比重定向多了個一個功能呢吸入後面文件同時打印在屏幕上。

tr用法

-d刪除某個字符

-s重複字符去除

 

split用法

切割文檔

-b依據大小來分隔文檔,單位爲byte

-l依據行數來切割

後面跟字符,指定切割後的文件前綴名

 

EOF用法

 

 

 

wget用法

使用示例:

wget     link

Wget - The non-interactive network downloader.

fuser用法

EXAMPLES:

查詢使用根文件系統的進程

fuser –m –v /

刪除使用根文件系統的進程

fuser –m –v –I –k /

 

 

Show which processes use the named files, sockets, or filesystems.

 

-i ask before killing (ignored without -k)

-k kill processes accessing the named file

-m show all processes using the named filesystems

-u display user IDs

-v verbose output

 

 

解壓縮用法

#gz

//壓縮gz格式文件,不支持壓縮目錄

// -9, --best compress better

//-1, --fast compress faster

gzip aa

//解壓縮gz格式文件

gzip -d aa.gz

//查看

Gzip -l aa.gz

//壓縮aa目錄下的文件,沒個文件一個gz包

//zcat查看gz壓縮文本文件

 

 

 

 

#bz2

只能壓縮文件,不能壓縮目錄

bzip2 -d解壓縮

bzip2 -z壓縮

 

#zip

壓縮文件

zip 1.txt

壓縮目錄

zip dir1.zip dir1/*

 

若是目錄下有二級目錄甚至更多級目錄,不會壓縮,因此必定要加r,

能夠用級聯zip –r dir1.zip dir1/

 

 

#unzip

 

解壓

unzip 1.txt.zip

 

///查看

Unzip -l

///解壓到指定目錄

Unzip –d

 

 

#xz

只能壓縮文件,不能壓縮目錄

壓縮

xz test.txt

解壓

xz –d test.txt.xz

查看文本文件

xcat test.txt.xz

 

 

 

 

#tar

//壓縮aa文件爲aa.tar

tar cvf aa.tar aa

//解壓縮aa.tar文件到指定目錄

tar xvf aa.tar -C /tmp

//查看

tar tvf aa.tar

 

-z同時用gzip壓縮

-j同時用bzip2壓縮

-x解包或者解壓縮

-t查看tar包裏面的內容

-c創建一個tar包或者壓縮文件包

-v可視化

-f寫到最後面

-J同時用xz壓縮

--exclude filname:在打包或者壓縮時,不要將filename文件包括在內。

 

#tar.gz

//解壓縮aatar.gz文件到指定目錄

tar xzvf aa.tar.gz -C /tmp

//壓縮

tar czvf aa.tar.gz aa.txt

 

#tar.bz2

//解壓縮tar.bz2文件到指定目錄

tar xjvf aa.tar.bz2 –C /tmp

//壓縮

tar cjvf aa.tar.bz2 aa.txt

 

#tar.xz

//解壓縮tar.xz文件到指定目錄

tar xJvf aa.tar.xz –C /tmp

//壓縮

tar cJvt aa.tar.xz aa.txt

 

///排除某個文件下的子目錄,這個得記牢咯。

[root@localhost ~]# tree

.

└── dd

├── aa

├── bb

└── f

└── cc

 

2 directories, 3 files

排除dd下的f子目錄

[root@localhost ~]# tar -cvf tar.tar --exclude f dd

dd/

dd/bb

dd/aa

[root@localhost ~]# clear

[root@localhost ~]# ls

dd tar.tar

[root@localhost ~]# tar -tvf tar.tar

drwxr-xr-x root/root 0 2016-07-18 10:21 dd/

-rw-r--r-- root/root 0 2016-07-18 10:16 dd/bb

-rw-r--r-- root/root 0 2016-07-18 10:16 dd/aa

[root@localhost ~]#

rpm用法

abrt-libs-2.0.8-15.e16.centos.i686.rpm

abrt-cli爲包名,2.0.8爲版本信息,15.e16爲發佈版本號,i686爲運行平臺。i386\i586\i686\爲32 位平臺,x86_64爲64平臺。若是有noarch表明沒有硬件平臺限制。

 

 

 

使用示例:

查詢是否安裝此軟件包

rpm –qa

 

[root@controller others(keystone_admin)]# rpm -qa autogen-libopts

autogen-libopts-5.18-5.el7.x86_64

 

查詢已安裝的rpm包相關信息

rpm –qi

 

[root@controller others(keystone_admin)]# rpm -qi autogen-libopts

Name : autogen-libopts

Version : 5.18

Release : 5.el7

Architecture: x86_64

Install Date: Mon 15 Aug 2016 02:56:46 PM CST

Group : System Environment/Libraries

Size : 145381

License : LGPLv3+

Signature : RSA/SHA256, Fri 04 Jul 2014 08:44:16 AM CST, Key ID 24c6a8a7f4a80eb5

Source RPM : autogen-5.18-5.el7.src.rpm

Build Date : Tue 10 Jun 2014 11:19:30 AM CST

Build Host : worker1.bsys.centos.org

Relocations : (not relocatable)

Packager : CentOS BuildSystem <http://bugs.centos.org>

Vendor : CentOS

URL : http://www.gnu.org/software/autogen/

Summary : Automated option processing library based on autogen

Description :

Libopts is very powerful command line option parser consisting of a set of

AutoGen templates and a run time library that nearly eliminates the hassle of

parsing and documenting command line options.

[root@controller others(keystone_admin)]#

 

 

列出一個rpm包安裝的文件

rpm –ql

[root@controller others(keystone_admin)]# rpm -ql autogen-libopts

/usr/lib64/libopts.so.25

/usr/lib64/libopts.so.25.15.0

/usr/share/doc/autogen-libopts-5.18

/usr/share/doc/autogen-libopts-5.18/COPYING.lgplv3

/usr/share/doc/autogen-libopts-5.18/COPYING.mbsd

[root@controller others(keystone_admin)]#

 

列出某一個文件屬於哪一個rpm包

rpm –qf

 

[root@controller others(keystone_admin)]# rpm -qf /usr/lib64/libopts.so.25

autogen-libopts-5.18-5.el7.x86_64

[root@controller others(keystone_admin)]#

安裝

rpm –ivh

卸載

rpm –e

升級

rpm –Uvh

--force強制安裝,即便覆蓋屬於其餘包的文件也要安裝

--nodeps,即便依賴包沒有安裝,也安裝。

 

rpm - RPM Package Manager

yum

yum用法

啓動一個yum shell

yum shell

查看支持的包列表,若是安裝顯示@,未安裝顯示base,extras,須要升級顯示updates。

yum list 或者yum list | egrep –I vim

安裝

yum instal –y

查看支持的yum源支持的包數量

yum repolist

生成yum數據庫緩存

yum makecache

清除緩存

yum clean all

卸載包

yum remove

查看某個包詳細信息

yum info zlib-devel.i686

從yum源中下載rpm包

 

 

安裝download

yum install yum-plugin-downloadonly.noarch

注意已經安裝的包不能再下載的

yum reinstall vim –y –downloadonly –downloaddir=/tmp

日常用這個就Ok了。

yum install vim –y downloadonly –downloaddir=/tmp/

 

用yumdownloader

建立一個yum源

示例:

CentOS7.1安裝rpm包時提示缺失包,有些包iso裏面也沒有,只能從外網yum,這種狀況下,能夠提早yum好所需的依賴包,作成一個本地yum源。將這些文件拷貝到沒聯網的機器就可使用了。

提示缺乏包

[root@localhost ~]# rpm -ivh leofs_mond-20110411-74.i386.rpm

 

error: Failed dependencies:

 

libc.so.6 is needed by leofs_mond-20110411-74.i386

 

libc.so.6(GLIBC_2.0) is needed by leofs_mond-20110411-74.i386

 

libc.so.6(GLIBC_2.1) is needed by leofs_mond-20110411-74.i386

 

libc.so.6(GLIBC_2.1.3) is needed by leofs_mond-20110411-74.i386

 

libc.so.6(GLIBC_2.2) is needed by leofs_mond-20110411-74.i386

 

libc.so.6(GLIBC_2.3) is needed by leofs_mond-20110411-74.i386

 

libc.so.6(GLIBC_2.3.3) is needed by leofs_mond-20110411-74.i386

 

libc.so.6(GLIBC_2.3.4) is needed by leofs_mond-20110411-74.i386

 

libc.so.6(GLIBC_2.4) is needed by leofs_mond-20110411-74.i386

 

libcrypt.so.1 is needed by leofs_mond-20110411-74.i386

 

libdl.so.2 is needed by leofs_mond-20110411-74.i386

 

libm.so.6 is needed by leofs_mond-20110411-74.i386

 

libm.so.6(GLIBC_2.0) is needed by leofs_mond-20110411-74.i386

 

libnsl.so.1 is needed by leofs_mond-20110411-74.i386

 

libpthread.so.0 is needed by leofs_mond-20110411-74.i386

 

libpthread.so.0(GLIBC_2.0) is needed by leofs_mond-20110411-74.i386

 

libpthread.so.0(GLIBC_2.1) is needed by leofs_mond-20110411-74.i386

 

libpthread.so.0(GLIBC_2.1.1) is needed by leofs_mond-20110411-74.i386

 

libpthread.so.0(GLIBC_2.2) is needed by leofs_mond-20110411-74.i386

 

libpthread.so.0(GLIBC_2.3.2) is needed by leofs_mond-20110411-74.i386

 

libpthread.so.0(GLIBC_2.4) is needed by leofs_mond-20110411-74.i386

 

libresolv.so.2 is needed by leofs_mond-20110411-74.i386

 

librt.so.1 is needed by leofs_mond-20110411-74.i386

 

[root@localhost ~]#

 

下載製做yum源數據庫工具createrepo

[root@localhost ~]# yum -y install createrepo

 

Loaded plugins: fastestmirror

 

base | 3.6 kB 00:00:00

 

extras | 3.4 kB 00:00:00

 

updates | 3.4 kB 00:00:00

 

(1/4): extras/7/x86_64/primary_db | 117 kB 00:00:00

 

(2/4): base/7/x86_64/group_gz | 155 kB 00:00:01

 

(3/4): updates/7/x86_64/primary_db | 4.1 MB 00:00:04

 

(4/4): base/7/x86_64/primary_db | 5.3 MB 00:00:08

 

Determining fastest mirrors

 

* base: mirrors.skyshe.cn

 

* extras: mirrors.neusoft.edu.cn

 

* updates: mirrors.zju.edu.cn

 

Resolving Dependencies

 

--> Running transaction check

 

---> Package createrepo.noarch 0:0.9.9-25.el7_2 will be installed

 

--> Processing Dependency: python-deltarpm for package: createrepo-0.9.9-25.el7_2.noarch

 

--> Processing Dependency: libxml2-python for package: createrepo-0.9.9-25.el7_2.noarch

 

--> Processing Dependency: deltarpm for package: createrepo-0.9.9-25.el7_2.noarch

 

--> Running transaction check

 

---> Package deltarpm.x86_64 0:3.6-3.el7 will be installed

 

---> Package libxml2-python.x86_64 0:2.9.1-6.el7_2.2 will be installed

 

--> Processing Dependency: libxml2 = 2.9.1-6.el7_2.2 for package: libxml2-python-2.9.1-6.el7_2.2.x86_64

 

---> Package python-deltarpm.x86_64 0:3.6-3.el7 will be installed

 

--> Running transaction check

 

---> Package libxml2.x86_64 0:2.9.1-5.el7_0.1 will be updated

 

---> Package libxml2.x86_64 0:2.9.1-6.el7_2.2 will be an update

 

--> Finished Dependency Resolution

 

 

 

Dependencies Resolved

 

 

 

=======================================================================================================================================================================

 

Package Arch Version Repository Size

 

=======================================================================================================================================================================

 

Installing:

 

createrepo noarch 0.9.9-25.el7_2 updates 92 k

 

Installing for dependencies:

 

deltarpm x86_64 3.6-3.el7 base 82 k

 

libxml2-python x86_64 2.9.1-6.el7_2.2 updates 245 k

 

python-deltarpm x86_64 3.6-3.el7 base 31 k

 

Updating for dependencies:

 

libxml2 x86_64 2.9.1-6.el7_2.2 updates 666 k

 

 

 

Transaction Summary

 

=======================================================================================================================================================================

 

Install 1 Package (+3 Dependent packages)

 

Upgrade ( 1 Dependent package)

 

 

 

Total download size: 1.1 M

 

Downloading packages:

 

Delta RPMs disabled because /usr/bin/applydeltarpm not installed.

 

warning: /var/cache/yum/x86_64/7/updates/packages/createrepo-0.9.9-25.el7_2.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEYs | 0 B --:--:-- ETA

 

Public key for createrepo-0.9.9-25.el7_2.noarch.rpm is not installed

 

(1/5): createrepo-0.9.9-25.el7_2.noarch.rpm | 92 kB 00:00:00

 

Public key for deltarpm-3.6-3.el7.x86_64.rpm is not installed

 

(2/5): deltarpm-3.6-3.el7.x86_64.rpm | 82 kB 00:00:00

 

(3/5): python-deltarpm-3.6-3.el7.x86_64.rpm | 31 kB 00:00:00

 

(4/5): libxml2-python-2.9.1-6.el7_2.2.x86_64.rpm | 245 kB 00:00:00

 

(5/5): libxml2-2.9.1-6.el7_2.2.x86_64.rpm | 666 kB 00:00:01

 

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

 

Total 768 kB/s | 1.1 MB 00:00:01

 

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

Importing GPG key 0xF4A80EB5:

 

Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"

 

Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5

 

Package : centos-release-7-1.1503.el7.centos.2.8.x86_64 (@anaconda)

 

From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

Running transaction check

 

Running transaction test

 

Transaction test succeeded

 

Running transaction

 

Installing : deltarpm-3.6-3.el7.x86_64 1/6

 

Installing : python-deltarpm-3.6-3.el7.x86_64 2/6

 

Updating : libxml2-2.9.1-6.el7_2.2.x86_64 3/6

 

Installing : libxml2-python-2.9.1-6.el7_2.2.x86_64 4/6

 

Installing : createrepo-0.9.9-25.el7_2.noarch 5/6

 

Cleanup : libxml2-2.9.1-5.el7_0.1.x86_64 6/6

 

Verifying : createrepo-0.9.9-25.el7_2.noarch 1/6

 

Verifying : python-deltarpm-3.6-3.el7.x86_64 2/6

 

Verifying : deltarpm-3.6-3.el7.x86_64 3/6

 

Verifying : libxml2-2.9.1-6.el7_2.2.x86_64 4/6

 

Verifying : libxml2-python-2.9.1-6.el7_2.2.x86_64 5/6

 

Verifying : libxml2-2.9.1-5.el7_0.1.x86_64 6/6

 

 

 

Installed:

 

createrepo.noarch 0:0.9.9-25.el7_2

 

 

 

Dependency Installed:

 

deltarpm.x86_64 0:3.6-3.el7 libxml2-python.x86_64 0:2.9.1-6.el7_2.2 python-deltarpm.x86_64 0:3.6-3.el7

 

 

 

Dependency Updated:

 

libxml2.x86_64 0:2.9.1-6.el7_2.2

 

 

 

Complete!

 

[root@localhost ~]#

 

下載所需的包上傳至/opt/rpm目錄

[root@localhost ~]# /usr/bin/yum install --downloaddir=/opt/rpm --downloadonly libc.so.6

 

Loaded plugins: fastestmirror

 

Loading mirror speeds from cached hostfile

 

* base: mirrors.skyshe.cn

 

* extras: mirrors.neusoft.edu.cn

 

* updates: mirrors.zju.edu.cn

 

Resolving Dependencies

 

--> Running transaction check

 

---> Package glibc.i686 0:2.17-106.el7_2.4 will be installed

 

--> Processing Dependency: glibc-common = 2.17-106.el7_2.4 for package: glibc-2.17-106.el7_2.4.i686

 

--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.17-106.el7_2.4.i686

 

--> Processing Dependency: libfreebl3.so for package: glibc-2.17-106.el7_2.4.i686

 

--> Running transaction check

 

---> Package glibc-common.x86_64 0:2.17-78.el7 will be updated

 

--> Processing Dependency: glibc-common = 2.17-78.el7 for package: glibc-2.17-78.el7.x86_64

 

---> Package glibc-common.x86_64 0:2.17-106.el7_2.4 will be an update

 

---> Package nss-softokn-freebl.x86_64 0:3.16.2.3-9.el7 will be updated

 

---> Package nss-softokn-freebl.i686 0:3.16.2.3-14.2.el7_2 will be installed

 

---> Package nss-softokn-freebl.x86_64 0:3.16.2.3-14.2.el7_2 will be an update

 

--> Running transaction check

 

---> Package glibc.x86_64 0:2.17-78.el7 will be updated

 

---> Package glibc.x86_64 0:2.17-106.el7_2.4 will be an update

 

--> Finished Dependency Resolution

 

 

 

Dependencies Resolved

 

 

 

=======================================================================================================================================================================

 

Package Arch Version Repository Size

 

=======================================================================================================================================================================

 

Installing:

 

glibc i686 2.17-106.el7_2.4 updates 4.2 M

 

Installing for dependencies:

 

nss-softokn-freebl i686 3.16.2.3-14.2.el7_2 updates 187 k

 

Updating for dependencies:

 

glibc x86_64 2.17-106.el7_2.4 updates 3.6 M

 

glibc-common x86_64 2.17-106.el7_2.4 updates 11 M

 

nss-softokn-freebl x86_64 3.16.2.3-14.2.el7_2 updates 204 k

 

 

 

Transaction Summary

 

=======================================================================================================================================================================

 

Install 1 Package (+1 Dependent package)

 

Upgrade ( 3 Dependent packages)

 

 

 

Total download size: 20 M

 

Background downloading packages, then exiting:

 

Delta RPMs reduced 3.8 M of updates to 842 k (78% saved)

 

(1/5): nss-softokn-freebl-3.16.2.3-14.2.el7_2.i686.rpm | 187 kB 00:00:00

 

(2/5): nss-softokn-freebl-3.16.2.3-9.el7_3.16.2.3-14.2.el7_2.x86_64.drpm | 44 kB 00:00:00

 

(3/5): glibc-2.17-78.el7_2.17-106.el7_2.4.x86_64.drpm | 798 kB 00:00:00

 

(4/5): glibc-2.17-106.el7_2.4.i686.rpm | 4.2 MB 00:00:04

 

(5/5): glibc-common-2.17-106.el7_2.4.x86_64.rpm | 11 MB 00:00:35

 

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

 

Total 483 kB/s | 17 MB 00:00:35

 

exiting because "Download Only" specified

 

[root@localhost ~]#

 

建立repo數據庫

[root@localhost ~]# createrepo -p -d -o /opt/rpm/ /opt/rpm/

 

Spawning worker 0 with 5 pkgs

 

Workers Finished

 

Saving Primary metadata

 

Saving file lists metadata

 

Saving other metadata

 

Generating sqlite DBs

 

Sqlite DBs complete

 

[root@localhost ~]#

 

更新repo元數據(可選操做)

 

 

 

[root@localhost ~]# createrepo --update /opt/rpm/

 

Saving Primary metadata

 

Saving file lists metadata

 

Saving other metadata

 

Generating sqlite DBs

 

Sqlite DBs complete

 

[root@localhost ~]#

 

 

 

確認repo元數據

[root@localhost rpm]# ls

 

glibc-2.17-106.el7_2.4.i686.rpm glibc-common-2.17-106.el7_2.4.x86_64.rpm nss-softokn-freebl-3.16.2.3-14.2.el7_2.x86_64.rpm

 

glibc-2.17-106.el7_2.4.x86_64.rpm nss-softokn-freebl-3.16.2.3-14.2.el7_2.i686.rpm repodata

 

[root@localhost rpm]# cd repodata/

 

[root@localhost repodata]# ls

 

041cca5c43f978a01b7aa183d437b2f208629512ad7c39e618b7d252c2c8dc92-primary.sqlite.bz2

 

3c112b1ac138d54957b4333ce830986196e64121ca97add7dc0b077b44a02868-other.xml.gz

 

762a63333594c82421ddf6abc7e94f76538a3fc74a2c72c691c47449a5251f26-other.sqlite.bz2

 

9ced1af354247835727999f8dd9566ac67259e375ebe321fbc627d32243918e8-filelists.xml.gz

 

ae83cc34b4f68138398c2bc2bb7de716bdf459c5064a0c6f86e1ee80b36410e2-primary.xml.gz

 

ff9c201de18d66af38f838314419114402666926f2eb03c0008be6cd0737e41a-filelists.sqlite.bz2

 

repomd.xml

 

[root@localhost repodata]# pwd

 

/opt/rpm/repodata

 

[root@localhost repodata]#

 

編輯repo文件

[root@localhost yum.repos.d]# ls

 

CentOS-CR.repo yumback

 

[root@localhost yum.repos.d]# cat CentOS-CR.repo

 

# CentOS-CR.repo

 

#

 

# The Continuous Release ( CR ) repository contains rpms that are due in the next

 

# release for a specific CentOS Version ( eg. next release in CentOS-7 ); these rpms

 

# are far less tested, with no integration checking or update path testing having

 

# taken place. They are still built from the upstream sources, but might not map

 

# to an exact upstream distro release.

 

#

 

# These packages are made available soon after they are built, for people willing

 

# to test their environments, provide feedback on content for the next release, and

 

# for people looking for early-access to next release content.

 

#

 

# The CR repo is shipped in a disabled state by default; its important that users

 

# understand the implications of turning this on.

 

#

 

# NOTE: We do not use a mirrorlist for the CR repos, to ensure content is available

 

# to everyone as soon as possible, and not need to wait for the external

 

# mirror network to seed first. However, many local mirrors will carry CR repos

 

# and if desired you can use one of these local mirrors by editing the baseurl

 

# line in the repo config below.

 

#

 

 

 

[cr]

 

name=CentOS-$releasever - cr

 

baseurl=file:///opt/rpm

 

#http://mirror.centos.org/centos/releasever/cr/

 

basearch/

 

gpgcheck=0

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

enabled=1

 

[root@localhost yum.repos.d]#

 

驗證repo

 

 

 

[root@localhost yum.repos.d]# yum clean all

 

Loaded plugins: fastestmirror

 

Cleaning repos: cr

 

Cleaning up everything

 

Cleaning up list of fastest mirrors

 

[root@localhost yum.repos.d]# yum repolist

 

Loaded plugins: fastestmirror

 

cr | 2.9 kB 00:00:00

 

cr/primary_db | 9.4 kB 00:00:00

 

Determining fastest mirrors

 

repo id repo name status

 

cr CentOS-7 - cr 5

 

repolist: 5

 

[root@localhost yum.repos.d]#

 

從作好的repo源中安裝缺失包

[root@localhost ~]# yum install libc.so.6

 

Loaded plugins: fastestmirror

 

Loading mirror speeds from cached hostfile

 

Resolving Dependencies

 

--> Running transaction check

 

---> Package glibc.i686 0:2.17-106.el7_2.4 will be installed

 

--> Processing Dependency: glibc-common = 2.17-106.el7_2.4 for package: glibc-2.17-106.el7_2.4.i686

 

--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.17-106.el7_2.4.i686

 

--> Processing Dependency: libfreebl3.so for package: glibc-2.17-106.el7_2.4.i686

 

--> Running transaction check

 

---> Package glibc-common.x86_64 0:2.17-78.el7 will be updated

 

--> Processing Dependency: glibc-common = 2.17-78.el7 for package: glibc-2.17-78.el7.x86_64

 

---> Package glibc-common.x86_64 0:2.17-106.el7_2.4 will be an update

 

---> Package nss-softokn-freebl.x86_64 0:3.16.2.3-9.el7 will be updated

 

---> Package nss-softokn-freebl.i686 0:3.16.2.3-14.2.el7_2 will be installed

 

---> Package nss-softokn-freebl.x86_64 0:3.16.2.3-14.2.el7_2 will be an update

 

--> Running transaction check

 

---> Package glibc.x86_64 0:2.17-78.el7 will be updated

 

---> Package glibc.x86_64 0:2.17-106.el7_2.4 will be an update

 

--> Finished Dependency Resolution

 

 

 

Dependencies Resolved

 

 

 

=======================================================================================================================================================================

 

Package Arch Version Repository Size

 

=======================================================================================================================================================================

 

Installing:

 

glibc i686 2.17-106.el7_2.4 cr 4.2 M

 

Installing for dependencies:

 

nss-softokn-freebl i686 3.16.2.3-14.2.el7_2 cr 187 k

 

Updating for dependencies:

 

glibc x86_64 2.17-106.el7_2.4 cr 3.6 M

 

glibc-common x86_64 2.17-106.el7_2.4 cr 11 M

 

nss-softokn-freebl x86_64 3.16.2.3-14.2.el7_2 cr 204 k

 

 

 

Transaction Summary

 

=======================================================================================================================================================================

 

Install 1 Package (+1 Dependent package)

 

Upgrade ( 3 Dependent packages)

 

 

 

Total download size: 20 M

 

Is this ok [y/d/N]: y

 

Downloading packages:

 

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

 

Total 138 MB/s | 20 MB 00:00:00

 

Running transaction check

 

Running transaction test

 

Transaction test succeeded

 

Running transaction

 

Updating : glibc-common-2.17-106.el7_2.4.x86_64 1/8

 

Updating : glibc-2.17-106.el7_2.4.x86_64 2/8

 

Updating : nss-softokn-freebl-3.16.2.3-14.2.el7_2.x86_64 3/8

 

Installing : nss-softokn-freebl-3.16.2.3-14.2.el7_2.i686 4/8

 

Installing : glibc-2.17-106.el7_2.4.i686 5/8

 

Cleanup : glibc-common-2.17-78.el7.x86_64 6/8

 

Cleanup : glibc-2.17-78.el7.x86_64 7/8

 

Cleanup : nss-softokn-freebl-3.16.2.3-9.el7.x86_64 8/8

 

Verifying : nss-softokn-freebl-3.16.2.3-14.2.el7_2.x86_64 1/8

 

Verifying : glibc-2.17-106.el7_2.4.i686 2/8

 

Verifying : glibc-common-2.17-106.el7_2.4.x86_64 3/8

 

Verifying : nss-softokn-freebl-3.16.2.3-14.2.el7_2.i686 4/8

 

Verifying : glibc-2.17-106.el7_2.4.x86_64 5/8

 

Verifying : glibc-2.17-78.el7.x86_64 6/8

 

Verifying : nss-softokn-freebl-3.16.2.3-9.el7.x86_64 7/8

 

Verifying : glibc-common-2.17-78.el7.x86_64 8/8

 

 

 

Installed:

 

glibc.i686 0:2.17-106.el7_2.4

 

 

 

Dependency Installed:

 

nss-softokn-freebl.i686 0:3.16.2.3-14.2.el7_2

 

 

 

Dependency Updated:

 

glibc.x86_64 0:2.17-106.el7_2.4 glibc-common.x86_64 0:2.17-106.el7_2.4 nss-softokn-freebl.x86_64 0:3.16.2.3-14.2.el7_2

 

 

 

Complete!

 

正常安裝

[root@localhost ~]# rpm -ivh leofs_mond-20110411-74.i386.rpm

 

Preparing... ################################# [100%]

 

Updating / installing...

 

1:leofs_mond-20110411-74 ################################# [100%]

 

[root@localhost ~]# service leofs_mond status

 

leofs_mond.service - SYSV: leofs_mond startup script

 

Loaded: loaded (/etc/rc.d/init.d/leofs_mond)

 

Active: active (running) since Thu 2016-05-12 21:03:39 CST; 4s ago

 

Process: 12502 ExecStart=/etc/rc.d/init.d/leofs_mond start (code=exited, status=0/SUCCESS)

 

CGroup: /system.slice/leofs_mond.service

 

├─12514 /LeoCluster/bin/leofs_mond -c /LeoCluster/conf/leofs_mond.conf

 

└─12515 /LeoCluster/bin/leofs_mond -c /LeoCluster/conf/leofs_mond.conf

 

 

 

May 12 21:03:39 localhost.localdomain systemd[1]: Starting SYSV: leofs_mond startup script...

 

May 12 21:03:39 localhost.localdomain leofs_mond[12502]: Starting leofs_mond: [ OK ]

 

May 12 21:03:39 localhost.localdomain systemd[1]: Started SYSV: leofs_mond startup script.

 

May 12 21:03:39 localhost.localdomain leofs_mond[12514]: leofs_mond master 12514 start.

 

May 12 21:03:39 localhost.localdomain leofs_mond[12515]: leofs_mond worker 12515 start.

 

[root@localhost ~]#

源碼編譯用法

大部分軟件是經過源碼安裝,安裝一個源碼包,是須要把源代碼編譯成二進制可執行文件。

好處是能夠自定義修改源代碼外還能夠定製相關功能。常見的源碼包編譯器是GCC。

常見的3個步驟:

./config菌體能夠用./configure –help查看,在這一步檢測系統與套件是否有編譯須要的庫,缺乏某個庫不能完成編譯。只有檢測後纔會生成一個MakeFile文件。經常使用—prefix=/tmp指定安裝位置。

make根據makefile文件中預設參數編譯,實際上是gcc在工做。

make install,生成相關的軟件存放目錄和配置文件的過程。

mod

 

lsmod用法

確認bonding是否被加載

lsmod | egrep –I bonding

[root@cs1w1 modprobe.d]# man lsmod

LSMOD(8) LSMOD(8)

 

NAME

lsmod - program to show the status of modules in the Linux Kernel

 

insmod用法

使用示例:

insmod /root/bonding

 

 

 

[root@cs1w1 modprobe.d]# man insmod

INSMOD(8) INSMOD(8)

 

NAME

insmod - simple program to insert a module into the Linux Kernel

 

 

 

modprobe用法

查看module文件

modprobe –l

加載bonding信息

modprobe bonding

刪除bonding

modprobe –r bonding

NAME

modprobe - program to add and remove modules from the Linux Kernel

 

 

 

rmmod用法

用法:

rmmod bonding

 

 

 

 

 

NAME

rmmod - simple program to remove a module from the Linux Kernel

 

 

modinfo用法

查看bonding module 信息:

modinfo bonding

 

 

DESCRIPTION

modinfo extracts information from the Linux Kernel modules given on the command line. If the module name is not a filename, then the /lib/modules/version directory is searched, as done by modprobe(8).

 

 

lvm用法

///pv建立

pvcreate /dev/sdb1 /dev/sdc1

///pv刪除

pvremove /dev/sdb1

///查看

pvs

pvdisplay

pvscan

 

 

///vg建立

vgcreate centos /dev/sdb1/dev/sdc1

///vg刪除

vgremove centos

///vg更名字

 

///vg擴展

 

vgextend centos /dev/sdc

 

///激活,關閉vg

 

vgchange -a y

 

vgchange -a n

 

 

 

 

 

 

 

///lv 建立,-l指定pe數量,-L指定lv容量

 

lvcreate -l 10238 -n home centos

 

lvcreate -L 39.99g -n home centos

 

///lv刪除

 

lvremove -f /dev/mapper/centos-centos--home

 

///激活,關閉lv

 

lvchange -an /dev/mapper/centos-home

 

lvchange -ay /dev/mapper/centos-home

 

/// lv更名字

 

///lv擴展

 

確認vg可用pe數量

 

vgdisplay

 

擴展Lv pe數量

 

lvresize -l +4606 /dev/centos/home

 

從新調整文件系統大小

 

resize2fs /dev/centos/home

 

 

 

///lv縮減

 

卸載現有掛載分區

 

umount /home

 

執行檢查

 

e2fsck -f /dev/mapper/centos-home

 

執行文件系統縮減後爲22GB

 

resize2fs /dev/centos/home 22G

 

執行lv縮減,-L指定縮減後爲22GB,-L -22G指定縮減22GB。

 

lvresize -L 22G /dev/centos/home

 

lvresize -L -22G /dev/centos/home

 

 

 

 

 

///格式化,掛載,寫入分區表

 

格式化

 

mkfs.ext4 /dev/centos/home

 

掛載

 

mount /dev/centos/home /home/

 

寫入開機啓動分區表

 

/dev/mapper/centos-home /home ext4 defaults 2 1

 

執行分區表檢查

 

mount -av

時間

用tzselect配置時區和location

[root@localhost Asia]# /usr/bin/tzselect

 

Please identify a location so that time zone rules can be set correctly.

 

Please select a continent or ocean.

 

1) Africa

 

2) Americas

 

3) Antarctica

 

4) Arctic Ocean

 

5) Asia

 

6) Atlantic Ocean

 

7) Australia

 

8) Europe

 

9) Indian Ocean

 

10) Pacific Ocean

 

11) none - I want to specify the time zone using the Posix TZ format.

 

#選擇時區

 

#? 11

 

Please enter the desired value of the TZ environment variable.

 

For example, GST-10 is a zone named GST that is 10 hours ahead (east) of UTC.

 

#鍵入CST+0中國時區

 

#UTC爲國際時區

 

CST+0

 

awk: cmd. line:5: warning: escape sequence `\.' treated as plain `.'

 

 

 

The following information has been given:

 

 

 

TZ='CST+0'

 

 

 

Therefore TZ='CST+0' will be used.

 

Local time is now: Thu May 12 18:13:06 CST 2016.

 

Universal Time is now: Thu May 12 18:13:06 UTC 2016.

 

Is the above information OK?

 

1) Yes

 

2) No

 

#? 1

 

 

 

You can make this change permanent for yourself by appending the line

 

TZ='CST+0'; export TZ

 

to the file '.profile' in your home directory; then log out and log in again.

 

 

 

Here is that TZ value again, this time on standard output so that you

 

can use the /usr/bin/tzselect command in shell scripts:

 

CST+0

 

[root@localhost Asia]# /usr/bin/tzselect

 

Please identify a location so that time zone rules can be set correctly.

 

Please select a continent or ocean.

 

1) Africa

 

2) Americas

 

3) Antarctica

 

4) Arctic Ocean

 

5) Asia

 

6) Atlantic Ocean

 

7) Australia

 

8) Europe

 

9) Indian Ocean

 

10) Pacific Ocean

 

11) none - I want to specify the time zone using the Posix TZ format.

 

#? 5

 

Please select a country.

 

1) Afghanistan 18) Israel 35) Palestine

 

2) Armenia 19) Japan 36) Philippines

 

3) Azerbaijan 20) Jordan 37) Qatar

 

4) Bahrain 21) Kazakhstan 38) Russia

 

5) Bangladesh 22) Korea (North) 39) Saudi Arabia

 

6) Bhutan 23) Korea (South) 40) Singapore

 

7) Brunei 24) Kuwait 41) Sri Lanka

 

8) Cambodia 25) Kyrgyzstan 42) Syria

 

9) China 26) Laos 43) Taiwan

 

10) Cyprus 27) Lebanon 44) Tajikistan

 

11) East Timor 28) Macau 45) Thailand

 

12) Georgia 29) Malaysia 46) Turkmenistan

 

13) Hong Kong 30) Mongolia 47) United Arab Emirates

 

14) India 31) Myanmar (Burma) 48) Uzbekistan

 

15) Indonesia 32) Nepal 49) Vietnam

 

16) Iran 33) Oman 50) Yemen

 

17) Iraq 34) Pakistan

 

#? 9

 

Please select one of the following time zone regions.

 

1) Beijing Time

 

2) Xinjiang Time

 

#? 1

 

 

 

The following information has been given:

 

 

 

China

 

Beijing Time

 

 

 

Therefore TZ='Asia/Shanghai' will be used.

 

Local time is now: Fri May 13 02:13:32 CST 2016.

 

Universal Time is now: Thu May 12 18:13:32 UTC 2016.

 

Is the above information OK?

 

1) Yes

 

2) No

 

#? 1

 

 

 

You can make this change permanent for yourself by appending the line

 

TZ='Asia/Shanghai'; export TZ

 

to the file '.profile' in your home directory; then log out and log in again.

 

 

 

Here is that TZ value again, this time on standard output so that you

 

can use the /usr/bin/tzselect command in shell scripts:

 

Asia/Shanghai

 

[root@localhost Asia]# date

 

Thu May 12 18:13:40 CST 2016

 

[root@localhost Asia]# clock

 

Thu 12 May 2016 06:13:44 PM CST -0.396667 seconds

 

[root@localhost Asia]#

 

#加入全局環境變量

vi /etc/profile

 

export TZ='CST+0'

 

 

 

硬件和系統時間同步

date -s 14:20:50

 

hwclock --show 或者

clock --show

設置硬件時間

hwclock --set --date="06/18/14 14:55" (月/日/年時:分:秒)或者# clock --set --date="06/18/14 14:55" (月/日/年時:分:秒)

硬件時鐘與系統時鐘同步:

# hwclock --hctosys 或者 # clock --hctosys hc表明硬件時間,sys表明系統時間,即用硬件時鐘同步系統時鐘

系統時鐘和硬件時鐘同步:

# hwclock --systohc或者# clock --systohc 即用系統時鐘同步硬件時鐘

修改配置文件來修改時區

後臺運行

nohup用法

#直接加&在後臺,若是退出終端,腳本也會退出,加上nohup沒問題,產生的日誌在Nohup文件中

示例:

nohup sh /root/aa.sh &

 

 

screen用法

多個進程之間多路複用一個終端管理器。

查看會話列表

screen –ls

新建一個test會話

screen –S test

ctrl+a,再按d退出會話,不影響終端窗口上的任何操做。

 

從新鏈接detach的會話

screen –r test

 

swap

使用硬盤文件增長swap空間

///建立文件

dd if=/dev/zero of=/SWAP/swapfile bs=1M count=1000

///格式化

mkswap /SWAP/swapfile

///添加

swapon /SWAP/swapfile

///開啓啓動

vi /etc/fstab

/usr/swap/swapfile swap defaults 0 0

UUID=215c17ef-145c-419c-afdc-461b8a4fb66b swap swap defaults 0 0

///校驗

mount -av

free –g

 

修改cenots7密碼

進入grub菜單後按e

找到ro字符,替換成rw init=/sysroot/bin/sh

按ctrl+x進入emergecy模式

鍵入chroot /sysroot

後輸入passwd改變root密碼

執行touch /.autorelabel

輸入exit退出chroot模式,而後reboot重啓完成。

 

製做一個系統服務

http://www.2cto.com/os/201202/121249.html

 

 

文件系統配置/LVM快照

http://www.cnblogs.com/guojintao/p/5718679.html

相關文章
相關標籤/搜索