当前位置:   article > 正文

linux基础命令(一)_postinstall target

postinstall target

inux基础命令(一)

基础命令

目录管理命令

//目录管理
    ls     //列出目录内容
    [root@localhost ~]# ls
    公共  视频  文档  音乐  anaconda-ks.cfg
    模板  图片  下载  桌面  initial-setup-ks.cfg
       -l      //长格式
            文件类型
                -   //普通文件(f)
                d   //目录文件
                b   //块设备文件(block)
                c   //字符设备文件(character)
                l   //符号链接文件
                p   //命令管道(pipe)
                s   //套接字文件(socket)
       -h     //做单位转换
       -a     //显示以.开头的隐藏文件
         .       //表示当前目录
         ..      //表示父目录
        -d     //显示目录自身属性
        -i     //显示文件的inode(index node)
        -r     //逆序显示
        -R     //递归(recursive)显示
     cd      //改变当前工作目录
       [root@localhost ~]# cd /etc/
       [root@localhost etc]# 
     pwd    //打印当前工作目录路径
       [root@localhost etc]# pwd
       /etc
     
     tree   //查看目录树
         -d          //只显示目录
         -L level    //指定显示的层级数目
         -P 字符串    //显示指定字符串匹配到的文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

文件管理命令

//文件管理

    mkdir  //创建目录
          -p    //创建目录时若父目录不存在则自动创建
           [root@localhost ~]# mkdir -p /123/456
           [root@localhost ~]# cd /123/
           [root@localhost 123]# ls
           456
          -v   //显示目录创建过程
     rmdir  //删除目录,只能删除空目录
     touch   //创建一个空文件
            //touch还有一个作用是修改文件的时间戮
[root@localhost ~]# touch 123
     rm    //删除文件,删除命令默认会提示是否需要删除,如果要使用命令本身可以在              命令前加一个\。例如:\rm,这样删除就不会有提示了
        [root@localhost ~]# rm -rf 123
        -r      //递归删除,删除目录时必须使用此选项
         [root@localhost ~]# rm -r /123/
         rm:是否进入目录'/123/'? y
         rm:是否删除目录 '/123/456'?y
         rm:是否删除目录 '/123/'?y
        -f      //强制删除,不询问
         [root@localhost ~]# rm -f 123
     cp    //复制文件,一个文件到一个文件,多个文件到一个目录
      [root@localhost ~]# cp /tmp/123 /root/
        -a      //归档复制,常用于备份
        -r      //递归拷贝,拷贝目录时必须使用此选项
        -p      //拷贝时保留原权限
     mv   //移动文件
     [root@localhost ~]# mv /root/123 /opt/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

压缩、解压缩命令

//压缩格式
    gz,bz2,xz,zip,Z
    
gzip        //压缩后的文件以.gz结尾,压缩完成后会删除原文件
[root@localhost ~]# gzip /root/123 
[root@localhost ~]# ls
123.gz  模板  图片  下载  桌面             initial-setup-ks.cfg
公共    视频  文档  音乐  anaconda-ks.cfg
     -d      //解压缩,解压完成后会删除原文件
     [root@localhost ~]# gzip -d 123.gz 
     [root@localhost ~]# ls
     123   模板  图片  下载  桌面             initial-setup-ks.cfg
     公共  视频  文档  音乐  anaconda-ks.cfg
     -c      //将结果输出至标准输出
     -#      //#用1-9代替,指定压缩比,默认为6
gunzip      //解压
[root@localhost ~]# gunzip /root/123.gz 
[root@localhost ~]# ls
123   模板  图片  下载  桌面             initial-setup-ks.cfg
公共  视频  文档  音乐  anaconda-ks.cfg
zcat /path/to/somefile.gz       //不解压的情况下查看文本文件的内容

bzip2       //压缩后的文件以.bz2结尾,压缩完成后会删除原文件
[root@localhost ~]# bzip2 /root/123 
[root@localhost ~]# ls
123.bz2  模板  图片  下载  桌面             initial-setup-ks.cfg
公共     视频  文档  音乐  anaconda-ks.cfg
     -d      //解压缩,解压完成后会删除原文件
     -#      //#用1-9代替,指定压缩比,默认为6
     -k      //keep,压缩时保留原文件
 bunzip2     //解压   
