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