1.ls

查看目录信息

ls
#参数
-l	 以长格的形式显示属性信息
-a	显示所有文件
-h	以人类的可读形式显示
-i	显示inode号
-d	只显示目录信息
-t	按照时间排序
-r	倒叙排序
-1(数字1)	列表形式显示

2.cd

切换工作目录

.	当前目录
..	当前目录的上一级目录
-	返回上一次所在的位置
~	返回到当前用户的家目录
cd	返回到当前用户的家目录
/	进入/目录,顶点目录。

3.mkdir

创建文件夹

#参数
-p	递归创建
-v	显示创建过程
[root@git ~]# mkdir abc               #相对路径的写法
[root@git ~]# mkdir /data             #绝对路径的写法
[root@git ~]# mkdir -p /data/abc      #级联创建目录

4.rm

删除文件夹

[root@git ~]# rm abc
rm: 无法删除"abc": 是一个目录
[root@git ~]# rm -fr abc
[root@git ~]# echo $?
0

5.mv

修改文件夹名称

[root@git ~]# mv abc aaa
[root@git ~]# ll
-rw-r--r--  1 root root       473 7月  24 10:52 host_ip.sh
#移动文件或目录
[root@git ~]# mv host_ip.sh aaa
[root@git ~]# ll -l aaa
-rw-r--r-- 1 root root 473 7月  24 10:52 host_ip.sh

6.rename

用来批量更改文件名

[root@git aaa]# ll
-rw-r--r-- 1 root root 473 7月  24 10:52 host_ip.sh
[root@git aaa]# rename .sh .sh.bak *
[root@git aaa]# ll
-rw-r--r-- 1 root root 473 7月  24 10:52 host_ip.sh.bak

7. tree

以树状型显示目录结构。

#参数
-d	只显示目录 
-L	 显示目录层级
-f	只显示文件信息
-a	显示所有文件信息

8. cp

复制或者拷贝文件和目录

#参数
-r	递归复制
-p	保持属性
-a	=-pdr
-i	提示文件存在时是否覆盖(系统默认别名有)
-v	显示复制的过程
-t	把源路径和目标位置进行调换。

9.ln软连接

软链接:相当于windows的快捷方式,软链接文件会将inode指向源文件的block
命令:ln
语法:ln+原文件+目标
-s:做软链
-f:强制做
-v:反向做链接
&&:衔接多条命令,前面执行成功之后,再执行后面的
||:衔接多条命令,前面执行不成功,后面也要执行
实例:
#使用命令ln -s 创建链接
 
[root@Centos7 ~]#ln -s xcz/xcz.txt  /root/xcz.txt
[root@Centos7 ~]#ll -i
50707261 drwxr-xr-x. 2 root root       24 Jun 21 14:30 xcz
33575384 lrwxrwxrwx. 1 root root       17 Jun 21 14:45 xcz.txt -> xcz/xcz.txt
 
#软链接的应用场景
1)软件升级
2)代码发布
3)不方便移动的目录
4)数据回滚
5)程序读取

10.ln硬链接

#什么是硬链接?
硬链接:硬链接就是同一个文件使用了多个别名。
命令:ln(后面不加s)
语法:ln+原文件+目标
实例:
#使用命令ln -s 创建链接
[root@xcz /xcz]# ln /opt/xcz/xcz.txt  /xcz/xcz.txt
[root@xcz /xcz]# ll -i /xcz/
50735412 -rw-r--r-- 2 root root 0 Mar  7 21:55 xcz.txt
[root@xcz /xcz]# ll -i /opt/xcz/
50735412 -rw-r--r-- 2 root root 0 Mar  7 21:55 xcz.txt
 
注意:
1)具有同一个inode号的文件,互为硬链接文件
2)目录不能创建硬链接

11.touch

创建文件

[root@git aaa]# touch 123.txt
[root@git aaa]# echo "xcz" > abc.txt
[root@git aaa]# cat abc.txt 
xcz
#  ">"  标准输出重定向,覆盖文件内所有内容
[root@git aaa]# echo "123" >abc.txt 
[root@git aaa]# cat abc.txt 
123
#  “>>”	标准输出追加重定向,追加到文件结尾,不覆盖
[root@git aaa]# echo "456" >>abc.txt 
[root@git aaa]# cat abc.txt 
123
456