[root@localhost ~]# bunzip2 123.bz2 
[root@localhost ~]# ls
123   模板  图片  下载  桌面             initial-setup-ks.cfg
公共  视频  文档  音乐  anaconda-ks.cfg
bzcat /path/to/somefile.bz2     //不解压的情况下查看文本文件的内容

xz         //压缩后的文件以.xz结尾,压缩完成后会删除原文件
[root@localhost ~]# xz /root/123 
[root@localhost ~]# ls
123.xz  模板  图片  下载  桌面             initial-setup-ks.cfg
公共    视频  文档  音乐  anaconda-ks.cfg
    -d      //解压缩,解压完成后会删除原文件
    [root@localhost ~]# xz -d 123.xz 
    [root@localhost ~]# ls
    123   模板  图片  下载  桌面             initial-setup-ks.cfg
    公共  视频  文档  音乐  anaconda-ks.cfg
    -#      //#用1-9代替,指定压缩比,默认为6
    -k      //keep,压缩时保留原文件  
unxz      //解压
[root@localhost ~]# unxz 123.xz 
[root@localhost ~]# ls
123   模板  图片  下载  桌面             initial-setup-ks.cfg
公共  视频  文档  音乐  anaconda-ks.cfg
xzcat /path/to/somefile.xz      //不解压的情况下查看文本文件的内容

