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文件來執行相應腳本系統初始化。
用Jobs查看暫停的任務,能夠用fg調至前臺繼續運行。
暫停的任務用bg調至後臺運行,不在前臺顯示。
crtl+c終止當前命令
crtl+D,退出當前終端,也能夠輸入exit
ctrl+z,暫停當前進程,能夠用fg恢復,暫停的進程也能夠用jobs查看
ctrl+L,清屏
ctrl+u,刪除前面敲的字符
ctrl+A,移動光標至行首
crtl+E移動光標到行尾。
直接輸入arp就好了,能夠查同一局域網中與之有通訊的設備的mac。
經常使用route -n或者-C
通常用這2個
netstat –lnp查看當前系統啓動哪些端口
netstat –an查看網絡鏈接情況
選項:
-nn顯示成ip+端口號形式
-i跟設備名稱
-c指定包數量
-w寫入指定文件中,可用wireshark查看
通常用lsblk或者lsblk -f就能夠了。
通常用lsscsi --list或者lsscsi就能夠了。
lsblk能夠查看到硬盤分區狀態或者已經掛載的文件系統mount point。
lsscsi能夠查看到詳細的某塊硬盤的狀態,如timeout或者queue_depth。
g快速返回文件首部
G快速到文本最末端
/當前行向下搜索
?當前行向上搜索
n顯示下一個
q退出
r拷貝一個目錄必須加這個
r刪除目錄
f強制刪除
p不存在的目錄會報錯,須要加這個。
-A顯示全部東東,包括特殊字符。
n顯示前面多少行
n顯示後面多少行,f動態跟蹤顯示
第1列:
d標示目錄-標示普通文件l標示連接文件b標示塊設備c表示串行端口設備s標示套接字文件
r讀w寫x執行,前3位全部者user權限,中間3位所屬組權限最後3位其餘非本羣組權限。
第2列:
Inode,這個數值與目錄下有多少一級子目錄有關係。
第3列:全部者
第4列:所述組
第5列:文件大小
第六、七、8列:修改日期
第9列:文件名文件名
-R表示級聯更改
可用數字表示r=4,w=2,x=1
可用縮寫表示u=rwx,g=rwx,o=rwx ;u-x,a-x
root用戶,默認一個目錄權限爲755,一個文件默認權限爲644,普通用戶登陸一個目錄權限是775,一個文件權限是664
例如目錄最大權限777文件最大權限666,Umask設置後須要減掉的權限。
例如通常使用者爲umask 002,默認爲0022(前面那1位是特殊權限位),由於寫權限11分重要。
建立後目錄權限爲775,文件權限爲664
-R級聯更改
EXAMPLES
chown root /u
Change the owner of /u to "root".
chown root:staff /u
Likewise, but also change its group to "staff".
EXAMPLES
chgrp staff /u
Change the group of /u to "staff".
chgrp -hR staff /u
Change the group of /u and subfiles to "staff".
+-=分別爲增長、減小、設定
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]#
-a相似與ls -a連同隱藏文件一同列出
-R連同子目錄數據一同列出
針對二進制可執行文件,在執行階段具備文件全部者的權限。建立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 ~]$
設置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]$
防刪除位,即便對目錄擁有寫權限,也不能刪除其餘用戶的文件,建立+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用法
u更改用戶uid
G更改用戶屬組,也能夠跟組id
d更改用戶家目錄
S更改用戶shell
Passwd用法
-stdin從標準輸入設置密碼,適用於腳本
-d刪除密碼
-e設置密碼過時
-x設置密碼最大生命週期
-w設置密碼過時提示週期
生成密碼,安裝一個expect包纔可使用
-s指定特殊字符個數
-d指定數字個數
-l指定密碼個數
Su用法
-須要加這個
C指定執行命令
su – apugyt –c "touch /home/apugyt/apugytsuswitchtest"
普通用戶登陸沒法執行一些命令操做,若是告知給普通用戶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用法
l指定某個盤
w寫入
p主分區
e擴展分區
一個磁盤只能有4個主分區,或者3個主分區,一個擴展分區,而後是邏輯分區。
EXAMPLES:
加標籤
parted /dev/sdb mklabel gpt
分區
parted /dev/sdb mkpart PartedTest 0% 100%
格式化文件系統
mkfs.ext4 /dev/sdb1
經常使用
加
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用法
-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: -
查看分區標籤
[root@localhost ~]# e2label /dev/sdb1
ext4mke2fstest
[root@localhost ~]#
若是須要開機啓動建議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/
l強制卸載
[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:啓動羣組磁盤配額模式
第一行顯示當前時間,系統運行時間,登錄用戶數量,系統負載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用法
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用法
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 –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。
通常查看剩餘看第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 ~]#
STAT進程狀態:
D不能中斷,一般爲IO
R正在運行的進程
S已經中斷,系統大部分進程都在這個狀態
T,已經中止或暫停的進程
Z殭屍進程,佔系統一點資源,少了沒問題,多了就有問題了。
<高優先級進程
N低優先級進程
L在內存中被鎖了內存分頁
s主進程
l多線程進程
+在前臺運行的進程
i顯示inode
k顯示1k block
m顯示1M block
h顯示任性化
T顯示文件系統
通常用df -hT
b顯示bytes
k顯示kB
m顯示mB
h人性化顯示
s顯示聚合
S不包括子目錄
通常用du –sh
Atime:讀取或執行文件時更改的。
Mtime:吸入文件時隨文件內容更改而更改。
Ctime::寫入文件、更改全部者、權限或連接設置時隨inode的內容更改而更改的。
這3個time屬性都在inode中。若是指定了文件系統noatime參數,Atime不必定在訪問後修改。Mtime改了inode必定改,既然inode改了,ctime也得跟着改。
EXAMPLES:
查找本地主機使用端口範圍1-1024的進程。
NAME
lsof - list open files
EXAMPLES:
NAME
tree - list contents of directories in a tree-like format.
使用示例:
pstree - display a tree of processes
獲取狀態
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
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文件中。
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
日誌配置文件/etc/rsyslog.conf
控制如何日誌歸檔/etc/logrotate.conf
messages是系統核心日誌文件,若是服務沒有定義日誌,該服務產生日誌會到這個文件中,每週歸檔一次。
debug有調試信息的,日誌信息最多
info通常信息日誌,最經常使用
notice具備重要性的普通條件的信息
warning警告級別
err錯誤級別,阻止某個功能或模塊不能正常工做信息
crit嚴重級別,阻止系統或整個軟件不能正常工做的信息
alert須要當即修改信息
emerg內核崩潰等嚴重信息
none什麼都不記錄
示例:
有些時候過濾後的東西須要傳遞給後面其它命令執行實現需求,這個時候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。
與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/
-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]#
*表明0個或多個任意字符
?只表明一個任意的字符
\脫意,將shell特殊符號還原爲普通字符
$!上條命令中最後名稱
^開頭
^[^fs]除去
$?上條命令運行成功狀態值
;一行運行2個命令
&命令放在後臺執行
>重定向
>>追加劇定向
2>錯誤重定向
2>>錯誤追加劇定向
[]表明中間字符中任意一個字符
;無論command1是否成功都會執行command2
&&只有command1執行成功,command2纔會執行,不然不執行
||,command1執行成功後command2不執行,不然執行command2
學好正則收益無窮
.標示任意一個字符(包含特殊字符)
*標示零個或多個*前面的字符
.*表示任意個任意字符(包含空行)
+標示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的行
s替換
g全局替換
d刪除行
r調整位置
-i直接修改文件內容
#將1-2行含有aa替換成test
#將全部行的test字符替換成performance
#刪除1-11行
#刪除含有aa的行
#()標示1個總體,root和bash替換位置
[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.
-d指定分隔符
-f指定第幾段
-c跟數字,標示截取第幾個字符,或一個範圍區域
-t指定分隔符
-n使用純數字排序,若是對象時英文字母,按0處理。
-r反向排序
-u去重
-kn1,n2,對某1字段進行排序
針對第3字段純數字進行排序
默認從首字符排序
-c統計重複行數
須要先給文件排序,不然去重不生效。
比重定向多了個一個功能呢吸入後面文件同時打印在屏幕上。
-d刪除某個字符
-s重複字符去除
切割文檔
-b依據大小來分隔文檔,單位爲byte
-l依據行數來切割
後面跟字符,指定切割後的文件前綴名
使用示例:
wget link
Wget - The non-interactive network downloader.
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 ~]#
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 –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 –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 –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 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
安裝download
yum install yum-plugin-downloadonly.noarch
注意已經安裝的包不能再下載的
yum reinstall vim –y –downloadonly –downloaddir=/tmp
日常用這個就Ok了。
yum install vim –y downloadonly –downloaddir=/tmp/
用yumdownloader
示例:
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,生成相關的軟件存放目錄和配置文件的過程。
確認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 /root/bonding
[root@cs1w1 modprobe.d]# man insmod
INSMOD(8) INSMOD(8)
NAME
insmod - simple program to insert a module into the Linux Kernel
查看module文件
modprobe –l
加載bonding信息
modprobe bonding
刪除bonding
modprobe –r bonding
NAME
modprobe - program to add and remove modules from the Linux Kernel
用法:
rmmod bonding
NAME
rmmod - simple program to remove a module from the Linux Kernel
查看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).
///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
[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 sh /root/aa.sh &
多個進程之間多路複用一個終端管理器。
查看會話列表
screen –ls
新建一個test會話
screen –S test
ctrl+a,再按d退出會話,不影響終端窗口上的任何操做。
從新鏈接detach的會話
screen –r test
使用硬盤文件增長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
進入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