12.vim

文件编辑器

#三种模式:
普通模式(命令模式):普通模式:删除、复制、粘贴、撤销等操作
编辑模式:
底行模式(末行模式、视图模式)

vim视图模式(从命令模式进入视图模式):
Ctrl +v 进入VISUAL BLOCK 选中需要注释的行(可视模块)
1.插入:按shift+i进入编辑模式,输入 #结束按ESC键 
2.删除:选中内容后,按x或者d键删除 
3.替换:选中需要替换的内容, 按下r键,然后输入替换后的内容	
Shif + v 进入VISUAL LINE 选中行内容(可视模块)
1.复制:选中行内容后按y键及可复制。
2.删除:选中行内容后按d键删除。


#环境变量永久生效
~/.vimrc个人环境变量(优先级高)
 /etc/vimrc全局环境变量
语法检查及高亮;syntax on 
设定默认解码:set fenc=utf-8 
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 
显示行号:set number 
自动对齐,将当前行的对齐格式应用到下一行:set autoindent 
依据上面的对齐方式,智能的选择对齐方式:set smartindent
设置tab键为4个空格:set tabstop=4 
设置当行之间交错时使用4个空格:set shiftwidth=4 
设置在编辑过程中,与右下角显示光标位置状态行:set ruler 
设置增量搜索,这样的查询比较smart:set incsearch 
高亮显示匹配的括号:set showmatch 
匹配括号高亮时间:set matchtime=10 
在搜索的时间忽略大小写:set ignorecase 
当前行高亮显示:set cursorline 
支持256色:set t_Co=256 
使用molokai颜色模板:colorscheme molokai 

#如何同时编辑多个文件
vim -o file1 file2 水平分割 
vim -O file1 file2 垂直分割

#相同文件之间差异对比
diff 文件对比(用的不多) vim diff 以vim方式打开两个文件对比,标记不同的内容

#如果VIM非正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后
rm -f .filename.swp

1.vim命令模式快捷键

G 跳转到最后一行
gg/1G 跳转到首行
N(数字)G/Ngg N(数字)G/Ngg 跳转到某行
yy 复制当前行
Nyy 复制当前行及向下多少行,包含当前行
p 在当前行的所在位置的下一行进行粘贴
Np 向下粘贴多次
P 在当前行的所在位置的上一行进行粘贴
NP 向上粘贴多次
u 撤销
dd 删除当前行
Ndd 删除当前行及向下多少行,包含当前行。
dG 删除当前光标以下所有行。
x/delete 删除当前光标从前往后删除一个字符
X 删除当前光标从后往前删除一个字符
r 替换当前字符,单个进行替换
R 进行连续替换,在当前光标所在字符
^ 从前当前光标移动行首
$ 从前当前光标移动行尾
Ctrl键+f 向下翻页
Ctrl键+b 向上翻页
D 删除当前光标所在位置之后的内容,针对当前行的操作
de/dw 删除一组字符串
j 向下一个字符
k 向上一个字符
h 向左一个字符
l 向右一个字符
Nj 向下指定多少个字符
Nk 向上指定多少个字符
Nh 向左指定多少个字符
Nl 向右指定多少个字符
ZZ 保存退出

2.vim编辑模式快捷键

快捷键 动作
i 在当前光标所在位置前插入字符
a 在当前光标所在位置后插入字符
I 在当前光标所在行的行首插入字符
A 在当前光标所在行的行尾插入字符
o 在当前光标所在行的下一行插入字符
O 在当前光标所在行的上一行插入字符
s 删除当前光标所在字符,并在当前光标所在位置前插入字符
S 删除当前光标所在行,并进入编辑模式
C 删除当前光标所在位置之后的内容,并进入编辑模式
cw 删除一组字符串,会进入编辑模式

3.vim视图模式快捷键