zip     //既归档又压缩的工具。zip可以压缩目录,zip压缩后不会删除原文件
     zip filename.zip file1 file2 ...
        zip filename.zip DIR/*
unzip      //解压
        unzip filename.zip
        
tar归档,归档本身并不意味着压缩
    tar		//归档工具,只归档不压缩
        -c          //创建归档文件
        -f          //操作的归档文件
        -x          //还原归档
        -v          //显示归档过程
        -p          //归档时保留权限信息。只有管理员才有权限用此选项
        -C          //将展开的归档文件保存至指定目录下
        --delete    //从归档文件中删除文件
        --xattrs    //在归档时保留文件的扩展属性信息
        -tf /path/to/file.tar       //不展开归档,直接查看归档了哪些文件
        -zcf        //归档并调用gzip压缩
        -zxf        //调用gzip解压缩并展开归档

        -jcf        //归档并调用bzip2压缩
        -jxf        //调用bzip2解压缩并展开归档

        -Jcf        //归档并调用xz压缩
        -Jxf        //调用xz解压缩并展开归档
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81

文本内容查看

cat     //将文件内容并输出至标准输出(屏幕)
        -n      //显示行号
        注意:使用cat查看文件内容时会将文件的所有内容加载至内存,
             所以应避免使用cat打开巨大文件
        [root@localhost ~]# cat -n  123 
     1  123
     2  456
     3  789
     4  abc
     5  def
     6  ghi
     7  jkl
     8  mno
     9  pqr
    10  stu
    11  vwx
    12  yz

tac     //倒序打印文件内容至标准输出
[root@localhost ~]# tac 123 
yz
vwx
stu
pqr
mno
jkl
ghi
def
abc
789
456
123

more    //全屏查看文本文件内容,只能从前往后,不能从后往前。
	        //文件内容显示完后自动退出
[root@localhost ~]# more 123

less    //全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用
[root@localhost ~]# more 123

head    //从头部开始打印文件内容,默认打印10行
        -n      //指定要打印的行数,-n 可以是15也可以是-15
[root@localhost ~]# head -n 3 123 
123
456
789

tail    //查看文本文件尾部内容
        -n      //指定要打印的行数,可以是-n 15也可以是-15
[root@localhost ~]# tail -n 3 123 
stu
vwx
yz
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

文本内容排序

sort    //默认升序排序,不是按数值大小排序的
        -n      //根据数值大小进行排序
        -r      //逆序排序
        -t      //字段分隔符
        -k      //以哪个字段为关键字进行排序
        -u      //去重,排序后相同的行只显示一次
        -f      //排序时忽略字符大小写

    uniq    //将重复的行只显示一遍(连续且完全相同方为重复)
        -c      //显示文件中行重复的次数
        -d      //只显示重复的行
        -u      //只显示未重复的行
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

文本内容统计

 wc(word count)
        -c      //显示字节数
        -l      //显示行数
        -w      //显示单词数

//大小统计

    du      //查看文件或目录占用的磁盘空间大小
        -h      //以人类友好的方式显示大小
        -s      //显示总的占用空间大小

    df      //报告文件系统磁盘空间使用情况
        -h      //以人类友好的方式显示大小
        -i      //显示inode信息
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

文本内容过滤

cut         //截取文本内容
	cut OPTION... [FILE]...
        -d''        //指定字段分隔符,默认是空格
        -f          //指定要显示的字段
            -f 1,3    显示第1个字段和第3个字段
            -f 1-3    显示第1个字段到第3个字段

    awk         //基于列的文本报告工具
	-F''	            //选择分隔符;分隔符用单引号引起来
	'/root/'		//匹配关键字root的行
	'{print$#}'  		//选择打印第#列
	'NR==# {print $#}'	//选择打印第几行第几列

    sed         //基于行的过滤和转换文本的流编辑器
	    -i	        //修改文件内容
    示例:
	sed -i 's/原字符串/新字符串/' file
	                //字符串替换原字符串,只替换每行第一个匹配到的字符
	sed -i 's/原字符串/新字符串/g' file
	                //字符串替换原字符串,替换正行所有匹配到的字符串

    grep        //搜索文本内容,并将匹配的内容所在一整行都显示出来。
                //grep是可以使用正则表达式来过滤文本的命令。
        -i          //忽略大小写
        --color     //匹配到的内容高亮显示
        -w          //强制模式,完全匹配字词
        -n          //显示匹配到的内容的行号
        -v          //显示没有被模式匹配到的行
        -o          //只显示被模式匹配到的字符串
        -E          //使用扩展正则表达式。grep -E相当于使用egrep
        -q          //静默模式,不向屏幕输出任何信息
        -A 1        //被模式匹配到的内容以及其后面一行的内容都显示出来,
                    //如果把1改成2就表示被模式匹配到的内容以及其后面2行的内容均显示出来
        -B 1        //被模式匹配到的内容以及其前面一行的内容都显示出来, 
                    //如果把1改成2就表示被模式匹配到的内容以及其前面2行的内容均显示出来
        -C 1        //被模式匹配到的内容以及其前后的行各显示1行,如果把1改成2 
                    //就表示被模式匹配到的内容以及其前后的行各显示2行。
    egrep       //基于正则表达式查找文件内容
    fgrep       //不支持正则表达式,执行速度快
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

文件查找命令

find        //实时查找,精确性强,遍历指定目录中所有文件完成查找, 
                //查找速度慢,支持众多查找标准。
        语法:
	    find 查找路径 [OPTION...] [查找标准] [查找到以后的处理动作]
        查找路径,默认为当前目录
        查找标准,默认为指定路径下的所有文件
        -name 'filename'    //对文件名作精确匹配.支持glob通配符机制
        -iname 'filename'   //文件名匹配时不区分大小写
        -regex pattern      //基于正则表达式进行文件名匹配,以pattern匹配整个文件路径字符串,而不仅仅是文件名称
        -user username      //根据属主来查找
        -group groupname    //根据属组来查找
        -uid        	    //根据UID进行查找,当用户被删除以后文件的属主会变为此用户的UID
        -gid        	    //根据GID进行查找,当用户被删除以后文件的属组会变为此用户的GID
        -nouser     	    //查找没有属主的文件.用户被删除的情况下产生的文件,只有uid没有属主
        -nogroup    	    //查找没有属组的文件.组被删除的情况下产生的文件,只有gid没有属组
        -type       	    //根据文件类型来查找(f,d,c,b,l,p,s)
        -size       	    //根据文件大小进行查找。如1k、1M,+10k、+10M,-1k、-1M,+表示大于,-表示小于
        -mtime      	    //修改时间
        -ctime      	    //改变时间
        -atime      	    //访问时间
            +5      	    //5天前
            -5      	    //5天以内
        -mmin       	    //多少分钟修改过
        -cmin       	    //多少分钟改变过
        -amin       	    //多少分钟访问过
            +5      	    //5分钟前
            -5      	    //5分钟以内
        -perm mode          //根据权限精确查找
        -perm -mode         //文件权限能完全包含此mode时才符合条件
        -perm /mode         //9位权限中有任何一位权限匹配都视为符合查找条件

        //组合条件:
            -a
            -o
            -not
            !              // ! 和-not含义一样

        //处理动作:默认为显示到屏幕上
            -print	    //显示
            -ls		    //类似ls -l的形式显示每一个文件的详细信息
            -delete         //删除查找到的文件
            -fls /path/to/somefile      //查找到的所有文件的长格式信息保存至指定文件中
            -ok COMMAND {} \;           //对查找到的每个文件执行COMMAND,每次操作都需要用户确认
            -exec COMMAND {} \;         //对查找到的每个文件执行COMMAND,操作不需要确认
            
实例
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
# find . -name "*.c"
将目前目录其其下子目录中所有一般文件列出

# find . -type f
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:

# find . -ctime -20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:

# find /var/log -type f -mtime +7 -ok rm {} \;
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

# find . -type f -perm 644 -exec ls -l {} \;
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:

# find / -type f -size 0 -exec ls -l {} \;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

重定向与管道符

重定向	//将输出的内容重定向到某个文件

//系统设定:
    默认输入设备      //标准输入,STDIN,0  (键盘)
    默认输出设备      //标准输出,STDOUT,1 (显示器)
    标准错误输出      //STDERR,2 (显示器)

//I/O重定向:
    >:覆盖输出
    >>:追加输出
	2>      //重定向错误输出
	2>>     //追加重定向错误输出
	&>      //覆盖重定向标准输出或错误输出至同一个文件
	&>>     //追加重定向标准输出或错误输出至同一个文件
	<       //输入重定向
	<<      //Here Document,退出条件

tee	//从标准输入读取数据,输出一份到屏幕上,一份保存到文件
    示例:
        [root@localhost ~]# tee /tmp/hello.out
        hello world
        hello world
        [root@localhost ~]# cat /tmp/hello.out
        hello world

管道符	//前一个命令的输出,作为后一个命令的输入。最后一个命令会在当前shell进程的子shell进程中执行
    使用格式: 命令1 | 命令2 | 命令3 | ...
    示例:
        [root@localhost ~]# echo "hello hzz" | cut ‐d ' ' ‐f 2 
        syb
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

软件管理

rpm管理

语法: rpm -ivh /PATH/TO/PACKAGE_FILE ...
常用选项:
    -i: 安装
    -v: 显示详细信息
    -h: 显示安装进度条
    --test: 测试安装,但不真正执行安装过程
    --nodeps: 忽略依赖关系
    --force: 强行安装,可以实现重装或降级
    --replacepkgs: 重新安装,替换原有安装
    --oldpackage: 降级
    --nodigest: 不检查包的完整性
    --nosignature: 不检查包的来源合法性
    --noscripts:不执行rpm包自带的四类脚本;
        --nopre:不执行rpm包自带的preinstall脚本;
        --nopost:不执行rpm包自带的postinstall脚本;
        --nopreun:不执行rpm包自带的preuninstall脚本;
        --nopostun:不执行rpm包自带的postuninstall脚本;
        preinstall:安装过程开始之前运行的脚本,标记为%pre;--nopre
        postinstall:安装过程完成之后运行的脚本,标记为%post;--nopost
        preuninstall:卸载过程真正开始执行之前运行的脚本,标记为%preun;--nopreun
        postuninstall:卸载过程完成之后运行的脚本,标记为%postun;--nopostun
rpm管理
  rpm -ivh /path/to/pack_name  安装
  rpm -e pack_name             卸载
  rpm -qa | grep pack_name     查询
  rpm -ql pack_name            列出pack_name安装时安装了哪些文件及文件位置
  rpm -qc pack_name            列出pack_name安装后生成的配置文件在哪里
  rpm -qd pack_name            帮助文档documentation
  rpm -qf /path/to/file_name   查询文件是由哪个包提供的
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

yum管理

配置本地仓库
[root@syb ~]# mkdir /mnt/cdrom
[root@syb ~]# mount /dev/sr0 /mnt/cdrom/
[root@syb ~]# echo "/dev/sr0 /mnt/ iso9660 defaults 0 0" >> /etc/fstab
[root@syb ~]# cd /etc/yum.repos.d/
[root@syb yum.repos.d]# vim syb.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1

[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1
清空本地仓库缓存
[root@syb ~]# yum clean all
缓存元数据
[root@syb ~]# yum makecache
列出所有可用仓库
[root@syb ~]# yum list all
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

用户和组

用户的分类和管理命令

用户的分类
Linux用户分为管理员和普通用户:
用户分类	用户ID(uid)
管理员  	 0
普通用户	1-65535
其中普通用户又分为系统用户和登录用户:
普通用户类别	用户ID(uid)
系统用户	 1-999(为守护类进程获取系统资源而完成权限指派的用户)
登录用户	 1000-65535(为了完成交互式登录使用的用户)

用户管理命令
1.查看用户信息命令id
id      //查看用户的帐号属性信息
    -u      //查看UID
    -g      //查看GID
    -G      //查看Groups
2.创建用户命令useradd
//语法:useradd [option] USERNAME
    -u UID      	//指定用户uid
    -g GID      	//指定用户所属基本组,可为组名或GID,组必须事先存在
    -G groupname,...    //附加组,可以有多个,用逗号隔开。组必须事先存在
    -c "COMMENT"        //注释信息
    -d directory        //指定用户的家目录。此目录必须不能事先存在
    -s shell        	//最好使用/etc/shells里面有的shell
    -M          	//创建用户时不给其创建家目录
    -r          	//添加一个系统用户
3.删除用户命令userdel
//语法:userdel [option] USERNAME
    -r      //删除用户的同时删除其家目录(userdel默认不会删除其家目录)
4.修改用户属性命令usermod
//语法:usermod [options] username
    -u UID
    -g GID
    -a -G groupname	//不使用-a选项,会覆盖此前的附加组
    -m -d   		//改变用户家目录的同时把原来家目录的文件移动到新的家目录中
    -e YYYY-MM-DD       //指明用户帐号过期日期
    -f INACTIVE         //设定非活动期限
    -L      		//锁定帐号;被锁定的帐号在/etc/shadow文件中密码前面会有一个!感叹号
    -U      		//解锁帐号
    -s SHELL		//修改用户登录shell
5.切换用户命令su
su 命令用法
管理员用户 su 切换至其他用户不需要密码,非管理员用户 su 切换至其他用户时需要输入目标用户的密码

//语法:su [options] [-] [USER NAME]
    -c 'COMMAND'    //切换身份执行命令,命令执行结束后又回到原来的身份
su的用法	      特点
su USERNAME	    非登录式切换,即不会读取目标用户的配置文件
su - USERNAME	登录式切换,即会读取目标用户的配置文件。完全切换
6.密码管理命令passwd
普通用户必须遵循密码复杂性要求
普通用户只能给自己设密码,而管理员可以给任何人设密码
语法:passwd [options] [USERNAME]
    --stdin     	//从标准输入获取用户密码;例:echo "redhat"|passwd --stdin user1
    -l      		//锁定用户
    -u      		//解锁用户
    -d      		//删除用户密码
    -n mindays     	//指定最短使用期限
    -x maxdays     	//指定最长使用期限
    -w warndays     	//提前多少天开始警告
    -i inactivedays     //非活动期限,密码过期后到禁用前的这段时间
7.破解密码
  (1)关机
  (2)开机
  (3)在内核上按e键
  (4)找到UTF8的行,在这一行中加上rd. break
  (5)ctrl+x
  (6)mount -o remount,rw /sysroot
  (7)chroot /sysroot
  (8)echo "密码" | passwd --stdin root
  (9)touch /.autorelabel
  (10)exit
  (11)exit
8.密码生成工具openssl
//语法:openssl command [command_opts] [command_args]
    command         //包含标准命令、消息摘要命令、加密命令
        version     //查看程序版本号
        dgst        //提取特征码
        passwd      //生成密码
        rand        //生成伪随机数

//提取特征码
[root@localhost ~]# openssl dgst -md5 /etc/fstab
MD5(/etc/fstab)= 1e5e9207c47ba4e9393b153dc3b0375a

//生成密码 openssl passwd -1 -salt 'string'
[root@localhost ~]# echo "syb" | openssl passwd -1 -salt hellonihao -stdin
$1$hellonih$hSAyL4yP5lbKiUh76Z6W30

//生成随机数 openssl rand -base64 NUM ; NUM表示随机数的长度
[root@localhost ~]# openssl rand -base64 20
aVQYKyrx8pX3y4Vjb8QBtxMbY9k=
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92

用户和组相关的配置文件

1.各配置文件
配置文件	       作用
/etc/passwd	     用户及其属性信息(名称、uid、基本组id等等)
/etc/shadow	     用户密码及其相关属性
/etc/group	    组及其属性信息
/etc/gshadow	组密码及其相关属性。在用户执行基本组切换时使用

配置文件解析
/etc/passwd 配置文件解析
字段	     含义
第一字段	用户名
第二字段	密码占位符
第三字段	UID
第四字段	GID
第五字段	用户的描述信息
第六字段	用户家目录
第七字段	用户的登录shell
/etc/shadow 配置文件解析
字段	     含义
第一字段	用户名
第二字段	加密后的密码
第三字段	最近一次更改密码的日期
第四字段	密码的最小使用期限
第五字段	密码的最大使用期限
第六字段	密码警告时间段
第七字段	密码禁用期
第八字段	帐号的过期日期
第九字段	保留字段
/etc/group 配置文件解析
字段	含义
第一字段	组名
第二字段	组密码
第三字段	GID
第四字段	以当前组为附加组的用户列表(分隔符为逗号)
/etc/gshadow 配置文件解析
字段	含义
第一字段	用户组
第二字段	用户组密码
第三字段	用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割
第四字段	组成员,如果有多个成员,用,号分割
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

组的分类和管理命令

组的分类
用户组分类	       特性
基本组	            用户的默认组
附加组(额外组)	  基本组以外的其它组

组管理命令
创建组命令groupadd
//语法:groupadd [options] GROUP
    -g GID      //指定GID
    -r          //添加一个系统组
删除组命令groupdel
//语法:groupdel [options] GROUP  删除组时只需要指定组名即可
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

vim编辑器

vim三种编辑模式
vim编辑器有三种编辑模式,分别是:
编辑模式	作用
命令模式	用户执行命令,比如复制行、粘贴行等等
输入模式	用于输入文本、修改文本等等
末行模式	用于查找文本、保存修改等等

vim三种编辑模式之间转换的方式:
  命令模式-- >输入模式:
    a在当前光标的后面转为输入模式
    i在当前光标的前面转为输入模式
    0在当前光标的下面转为输入模式
    A在当前光标的行尾转为输入模式
    I在当前光标的行首转为输入模式
    0在当前光标的上面转为输入模式
  输入模式-- >命令模式: ESC
  命令模式-- >末行模式: 冒号
  
文本编辑方式
打开文件方式: 文件打开后默认处于命令模式下
vim filename        //打开文件
vim +n filename     //打开文件并定位到第n行
vim +/pattern filename      //打开文件并定位到第一次被/pattern匹配到的内容行首
关闭文件方式:末行模式关闭文件
命令	意义
q	退出
wq	保存并退出
q!	不保存退出
w	保存但不退出
w!	强行保存
wq!	强行保存并退出
x	强行保存并退出

命令模式常用指令:
    gg跳转到第-行
    3gg跳转到第三行
    G跳转到最后一行
    dd删除当前光标所在行
    3dd删除包含当前光标所在行内一共3行
    D删除当前光标所在行的内容
    yy复制当前行的内容
    3yy复制包括当前行在内的一共3行内容
    p粘贴到当前行的后面一行
    P粘贴到当前行的前面一行
命令模式下替换:r
R:替换模式,替换多个字符
r#:将当前光标的字符替换为#,这里的#可以是任何字符
命令模式下撤销编辑:u
u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
#u:直接撤销此前的#次编辑操作
ctrl+r:还原最近一次的撤销操作
.(点):重复前一次编辑操作
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

权限管理

权限分类

权限针对文件的三类对象:
全拼	   翻译	 简写
owner	属主	   u
group	属组	   g
other	其它人   o
权限的分类
权限	      对文件的影响	对目录的影响             用数字表示
r(读取)	可读取文件内容	  可列出目录中内容          4
w(写入)	可修改文件内容	  可在目录中创建删除内容     2
x(执行)	可作为命令执行	  可访问目录内容            1
注意:目录必须拥有 x 权限,否则无法查看其内容

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

权限管理命令

权限修改命令chmod
//权限修改主要修改三类对象的权限

//语法:chmod MODE file,...
    -R      //递归修改权限

//修改某类对象权限:u,g,o,a

权限修改的三种方式:
chmod 对象类别=MODE file,.....
chmod 对象类别=MODE,对象类别=MODE file,.....
例如:
[root@localhost ~]# chmod u=rwx syb 
[root@localhost ~]# chmod u=rwx,g=rwx syb 

chmod 对象类别+|-MODE file,.....
chmod 对象类别+|-MODE,对象类别+|-MODE file,.....
chmod +|-MODE file,.....
例如:
[root@localhost ~]# chmod u+rwx syb 
[root@localhost ~]# chmod u-x,g-x syb
[root@localhost ~]# chmod +x syb

chmod "mode number" file,.....
例如:
[root@localhost ~]# chmod 777 syb

属主和属组修改命令chown
//chown命令只有管理员可以使用。

chown USERNAME file,...
    -R      //修改目录及其内部文件的属主

chown USERNAME:GROUPNAME file,...
chown USERNAME.GROUPNAME file,...
例如:
[root@localhost ~]# chown root.root syb 
[root@localhost ~]# chown root:root syb

特殊权限
SUID(4)     //针对应用程序设置
    chmod u+s file
    chmod u-s file
    //如果file本身原来就有执行权限,则SUID显示为s,否则显示为S

SGID(2)     //针对目录设置
            //一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组为此设定了SGID的目录的属组
    chmod g+s DIR
    chmod g-s DIR
    //如果file本身原来就有执行权限,则SGID显示为s,否则显示为S

Sticky(1)   //针对公共目录设置
    chmod o+t DIR
    chmod o-t DIR
    //如果DIR本身原来就有执行权限,则Sticky显示为t,否则显示为T

特殊权限的数字表示方式:
4755    //有SUID,文件权限为755
2755    //有SGID,文件权限为755
1755    //有Sticky,文件权限为755
//这里前面的4、2、1分别表示SUID、SGID、Sticky
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

文件系统访问控制列表facl

facl(Filesystem Access Control List),利用文件扩展保存额外的访问控制权限。
//语法:setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
    -m      //设定权限条目
        u:UID:perm
        g:GID:perm
    示例:
       setfacl -m u:test:rw file
       setfacl -m g:test:rw file

//如果要为某个目录设定默认的访问控制列表,只需要设定时在u或g前面加上d即可
    示例:
       setfacl -m d:u:test:rw file
//此时在此目录中创建的文件均继承此访问控制列表所设置的权限

    -x      //删除权限条目
        u:UID
        g:GID
    示例:
       setfacl -x u:test file
       setfacl -x g:test file

    -b      //Remove all
    示例:
       setfacl -b file

//查看文件系统访问控制列表getfacl
//语法:getfacl [-aceEsRLPtpndvh] file ...
    示例:
       getfacl file
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

sudo借权

sudo可以实现某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令

sudo的配置文件:/etc/sudoers
//使用visudo命令进行sudo的配置,每一行就是一个sudo条目,条目格式如下:

示例:
	who which_hosts=(runas) command

who : User,User_Alias			//表示运行命令者的身份
which_hosts : Host,Host_Alias		//通过哪些主机
runas : User,Runas_Alias		//以哪个用户的身份
command : Command,Cmnd_Alias		//运行哪些命令

sudo命令语法:sudo [options] COMMAND
    -V      //显示版本编号
    -h      //帮助信息,会显示版本编号及指令的使用方式说明
    -l      //列出当前用户可以使用的所有sudo类命令
    -v      //重新做一次密码确认,如果超过N(默认为5)分钟,也会问密码
    -k      //立刻清除认证信息,如果不指定-k,默认认证信息在5分钟后失效
    -b      //将要执行的指令放在后台执行
    -u USERNAME     //以指定的用户名执行命令,默认为root
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

服务控制

服务控制的方式

systemd新特性
    系统引导时实现服务的并行启动
    按需激活进程
    系统状态快照
    基于依赖关系定义服务控制逻辑
    
Centos6及以前的版本:
    service SERVICE_NAME start      开启服务
    service SERVICE_NAME stop       关闭服务
    service SERVICE_NAME status     查看服务状态
    service SERVICE_NAME restart    重启服务
    chkconfig -- -add SERVICE_ NAME
    chkconfig SERVICE_ NAME on
    chkconfig SERVICE_ NAME off
Centos7及以后的版本:
    systemctl start SERVICE_ NAME   开启服务
    systemctl stop SERVICE_ NAME    关闭服务
    systemctl status SERVICE_ NAME  查看服务状态 
    systemctl restart SERVICE_ NAME 重启服务
    systemctl enable SERVICE_ NAME  设置服务开机自启
    systemctl disable SERVICE NAME  禁止服务开机自启
    
systemctl管理服务
    语法:systemctl COMMAND name[.service/.target]

//常用COMMAND:
start name.service                 //启动服务
stop name.service                  //停止服务
reload name.service		   //重载服务
restart name.service               //重启服务
status name.service                //查看服务状态
enable name.service                //设定某服务开机自动启动
disable name.service               //禁止服务开机自动启动
mask name.service                  //禁止设定为开机自启
unmask name.service                //取消禁止设定为开机自启

//系统运行级别
runlevel0.target和poweroff.target    //关机
runlevel1.target和rescue.target      //单用户模式
runlevel2.target和multi-user.target  //对于systemd来说,2/3/4级别没有区别
runlevel3.target和multi-user.target  //对于systemd来说,2/3/4级别没有区别
runlevel4.target和multi-user.target  //对于systemd来说,2/3/4级别没有区别
runlevel5.target和graphical.target   //图形级别
runlevel6.target和reboot.target	     //重启

//不常用COMMAND:
try-restart name.service	   //条件式重启服务,若服务已经启动则重启,若服务未启动则不做任何操作
reload-or-restart name.service     //重载或重启服务,能reload则reload, 否则restart
reload-or-try-restart name.service //重载或条件式重启服务,能reload则reload, 否则 try-restart
list-dependencies name.service     //查看服务的依赖关系
is-active name.service             //查看某服务当前激活与否的状态
is-enable name.service             //查看服务是否开机自动启动
isolate name.target                //切换至某级别,如systemctl isolate graphical.target就是切换至图形界面
list-unit-files --type service     //查看所有服务的开机自动启动状态(是否开机自启)
list-units --type service	   //查看所有已经激活的服务状态信息
list-units --type target           //查看所有已装载的级别
list-units --type service --all    //查看所有服务(已启动/已停止)的状态信息
list-units --type target --all     //查看所有的级别
get-default                        //查看默认运行级别
set-default name.target            //设置默认运行级别
rescue                             //切换至紧急救援模式(大多数服务不启动,但是会加载驱动)
emergency                          //切换至emergency模式(驱动不会加载,系统不会初始化,服务不会启动)
halt                               //关机
poweroff                           //关机
reboot                             //重启
suspend                            //挂起系统,此时不能关机,否则无用
hibernate                          //创建并保存系统快照,下次系统重启时会自动载入快照
hybrid-sleep                       //混合睡眠,快照并挂起
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号