快捷键 动作
:N 跳转到某行
:w 保存
:q 退出
:wq 保存退出
:q! 强制退出
:x 保存退出
/+内容 搜索
:%s###g 全局替换
:1,3s###g 替换第一行到第三行的内容

4.vim变量(临时生效)

快捷键 动作
:set nu 显示行号
:set nonu 取消
:set list 给每行的结尾添加一个标识符
:set nolist 取消

13.which

查找命令的绝对路径

[root@xcz /xcz]# which cd
/usr/bin/cd
[root@xcz /xcz]# which ld
/usr/bin/ld
[root@xcz /xcz]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@xcz /xcz]# which ip
/usr/sbin/ip

14.whereis

查找包含命令的名称绝对路径

[root@xcz /xcz]# whereis ip
ip: /usr/sbin/ip /usr/share/man/man8/ip.8.gz
[root@xcz /xcz]# whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
[root@xcz /xcz]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@xcz /xcz]# whereis cp
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz

15. typ

显示命令的绝对路径

[root@xcz /xcz]# type ip 
ip is /usr/sbin/ip
[root@xcz /xcz]# type cd
cd is a shell builtin
[root@xcz /xcz]# type ls
ls is aliased to `ls --color=auto'

16.cat

查看文件内容

#cat:查看文件的内容,会将文件的所有内容显示出来。
-n	显示行号 
[root@git opt]# cat -n /etc/passwd
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin

-A	给文件内容的每行结尾加个标识符。
[root@git opt]# cat -A /etc/passwd
root:x:0:0:root:/root:/bin/bash$
bin:x:1:1:bin:/bin:/sbin/nologin$
daemon:x:2:2:daemon:/sbin:/sbin/nologin$

17.tac

倒叙查看文件的内容

[root@git opt]# tac /etc/passwd
ntp:x:38:38::/etc/ntp:/sbin/nologin

18.more

分页显示文件的内容,文件显示完成会自动退出

快捷键 动作
空格/f 向下翻页
b 向上翻页
q 退出
/ 搜索关键字,不会高亮显示
= 显示当前光标所在行
-N(数字) 指定分页显示内容的行数
+N(数字) 指定从第几行显示文件内容

19.less

分页显示文件的内容,文件显示完成不会自动退出。

快捷键 动作
空格/f 向下翻页
b 向上翻页
q 退出
/ 搜索关键字,会高亮显示
-N 显示行号

20.head

显示文件头部信息,默认显示前十行

参数 说明
-n 取消默认输出,指定你要输出的行数
-N(数字) 显示文件内容的前多少行
-cN(数字) 显示文件内容的前多少个字符

21.tail

显示文件尾部信息,默认显示最后十行

参数 说明
-n 取消默认输出,指定你要输出的行数
-N(数字) 显示文件内容的最后多少行
-cN(数字) 显示文件内容的最后多少个字符
-f 实时查看文件内容的更新
-F 实时查看文件内容的更新,当文件不存在时,会一直尝试。

22.tailf

实时查看文件内容的更新

[root@git opt]# tailf /var/log/messages 
Nov 26 19:20:01 xcz systemd: Started Session 18 of user root.
Nov 26 19:30:02 xcz systemd: Started Session 19 of user root.
Nov 26 19:40:01 xcz systemd: Started Session 20 of user root.
Nov 26 19:50:01 xcz systemd: Started Session 21 of user root.

23. sort

排序,默认以空格为分隔符

#参数说明
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-o <输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t <分隔字符> 指定排序时所用的栏位分隔字符。
+  <起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
--help 显示帮助。
--version 显示版本信息。

#编辑文件
[root@xcz opt]# vim sort.txt 
b:3
c:2
a:4
e:5
d:1
f:11
#以冒号为分割字符,以字母进行排序
[root@xcz opt]# sort -t ':' -k1 sort.txt
a:4
b:3
c:2
d:1
e:5
f:11
#以冒号为分割字符,以第一位数字从小到大进行排序
[root@xcz opt]# sort -t ':' -k2 sort.txt
d:1
f:11
c:2
b:3
a:4
e:5
#以冒号为分割字符,以数字从小到大排序
[root@xcz opt]# sort -t ':' -nk2 sort.txt
d:1
c:2
b:3
a:4
e:5
f:11
#以冒号为分割字符,以数字从大到小排序
[root@xcz opt]# sort -t ':' -rnk2 sort.txt
f:11
e:5
a:4
b:3
c:2
d:1

24. uniq

去重

参数 说明
-c 统计次数
-d 只显示重复的行数
-u 只显示不重复的行数
#编辑文件
[root@xcz /xcz]# vim xcz.txt 
xcz
123
xcz
123
def
abc
def
xcz
xcz
123

#排序去重
[root@xcz /xcz]# sort xcz.txt | uniq
123
abc
def
xcz

#排序去重并统计次数
[root@xcz /xcz]# sort xcz.txt | uniq -c
      3 123
      1 abc
      2 def
      4 xcz
      
#排序去重、统计次数并从小到大排序
[root@xcz /xcz]# sort xcz.txt | uniq -c | sort -n
      1 abc
      2 def
      3 123
      4 xcz
      
#排序去重、统计次数并从大到小排序
[root@xcz /xcz]# sort xcz.txt | uniq -c | sort -nr
      4 xcz
      3 123
      2 def
      1 abc
      
#排序并只显示重复内容
[root@xcz /xcz]# sort xcz.txt | uniq -d
123
def
xcz

#排序并只显示非重复内容
[root@xcz /xcz]# sort xcz.txt | uniq -u
abc

25. wc

统计

参数 说明
-l 统计行号
-c 统计文件大小,字节数
-w 统计列数,默认以空格为分隔符
#统计密码文件有多少行
[root@xcz opt]# wc  -l  passwd 
23 passwd
#统计密码文件有多少字节
[root@xcz opt]# wc -c passwd
965 passwd
#统计密码文件有多少列
[root@xcz opt]# wc -w xcz.txt 
7 xcz.txt
#统计本地解析文件有多少列
[root@xcz opt]# wc -w  /etc/hosts
10 /etc/hosts
[root@xcz opt]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

26. cut

截取字符,没有默认的分隔符

参数 说明
-d 指定分隔符
-fN(数字) 取指定的列
-cN(数字) 取指定的字符
#查看密码文件第一行
[root@xcz opt]# head -1 passwd 
fbgroot:x:0:0:root:/root:/bin/bash
#以“:”为分隔,查看密码文件所有行的第7列
[root@xcz opt]# cut -d ':' -f7 passwd 
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
#以“:”为分隔,查看密码文件第一行的第7列
[root@xcz opt]# cut -d ':' -f7 passwd | head -1
/bin/bash
#读取eth0前三行	
[root@xcz opt]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::80b2:dc89:7adf:c7b1/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@xcz opt]# ip a s eth0 | head -3
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
#读取eth0第三行
[root@xcz opt]# ip a s eth0 | head -3 | tail -1
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0

#读取eth0的IP地址
[root@xcz opt]# ip a s eth0 | head -3 | tail -1 | cut -d ' ' -f6 |cut -d '/' -f1
10.0.0.100
[root@xcz opt]# ip a s eth0 | grep -w inet | cut -d ' ' -f6 |cut -d '/' -f1
10.0.0.100
[root@xcz opt]# ip a s eth0 | grep -w inet |tr '/' ' ' |cut -d ' ' -f6
10.0.0.100

27. tr

替换命令,单对单替换

#将xcz.txt文件内的“1”替换为“2”
[root@xcz opt]# tr  '1' '2'  < xcz.txt
xcz
223
xcz
223
#将xcz.txt文件内的“1”删除
-d    ---删除字符
[root@xcz opt]# tr -d 1 < xcz.txt
xcz
23
xcz
23

28.chmod

权限的管理

# 什么是权限
权限:就是针对某些文件或者进程,对用户进行限制

# 权限和用户的关系
drwxr-xr-x 2 root root 64 Jul 1 02:00 bak
文件类型    文件属主(所属用户)权限    文件所(属组)属用户组     其他用户
    d           rwx                        r-x                      r-x
     
硬链接数    文件的属主(所属用户)  文件的属组(所属用户组)    文件的大小(文件中的字节数)
    2           root                   root                       64
   
文件的修改时间     文件名
Jul  1 02:00        bak

# 标志
-          #普通文件
l          #软链接文件
s          #socket套接字
c          #块设备
d          #目录文件

# 权限对文件的作用
#读取权限(r)
文件只有r权限: 具有读取\阅读文件内容权限
1.能使用查看类命令cat、head、tail、less、more
2.不能复制、不能移动、不能编辑,不能删除

#写入权限(w)
如果文件只有w权限: 具有新增、修改文件内容的权限
1.使用vim编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
2.使用echo、cat命令重定向或追加重定向技术可以往文件内写入数据
3.不能复制、不能移动、不能删除,(删除需要看上级目录w的权限)

#执行权限(x)
文件只有x权限,具有执行文件的权限。
# 注意: 普通用户需要有r权限,管理员不需要
1.不能执行、查看、编辑、复制、移动、删除
13.6 权限对目录的作用
目录只有r权限: 具有浏览目录及子目录权限
1.能使用ls命令浏览目录及子目录, 同时会提示权限拒绝
2.能使用ls -l命令浏览目录及子目录, 会带问号,同时只能看到文件名
总结: 目录只有r权限,仅仅只能浏览内的文件名,无其他操作权限

# 授权方式(ugo:u:rwx  g:rwx  o:rwx )
1)+号 -号 授权
rw- r-x -wx
--x -w- r--
--x -w- r--
rwx ---> u(user)g(group)o(other)
[root@xcz ~]# chmod u+w xcz
u+x
g+w
o+r 
2)数字授权(比如 755、644、000)
r:4
w:2
x:1
-:0 
rwxr-xr-x       bak  755
3)=号授权
[root@xcz ~]# chmod u=rwx,g=rw,o=r xcz

29.chown

chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。chown 需要超级用户 root 的权限才能执行此命令。只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。

参数 :
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
--help : 显示辅助说明
--version : 显示版本
#示例:
[root@buttercup ~]# chown -R www.www /code/*

30.特殊权限与umask

#setuid
setuid==suid(数字权限定义编辑4000)
SetUID(suid):会在属主权限位的执行权限上写个s
[root@Centos7 ~]#ll /bin/passwd
-rws  r-x  r-x. 1 root root 27832 Jun 10  2014 /bin/passwd 
# 如果该属主权限位上有执行权限,则:s(小写)
[root@Centos7 ~]#ll xcz
-    rws  r-x  r-x. 1 root root 0 Jul  1 10:40 xcz
# 如果该属主权限位上没有执行权限,则:S(大写)
[root@Centos7 ~]#ll xcz
-    rwS r-x   r-x. 1 root root 0 Jul  1 10:40 xcz
# 授权方式
方式一(加减授权):chmod u+s filename
方式二(数字授权):chmod 4755 filename 
# SetUID总结
1.让普通用户对可执行的二进制文件,临时拥有二进制文件的属主权限
2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是S
3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效 
##注意:suid极其危险,不要对vim或者rm命令进行设定suid 

#setgid
setgid==sgid(2000)
setgid==sgid(数字权限定义编辑2000)
#如果该属组权限位上有执行权限,则:s
[root@Centos7 ~]#ll xcz
-rwx r-s r-x. 1 root root 0 Jul  1 10:40 xcz
# 如果该属组权限位上没有执行权限,则:S
[root@Centos7 ~]#ll xcz
-    rwx rwS r-x. 1 root root 0 Jul  1 10:40 xcz
# 授权方式
方式一(加减授权): chmod 2755 /tmp/test/
方式二(数字授权): chmod g+s /tmp/test/
# SetGID的作用
1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。 

#sbit
sbit(1000)
sbit(数字权限定义编辑1000)
粘滞位:
[root@Centos7 ~]#ll -d /tmp/
drwxrwxrwt. 7 root root 93 Jul  2 08:28 /tmp/
# 如果该其他用户权限位上有执行权限,则:t
[root@Centos7 ~]#chmod 1767 xcz
[root@Centos7 ~]#ll xcz
-rwxrw-rwt. 1 root root 0 Jul  1 10:40 xcz
# 如果该其它用户权限位上没有执行权限,则:T
[root@Centos7 ~]#ll xcz
-rwxrw-rwT. 1 root root 0 Jul  1 10:40 xcz
# 授权方式:
方式一(加减授权):chmod 1755 /opt
方式二(数字授权):chmod o+t /opt
# sbit的作用
粘滞,目前只对目录有效,作用如下:
	普通用户对该目录拥有w和x权限,即普通用户可以在此目录中拥有写入权限,如果没有粘滞位,那么普通用户拥有w权限,就可以删除此目录下的所有文件,包括其他用户建立的文件。但是一旦被赋予了粘滞位,除了root可以删除所有文件,普通用户就算有w权限也只能删除自己建立的文件,而不能删除其他用户建立的文件。 系统中存在的/tmp目录是经典的粘滞位目录,谁都有写权限,因此安全成问题,常常是木马第一手跳板。

# 特殊权限总结:
1.SUID
主要是对命令,或者二进制文件,以该二进制文件的属主权限来执行该文件  命令:passwd
2.SGID
主要是针对目录进行授权,共享目录
3.SBIT
粘滞位,即便是该目录拥有w权限,但是除了root用户,其他用户只能对自己的文件进行删除、移动操作 
#字符代表含义:
一个普通用户:zls 属于 xcz这个组
一个文件权限:rwxrw-r-x root.xcz  filename1 
r:读 4
w:写 2
x:执行 1
suid:4000
sgid:2000
t:1000

# Linux权限属性chattr概述:凌驾于r w x suid sgid t 之上的权限
# lsattr:查看特殊权限
[root@Centos7 ~]#lsattr /etc/passwd
---------------- /etc/passwd
# chattr:设置特殊权限
i:锁定文件,不能编辑,不能修改,不能删除,不能移动,可以执行
#chattr  +i
[root@Centos7 ~]#chattr +i /etc/passwd
[root@Centos7 ~]#lsattr /etc/passwd
----i----------- /etc/passwd
#chattr  -i
[root@Centos7 ~]#chattr  -i /etc/passwd
[root@Centos7 ~]#lsattr /etc/passwd
---------------- /etc/passwd
a:仅可以追加文件,不能编辑,不能删除,不能移动,可以执行
#chattr  +a
[root@Centos7 ~]#chattr +a /etc/passwd
[root@Centos7 ~]#lsattr /etc/passwd
-----a---------- /etc/passwd
#chattr  -a
[root@Centos7 ~]#chattr -a /etc/passwd
[root@Centos7 ~]#lsattr /etc/passwd
---------------- /etc/passwd
#Linux进程掩码umask
#umask标准值为:0022
[root@Centos7 ~]#umask
0022 
#umask与目录和文件之间的计算

#实例1:
目录:0777-0022=0755
      0777-0023=0754
文件:0666-0022=0644
#实例2:
umask=0024
目录:0777-0024=0753
文件:0666-0024=0642
#实例3:
umask=0023
目录:0777-0023=0754
文件:0666-0023=064(3+1)
#实例4:
umask=051
目录:0777-0051=0726
文件:0666-0051=06(1+1)(5+1) 
结论:目录最高权限为0777
      文件最高权限为0666
如设定umask数值有基数时候,需要加1
实例:
umask 0657
目录:0120
文件:0020
umask影响范围:
777-077=700

31.压缩

#压缩打包的介绍:
windows下我们接触最多的压缩文件就是.rar格式, 但Linux有自己所特有的压缩工具。
如果希望windows和Linux互相能使用的压缩工具, 建议.zip格式
# 压缩打包的优点:
1节省磁盘空间占用率
2节省网络传输带宽消耗
3网络传输更加快捷
# Linux系统常见的压缩包有哪些类型
格式							压缩工具
.zip						  zip压缩工具
.gz							  gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.bz2						  bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.tar.gz						  先使用tar命令归档打包,然后使用gzip压缩
.tar.bz2					  先使用tar命令归档打包,然后使用bzip压缩 
#注意:
1.Linux下常用压缩文件以.tar.gz结尾.
2.Linux下压缩文件必须带后缀.

# gzip压缩工具
使用gzip压缩工具需要先安装源:
yum install -y gzip
# gzip打包会删除源文件
#压缩----gzip
[root@Centos7 ~]#gzip passwd
-rw-r--r--.  1 root root      447 Jul  3 16:07 passwd.gz
#解压----gzip -d
[root@Centos7 ~]#gzip -d passwd.gz
-rw-r--r--.  1 root root     1036 Jul  3 16:07 passwd 
#不需要解压,查看文件内容----zcat
[root@Centos7 ~]#zcat passwd.gz
root:x:0:0:root:/root:/bin/bash
#注意:
1.gzip 不可以压缩目录,只能压缩文件
[root@Centos7 ~]#gzip etc/
gzip: etc/ is a directory -- ignored
2.gzip压缩的文件不在当前目录下
3.压缩会删除源文件
4.解压会删除压缩文件  
练习:
把/etc目录 拷贝/root下,找到/root/etc/下面所有一级二级目录中的 普通文件,压缩
[root@Centos7 ~]#find /root/etc/ -maxdepth 2 -type f |xargs gzip
    
# zip压缩工具
-r:递归压缩
-T:检查压缩包是否完好
#压缩
(压缩使用方式:命令zip+压缩后的文件名+需要压缩的文件)----zip
[root@Centos7 ~]#zip dai_access access.log
  adding: access.log (deflated 94%)
-rw-r--r--.  1 root root 58817074 Sep 21  2017 access.log
-rw-r--r--.  1 root root  3766015 Jul  8 14:28 dai_access.zip 
注意:zip压缩方式压缩不会删除源文件

#解压
(解压使用方式:命令unzip +需要解压的文件)----unzip
-d:解压到指定路径
-l :查看压缩包里面的内容
-t :检查压缩包里面的文件是否完好
[root@xcz ~]# unzip zls.zip
[root@Centos7 ~]#unzip dai_access.zip
Archive:  dai_access.zip
replace access.log?  [y]es,    [n]o,      [A]ll,       [N]one         [r]ename:     
替换   文件名      替换     不替换    替换所有       啥也不做         改名
#递归压缩目录
(压缩使用方式:命令unzip + -r(选项)+解压后的文件名+需要解压的文件)----unzip
[root@Centos7 ~]#zip -r dai_etc_.zip etc/
-rw-r--r--.  1 root root 12314125 Jul  8 14:44 dai_etc_.zip
#查看目录信息----file(命令)
[root@Centos7 ~]#file dai_etc_.zip
gzip: dai_etc_.zip has more than one entry--rest ignored
注意:
1.压缩不会删除源文件
2.解压不会删除压缩文件
3.解压开会覆盖源文件内容
      
练习题:
查找到etc下所有1,2,3目录,包括目录下的文件,zip打包名字叫:yourname_etc.zip
[root@Centos7 ~]#find /root/etc/ -maxdepth 3 -type d -type f |xargs zip -r xcz_etc_.zip /root/etc/
-rw-r--r--.  1 root root 12337695 Jul  8 14:56 xcz_etc_.zip

#tar压缩工具
#语法:tar [-zjxcvfP] filename
c   //创建新的归档文件
x   //对归档文件解包
t   //列出归档文件里的文件列表
v   //输出命令的归档或解包的过程
f   //指定包文件名,多参数f写最后
C   //指定解压目录位置
z   //使用gzip压缩归档后的文件(.tar.gz)
j   //使用bzip2压缩归档后的文件(.tar.bz2)
J   //使用xz压缩归档后的文件(tar.xz)
X   //排除多个文件(写入需要排除的文件名称)
h   //打包软链接
P   //连带绝对路径打包
--hard-dereference  //打包硬链接
--exclude   //在打包的时候写入需要排除文件或目录

#打包压缩
(压缩使用方式:命令tar+选项+压缩后的文件名+需要压缩的文件)
[root@Centos7 ~]#tar  zcvf    dyc.tar.gz         etc/
                 命令  选项     压缩包名字    需要压缩的文件名
#查看打包内容
(查看打包内容方式:命令tar+选项+压缩后的文件名)
[root@Centos7 ~]#tar     tf     dyc.tar.gz
                 命令   选项    压缩包名字
#解压
(解压压缩包方式:命令tar+选项+压缩后的文件名)
[root@Centos7 ~]#tar    xf    xcz.tar.gz
                命令   选项   压缩包名字
#注意:
1.不要使用绝对路径
如果非要打包绝对路径:
[root@Centos7 /tmp]#tar zvcfP dyc.tar.gz /tmp/etc/ etc/
解压的时候:
[root@Centos7 /tmp]#tar xfP dyc.tar.gz
2.tar 打包可以接多个文件f
[root@xcz ~]# tar zcf abc1.tar.gz 1.txt 2.txt 3.txt
 
格式                   压缩工具
.zip                         zip
zip -r dir.zip dirname
zip  file.zip filename
   
.gz                             #gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
gzip filename
   
.bz2                            #bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
   
.tar.gz                         #先使用tar命令归档打包,然后使用gzip压缩
tar zcf dirname.tar.gz  dirname
   
.tar.bz2                        #先使用tar命令归档打包,然后使用bzip压缩
tar cjf dirname.tar.bz2  dirname
   
.tar.xz
tar cJf dirname.tar.xz  dirname

# 常用打包与压缩组合
czf     #打包tar.gz格式
cjf     #打包tar.bz格式
cJf     #打包tar.xz格式
xf      #自动选择解压模式
tf      #查看压缩包内容
#不想打包 的文件
[root@xcz /]# tar zcf etc3.tar.gz --exclude=Makefile etc
#指定解压路径
[root@xcz ~]# tar xf abc1.tar.gz -C /opt/
#常用的压缩与解压配合
tar zcf  压缩
tar xf   解压

32.检查文件大小命令

du -sh  /*

33.crontab

定时任务

crontab:
01 00 * * * /bin/bash /root/usr/tiananCaiXianWeChat/weChatProject/start.sh &>/dev/null
*  *  *  *  * [user] command
分  时  日   月  周 [用户] 命令
第1列表示分钟0~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~7(0或7表示星期天)
第6列要运行的命令
 
-e :编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件
-l :表示查看 crontab job
-r :删除所有 crontab job(慎用)
* :表示任何时刻都接受;
, :表示分割时段,如0 3,6 * * * command 表示每天的3:00和6:00会执行command
- :表示一段时间范围,如20 8-12 * * * command表示8点-12点每20分钟执行一次
/n :表示每隔n个单位间隔,如*/5 * * * * command表示每隔5分钟执行一次

34.Selinux相关命令

1、查看SELinux状态
1.1getenforce
getenforce 命令是单词get(获取)和enforce(执行)连写,可查看selinux状态,与setenforce命令相反。
setenforce 命令则是单词set(设置)和enforce(执行)连写,用于设置selinux防火墙状态,如: setenforce 0用于关闭selinux防火墙,但重启后失效。
[root@gm-aip-al ~]# getenforce
Enforcing
1.2 /usr/sbin/sestatus
Current mode表示当前selinux防火墙的安全策略
[root@gm-aip-al ~]# sestatus
SELinux status:                 enabled      #selinux防火墙的状态,enabled表示启用selinux防火墙
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing    #selinux防火墙当前的安全策略,enforcing 表示强
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28    

2、关闭SELinux
2.1 临时关闭
setenforce 0 :用于关闭selinux防火墙,但重启后失效。
2.1 永久关闭
修改selinux的配置文件,重启后生效。
打开 selinux 配置文件

vim /etc/selinux/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         #将SELINUX=enforcing改为SELINUX=disabled,保存后退出
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

35.字符集修改

centos7:
vim /etc/locale.conf
LANG="zh_CN.UTF-8"
source /etc/locale.conf
centos6:
vi /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
source /etc/sysconfig/i18n