0102Linux基础命令

目录

常用快捷方式

1.Tab键自动补全

2.快捷键

3.别名的定义:简化复杂的命令

4.使用通配符

5、history历史命令的使用

命令行完整格式:——命令字     [选项]...     [参数1][参数2]...

一:查看系统配置

1:查看内核信息

2:查看系统版本

3:查看主机名称

4:查看网卡信息(IP地址,mac地址)

5:查看CPU信息

6:查看内存信息

二:基本命令的使用--关机及重启

1:关机

2:延时关机

3:重启及延时重启

三:文件管理

1:pwd  

2:cd    

3:ls —List    列出目录内容

4:mkdir   —Make Directory     新建目录

5:touch —新建文件

6:ln   Link— 制作连接文件(新建快捷方式)

7:cp    Copy    复制文件

8:rm    Remove    删除文件

9:mv    Move    移动文件/目录

11:重命名:路径不变的移动

四:文件内容操作

1.1:文件字数统计

1.2  du,统计文件占用空间

2:cat   连接并显示文件(打开文件)    concatenate

3:文本编辑器VIM

4:分页阅读工具

分页阅读工具1—   mo

re    文件名

分页阅读工具2—    less   文件名

5:分页查看命令输出

6:截取文件首/尾部

head     tail

7:保存命令输出为文本

五:文件压缩归档操作

1:制作一个zip压缩包

2:释放zip压缩包

3:制作一个gz压缩包

4:释放gzip压缩包-

5:bzip2    xz

6:制作tar包

7:释放tar归档包

六:文档查找

1:查找可执行程序

2:find条件查找文档

3:grep文件内容检索

七:用户管理

--用户账户

--组账户

1:添加普通用户

2:给用户设置登录口令

3:解析用户账号文件/etc/passwd

4:解析用户账号文件续shadow

5:用户密码控制

6:修改用户

7:密码有效控制

8:用户删除

9:查询ID

10:破解root的密码

11.用户初始配置

手动创建用户家目录:

八:组账号管理

1.组账号的增删改查操作

添加组账号        

组的删除 groupdel    

修改组账号

查看用户的组信息 

2.groupadd 添加组账号

3.gpasswd管理组成员

4.解析组账号文件

创建用户、组的注意事项:

经典案例:

九、重定向与管道操作

1.重定向

2.管道操作

十、date时间操作

十一、计划任务(工作常用)

1.周期性任务

(1)、cron任务概述

(2)、管理计划任务

(3)、编写crontab任务记录


命令不全,此为常用命令,初学没必要记忆全部命令
 /  
 根目录
目录:    文件夹
文件:   .txt    .exe  .doc
左上角--应用程序--终端
[root@localhost ~]# 
:  /root
ctrl+v-----^v

常用快捷方式

1.Tab键自动补全

可补齐命令字、选项、参数、文件路径、软件名、服务名

]# if(tab) (tab)        #列出以if开头的命令  

]# ifco(tab)

2.快捷键

Ctrl + c:结束正在运行的命令
Esc + .  或  Alt + .    :粘贴上一个命令的参数
Ctrl + l:清空整个屏幕
Ctrl + u:从光标处清空至行首
Ctrl + w:往回删除一个单词(以空格界定)
Ctrl + a 或 Home键:光标快速到行首
End 键:光标快速到行尾

3.别名的定义:简化复杂的命令

——查看已设置的别名
         alias  [别名名称]
——定义新的别名
         alias  别名名称= '实际执行的命令行'         #临时的别名
——取消已设置的别名
        unalias  [别名名称]
]#hostname
]#alias   hn='hostname'         #
定义别名
]#hn

]#alias            #
查看系统中有哪些别名
]#unalias  hn   #删除 hn别名
]#hn
bash:hn:未找到命令......

]# alias  myls='ls  -l'
]# myls  /etc/passwd
设置一个别名,执行myls时相当于执行'ls
 -l'命令

永久定义别名:编辑/root/.bashrc
1. 编辑/root/.bashrc在里面添加上我们需要的别名设置保存退出即可
2.使用source命令让这个初始化文件生效

全局永久别名:编辑/etc/bashrc        #全局配置文件,影响全体用户 (开启新的终端)

[root@localhost ~]# \cp  -r   /boot/   /opt/        #  前面家反斜杠本次操作临时取消别名

4.使用通配符

  • 针对不确定的文档名称,以特殊字符表示
  • *:任意多个任意字符 
  • ?:单个字符

[root@localhost /]# ls  /root/a*

[root@localhost /]# ls  /boot/vm*

[root@localhost /]# ls  /etc/*tab

[root@localhost /]# ls  /etc/*.conf

[root@localhost /]# ls  /etc/re*.conf

[root@localhost /]# ls  /dev/tty*

[root@localhost /]# ls  /etc/??tab

[root@localhost /]# ls  /dev/tty?

[root@localhost /]# ls  /dev/tty??

  •  [a-z]:多个字符或连续范围中的一个,若无则忽略
    • [root@localhost ~]# ls /dev/tt[a-z]
    • {a,min,xy}:多组不同的字符串,全匹配

[root@localhost ~]# ls    /dev/tty[1-7]
/dev/tty1  /dev/tty2  /dev/tty3  /dev/tty4  /dev/tty5  /dev/tty6  /dev/tty

[root@localhost ~]# ls /dev/tty{1,3,4,6,8}
/dev/tty1  /dev/tty3  /dev/tty4  /dev/tty6  /dev/tty8

5、history历史命令的使用

[root@svr7 ~]# history   #查看历史命令
[root@svr7 ~]# history   -c   #清理历史命令
[root@svr7 ~]# ls   /root
[root@svr7 ~]# cat   /etc/redhat-release
[root@svr7 ~]# !cat   #执行历史命令中最近一条以cat开头的

历史命令数量最多可以记录1000
[root@svr7 ~]# vim   /etc/profile
HISTSIZE=1000            
#指定历史命令记录的条数

命令行完整格式:——命令字     [选项]...     [参数1][参数2]...

一:查看系统配置

1:查看内核信息

uname        -a        主机名,内核,硬件平台等全部信息
uname        -r        只显示内核信息
选项    ERROR

2:查看系统版本  

cat   /etc/redhat-release      #查看系统版本

3:查看主机名称

hostname           主机的完整名称,包含了主机名以及所在域的名称

4:查看网卡信息(IP地址,mac地址)

ifconfig   eth0(eth0为本机的网卡接口

5:查看CPU信息

cat   /proc/cpuinfo
lscpu    #查看CPU处理器信息

6:查看内存信息

cat  /proc/meminfo

/proc : 内存的数据,不占用硬盘空

二:基本命令的使用--关机及重启

1:关机

shutdown    -h   now
poweroff
init  0

2:延时关机

shutdown    -h  +15  
ctrl +c        shutdown   -c    取消延时关机

3:重启及延时重启

shutdown     -r    now
shutdown   -h   3600
reboot         重启
init  6

三:文件管理

根目录
/etc   /dev    /root   /boot      一级目录

绝对路径:以根开始的路径

相对路径:以当前为参照的路径

1:pwd  

 Print  Working Directory    输出当前文件/目录的路径

2:cd    

Change Directory        进入到指定目录
      cd    /etc
      cd   ..     返回上一级目录
      cd   ../..   返回上两级目录

       .  :当前目录
       .. :父目录(上一层)
       ~:表示家目录
      家目录:专门存放用户个性化信息的目录
       ~user:用户user的家目录
       /root:是Linux管理员的家目录
       /home:存放所有普通用户的家目录
       ]# cd  ~root    #去往root用户的家目录
       ]# pwd

3:ls —List    列出目录内容

用法:ls   [选项]... [文件]... 
      ls  -l    /etc    长目录格式显示
      ls  -d  /etc    显示目录本身的属性
      ls  -lh  /etc    提供易读的容量单位
      ls  -A:显示所有内容,包含隐藏数据
      ls  -R :   递归显示

4:mkdir   —Make Directory     新建目录

       mkdir  /nsd
       mkdir   -p   /etc/hello         #递归创建目录  

       mkdir  -p  /opt/aa/bb/cc/dd

5:touch —新建文件

      touch      abc
      touch   /root/test/a.txt

      touch   /opt/.yincang.txt    #创建一个隐藏文件

6:ln   Link— 制作连接文件(新建快捷方式)

  格式:ln   -s   /路径/源数据     /路径/快捷方式的名称       //软连接
           ln   -s   /etc/hello/abc    /dev/         
                             原文件         快捷方式路径
      软连接优势:可以针对目录与文件制作快捷方式,支持跨分区
      软连接缺点:源数据消失,快捷方式失效

  格式:ln     /路径/源数据     /路径/快捷方式的名称          //硬连接
    
    硬连接优势:源数据消失,快捷方式失效
        硬连接缺点:只针对文件制作快捷方式,不支持跨分区

7:cp    Copy    复制文件

      cp  [选项]...   原文件...    目标路径...
      cp   -r        递归复制(复制目录)
      cp   -f        强制覆盖不提示
      cp   -p        保持原文件属性不变(所属主,所属组等属性不变)

重名进行强制覆盖    
      
]# \cp -r  /boot/   /opt/ #本次操作临时取消别名
这个操作的意义:执行cp -r  /boot/   /opt/之后再次执行此操作,会出现重复文件,会有选择是否覆盖,文件多的时候比较麻烦。执行\cp -r  /boot/   /opt/ 会直接覆盖。

复制可以支持重新命名,目标路径下数据的名称
       ]# cp    -r     /home/       /opt/myhome
       ]# ls   /opt/
       ]# cp  /etc/redhat-release      /opt/r.txt
       ]# ls   /opt/

复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据
        ]# mkdir  /nsd05
        ]# cp   -r    /home/   /etc/passwd   /boot/   /etc/shells   /nsd05
        ]# ls   /nsd05

复制与一个点进行连用,将数据复制到当前路径下
         ]# cd    /etc/sysconfig/network-scripts/
         ]# pwd
         ]# cp   /etc/passwd            #这是一个点
         ]# ls

8:rm    Remove    删除文件

      rm    文件
      rm   -r        递归删除
      rm   -f        强制删除不提示   

9:mv    Move    移动文件/目录

        mv    原文件      目标路径
        mv   -f        强制覆盖不提示

11:重命名:路径不变的移动

      ]# ls   /opt/
      ]# mv   /opt/nsd01   /opt/abc
      ]# ls   /opt/

      ]# mv   /opt/abc/   /opt/student
      ]# ls   /opt/

      ]# mv  /opt/student    /mnt/stu01
      ]# ls  /mnt/

四:文件内容操作

1.1:文件字数统计

wc    Word  Count
用法:wc   [选项]... [文件]...            行数,单词数,字节数
 -c,     --bytes                   print the byte counts
 -m,    --chars                   print the character counts
  -l,     --lines                     print the newline counts
  -L,    --max-line-length    显示最长行的长度
  -w,   --words                   显示单词计数

字符跟字节:英文字符占一个字节,中文字符占2-3个字节,隐藏换行符也占一个字符

1.2  du,统计文件占用空间

——du   [选项]...   [目录或文件]...
        -s:只统计每个参数所占用的总空间的大小
        -h:提供容易读的容量单位(k, M等)

[root@localhost ~]# du -sh /root

2:cat   连接并显示文件(打开文件)    concatenate

用法:cat   [选项]...   [文件]...
           cat -n   /etc/shells    #显示行号
将[文件]或标准输入组合输出到标准输出。

  -A, --show-all                  等于-vET
  -b, --number-nonblank    对非空输出行编号
  -e                                 等于-vE
  -E, --show-ends           在每行结束处显示"$"
  -n, --number                 对输出的所有行编号
  -s, --squeeze-blank      不输出多行空行
  -t                                  与-vT 等价
  -T, --show-tabs            将跳格字符显示为^I
  -v, --show-nonprinting   使用^ 和M- 引用,除了LFD和 TAB 之外
  --help                   显示此帮助信息并退出
  --version              显示版本信息并退出
 

3:文本编辑器VIM

vim     #修改文本文件内容,新建文本文件功能
三个模式:命令模式、插入模式(输入模式)、末行模式
[root@nb ~]# vim /opt/abc.txt

     esc  ->                            <-  esc
输入模式-----命令模式-----末尾行模式
             <-  a 或 i                    ->
末尾行模式:

—保存、退出
 q        退出
 w        保存
        强制操作
q!        强制退出不保存
wq 或 x     保存并退出
ZZ
(大写)         保存修改并退出

—查找
/word            向后查找字符串word
n            跳转至下一个找到的字符
N            跳转至上一个找到的字符

—字符串替换

操作类型

设置指令

用  途

行内替换

:s/root/new 

替换光标所在行第一个“root”

:s/root/new/g 

替换光标所在行所有的“root”

区域内替换

:1,10s/root/new/g 

替换第1-10行所有的“root”

:%s/root/new/g 

替换文件内所有的“root”

—开关参数的控制

操作类型

设置指令

用  途

编辑器设置

:set  nu或set   nonu

显示/不显示行号

:set  ai或 set   noai

启用/关闭自动缩进

命令模式输入:

—光标移动:
上下左右
            移动光标
page up   page down    上下翻页
Home键,^ ,数字0      跳转文件的行首
End键 ,$                   跳转文件的行首行尾
gg            跳转到文件的首行
           跳转到文件的末尾行

—复制、粘贴
yy     #yy            复制光标处的一行,#行
pP           粘贴到光标处之后,之前

—删除
x或者Delete键        删除光标处的单个字符
dd    #dd            删除光标处的一行,#行
d^ 或          从光标处之前删除至行首
d$                  从光标处删除至行尾

—撤销
u            撤回上一步操作(撤销)
Ctrl + r   取消上一步的撤销(反向撤销)

补充:在命令模式下大写的C,可以删除光标之后,并且进入插入模式

4:分页阅读工具

分页阅读工具1—   mo

re    文件名

more   /etc/passwd
回车下翻一行
空格下翻一页
q或者Q退出
缺点:往回翻页不方便

分页阅读工具2—    less   文件名

优点:可以前后翻页
上下箭头代表前后翻一行
page up    page down  代表前后翻一页
q或者Q退出

/ 向后查找特定关键字
/...   ...表示你想查找的特定关键字

5:分页查看命令输出

管道操作
cat  /etc/passwd  |   less

6:截取文件首/尾部

head     tail

head   -n数字   文件名
head   -2   /etc/passwd

tail   -n数字   文件名
tail   -2   /etc/passwd
截取中间部分内容:用一个管道操作,嵌套使用head,tail

7:保存命令输出为文本

man   uname   >   file1.txt     //  man   [命令]  -------详细帮助文档
less    file1.txt

五:文件压缩归档操作

归档:将许多零散的文件整理为一个文件
           文件总的大小基本不变
压缩:按某种算法减小文件所占用空间的大小
          恢复时按对应的逆向算法解压
常见的压缩格式及命令工具:
.gz   -->  gzip    gunzip
.bz2 -->  bzip2   bunzip2
.xz   -->   xz        unxz

1:制作一个zip压缩包

zip  归档工具,跨平台
用法:zip  -r   [压缩包名]...  [被压缩的文件]...
zip  -r   abc.zip   /etc/passwd  /home
ls  -lh  abc*

unzip  -l  压缩包名      #显示压缩包内容

2:释放zip压缩包

unzip      压缩文件   -d  指定释放路径
unzip     abc.zip    -d     /boot/  

3:制作一个gz压缩包

分别压缩每一个文件,但是原文件不保留
gzip   文件名
cd  /dev
touch  test.txt
gzip   /dev/test.txt
ls  -lh  /dev/test.txt

4:释放gzip压缩包-

gunzip  gz压缩包
gunzip   /root/test.gz
gunzip  -d   gz压缩包  gz压缩包

5:bzip2    xz

bzip2   文件名
xz   文件名
bunzip2   bz2压缩包
unxz   xz压缩包

6:制作tar包

tar   集成备份工具
tar   制作压缩包(tar打包)

格式: tar  [选项...]   /路径/压缩包名字......   /路径/被压缩的数据01  /路径/被压缩的数据02......
逐一复制并归档,原目录文件保留
tar  -zcf   /root/test.tar.gz      /home   /boot    /etc/passwd
-c         create创建,动作为打包
-f          归档--指定压缩包名字,必须在所有的选项的最后
-z、-j、 -J :调用 .gz   .bz2   .xz  格式的工具进行处理
-p         保留根路径
-v         细节模式
-------------------------------------------------------------------------
 -t          显示归当中的文件清单
tar  -tf    test.tar            查看归档内容

7:释放tar归档包

 -x         释放
-C         指定释放路径

tar   -xf   tar归档包   -C  目标目录    释放归档到指定目录

六:文档查找

1:查找可执行程序

给定一个关键字,Linux从哪里去找这个命令
echo   $PATH    查看系统的环境变量
which   cd       查看切换目录的命令字

2:find条件查找文档

find    查找范围   查找条件 (d,f,l)
 find     /root        -type      l
条件
-type    类型
    d 目录            directory
    f 普通文件      file
    l 快捷方式     
    b 块设备         
    c 字符设备     character
     find   /root   -type   d

-name   "文档名称"
find   /root  -name    "abc.*"         #通配符
find   /root  -name    "abc.???"   (.txt  就输入3个?)
find   /root  -name    "abc*"
通配符  [1-9]

find  /etc/  -name  "*.conf"  |  wc -l

wc -l      #统计行数

-size    文件大小(k,M,G)   ( +  or   -  )
find   /root   -size   -10M   (小于10M)
find   /root   -size   +10M   (大于10M)

-mtime    修改时间+    -    天数)  上一次修改的时间
  find   /root  -mtime  -1
-mtime +90   //90天之前的数据
-mtime -90   //90天之内的数据
三个月以前的数据,+90

-user   用户名  (按照数据的所有者)

[root@localhost ~]# find    /home/   -user   lisi

[root@localhost ~]# find    /    -user    lisi

find  [范围]   [条件]   -exec    处理命令    {}     \;
(find每查找到一次就执行额外操作一次)

-exec   额外操作的开始
{}  永远表示前面的find查找的结果
\;额外操作的结束

[root@localhost ~]# find /boot/ -size +10M
/boot/initramfs-0-rescue-8bda2e2780584eadaa228b230c02deb9.img
/boot/initramfs-3.10.0-862.el7.x86_64.img
[root@localhost ~]# find /boot/ -size +10M -exec cp {} /mnt   \;
[root@localhost ~]# ls /mnt/
initramfs-0-rescue-8bda2e2780584eadaa228b230c02deb9.img
initramfs-3.10.0-862.el7.x86_64.img

3:grep文件内容检索

grep  [选项]   [关键词]   目标文件
检索行
 选项:
            -i    检索的时候忽略大小写
            -v    反转查找  (除此之外的)
            -color    突出显示查找的关键词

grep命令默认不支持通配符

             grep   -i   '127.0.0.1'   /etc/hosts       -->检索127.0.0.1所在的一行
  关键词:
                ^....       以....开头的
                ^#         表示注释行
                ...$        以...结尾的
                 ^$        表示空行
过滤配置文件
去除注释行:grep   -v  ^#  /etc/hosts      #开头表示注释行
grep   -v  ^#   /etc/hosts | grep  -v   ^$    //去除注释行和空行

七:用户管理

--用户账户

作用:--可以登陆操作系统
           --不同的用户具备不同的权限
唯一标识:UID(编号从0开始的编号,默认最大60000)
                 管理员root的UID:永远为0
                 系统用户(为程序运行与服务运行提供身份)为1~999
                 普通用户的UID:默认从1000开始

--组账户

作用:
唯一标识:GID
原则:linux一个用户必须至少属于一个组
组账号的分类:
          基本组:系统创建与用户同名       #用户创建的同时系统会默认创建一个该用户的组,    
                                                              即创建用户 lisi 的同时,系统会创建一个lisi组。
          附加组(从属组):有管理员创建,由管理员进行加入
 

1:添加普通用户

 格式:useradd  [选项]...   用户名

useradd    zhangsan
useradd    -u    1300  lisi

 -u, --UID            //指定新用户的用户 ID
 -d, --home-dir    // 指定新用户的主目录(家目录),缺省为/home/用户名
       注意不能自主创建家目录,指定家目录时不能不存在的多层目录.
-g ,   将用户加入指定组
 -G, --groups       //指定新用户所属的附加组
      groupadd  组名    //创建组
      [root@localhost ~]# groupadd  stugrp    //单独创建stugrp组
      [root@localhost ~]# useradd  -G  stugrp  xixi   #创建用户xixi并加入stugrp组中
 -s, --shell-解释器          //指定新用户的登录 shell,

2:给用户设置登录口令

passwd   lisi

4f^ 7d$ 8b@ 7a! 8h* 1g& 2h* 4g& 6d$   #一组有规律的密码  ^_^

3:解析用户账号文件/etc/passwd

/etc/passwd        //保存用户账号基本信息,每个用户记录一行
head   -n  1  /etc/passwd     //截取文件的第一行
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
1:root        用户账号名
2:x        密码字串或占位符x
3:0        用户账号的UID
4:0        用户所属组的GID
5:root        用户全名
6:/root        宿主目录
7:/bin/bash    登录shell程序路径

4:解析用户账号文件续shadow

/etc/shadow    保存用户密码字串和有效期等信息
tail   -n  1   /etc/shadow
nsd01:$6$8R8p4HYR$zvpoLXJFgGvyQF5C1j.zmFtwI7mEwMY/N5sy3ymdfHkB3Mbb9r/0LkCdFZ4LfdAlBkRc55K4cP4aSOA2KC2KR/:19032:0:99999:7:::

1:nsd01     用户账号名称
2:****          加密后的密码字符串
3:19032     上次修改密码的时间
  #自1970-1-1至上一次修改密码的时间,所经历的天数
4:0             密码最短有效时间,默认为0
5:99999     密码最长有效时间,默认为99999
6:7             密码过期前的警告天数
7: ***          密码过期后多少天禁用此用户
8:***           账号失效时间,默认值为空
9:***           保留字段(未使用)

强制用户初次登录时修改密码(了解)
[root@localhost ~]# vim   /etc/shadow
………
harry:$6$Y7P/HqvZ$roWXwACsX.pUY9GUKLQMRVHjygMWmiN8m45jYY3Tt.tPFDWVxJIdE7gyKHWo1/UKQC7ocEke5Uu8gKN8jydkp1:0:0:99999:7:::
上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数,修改成0
强制保存并退出

5:用户密码控制

   passwd    [选项]    用户名
   passwd  -d  zhangsan            清空密码,使之不需要密码即可登录
   passwd  --stdin  zhangsan            从标准输入密码(管道输入)
   echo   [新密码] | passwd  --stdin [用户名]     更改用户密码

6:修改用户

usermod   [选项]   新的用户名    用户名
-l     更改用户账号名称
-L    锁定用户账号   Lock
-U    解锁用户账号  Unlock
-u    更改用户账号的UID
-d    更改用户账号的宿主目录
-g    更改用户账号的所属组
-s    更改用户账号的登录shell(登陆解释器)
-G    附加组     //重置附加组----重置之前的附加组

7:密码有效控制

chage   [选项]    修改内容   用户名              (操作对象在最后)
用法:chage  [选项]  登录
选项:
  -d,  --lastday 最近日期                 将最近一次密码设置时间设为“最近日期”
  -E,  --expiredate 过期日期          将帐户过期时间设为“过期日期”XXXX-XX-XX
  -h,  --help                                       显示此帮助信息并推出
  -I,   --inactive INACITVE             过期 INACTIVE 天数后,设定密码为失效状态
  -l,   --list                                          显示帐户年龄信息
  -m, --mindays 最小天数              将两次改变密码之间相距的最小天数设为“最小天数”
  -M, --maxdays MAX_DAYS        set maximum number of days before password
                                change to MAX_DAYS
  -R, --root CHROOT_DIR             chroot 到的目录
  -W, --warndays 警告天数           将过期警告天数设为“警告天数”

8:用户删除

格式:userdel   [-r]   用户名
添加 -r 选项,宿主目录/用户邮件也一并删除

[root@localhost ~]# userdel  -r  nsd01  #连同家目录一并删除
[root@localhost ~]# userdel   nsd02  #不删除家目录,只删除用户信息

9:查询ID

 id  用户名

10:破解root的密码

必须是服务器管理者,涉及到重启服务器系统
思路:进入救援模式,修改root用户的密码
1.重启Linux系统
   [root@nb ~]# reboot
2.在此界面按键盘的上下键,停在此界面。选择第一行,按e
  0102Linux基础命令_第1张图片3.找到linux开头的行,将ro修改为
rw,在该行的最后写入 rd.break
 0102Linux基础命令_第2张图片

4.按Ctrl  x进入救援模式,提示符为 switch_root:/#
5.进入救援模式之后
switch_root:/#
chroot  /sysroot  #切换环境,切换到硬盘操作系统的环境
sh-4.4# ls #查看硬盘操作系统的所有数据
sh-4.4# echo 123 | passwd --stdin  root #修改root密码

如果SELinux是强制模式才需要重设SELinux策略(其他模式不需要做此操作
sh-4.2# vim /etc/selinux/config        #查看SELinux开机的运行模式
     修改为宽松模式permissive
sh-4.2# touch   /.autorelabel            #让SELinux失忆


0102Linux基础命令_第3张图片
sh-4.4#
 reboot  -f
   #强制重启

11.用户初始配置

用户初始配置文件
   —新建用户时,新建用户家目录,根据 /etc/skel  模板目录复制

[root@localhost ~]# ls  -A  /etc/skel/
.bash_logout  .bash_profile  .bashrc  .mozilla

[root@localhost ~]# ls  -A  /home/xixi
.bash_logout  .bash_profile  .bashrc  .mozilla

[root@localhost ~]# touch  /etc/skel/xixi.txt
[root@localhost ~]# mkdir  /etc/skel/test
[root@localhost ~]# ls  -A  /etc/skel/
.bash_logout  .bash_profile  .bashrc  .mozilla  test  xixi.txt
[root@localhost ~]# useradd  nsd21
[root@localhost ~]# ls  -A  /home/nsd21
.bash_logout  .bash_profile  .bashrc  .mozilla  test  xixi.txt

主要的初始配置文件

.bash_profile:  每次登陆时执行,定义初始变量值
/root/.bashrc : 每次进入新的Bash环境时执行    #用来设置永久别名

全局配置文件:
   /etc/bashrc        
  #用来设置全局永久别名
   /etc/profile

手动创建用户家目录:

/etc/skel内容复制到手动创建的用户家目录下;然后把目录的所属主:所属组修改成用户;该目录权限修改为700。

root@localhost ~]# useradd kenji
[root@localhost ~]# grep kenji /etc/passwd
kenji:x:1001:1001::/home/kenji:/bin/bash
[root@localhost ~]# usermod -d /opt/ken kenji
[root@localhost ~]# grep kenji /etc/passwd
kenji:x:1001:1001::/opt/ken:/bin/bash
[root@localhost ~]# ls  /opt/ken
ls: 无法访问/opt/ken: 没有那个文件或目录
[root@localhost ~]# cp  -r   /etc/skel/  /opt/ken      #/etc/skel内容复制到手动创建的用户家目录下
[root@localhost ~]# ls -ld /opt/ken
drwxr-xr-x. 3 root root 78 3月   9 09:26 /opt/ken
[root@localhost ~]# chown -R kenji:kenji /opt/ken    #把目录的所属主:所属组修改成用户
[root@localhost ~]# ls -ld /opt/ken
drwxr-xr-x. 3 kenji kenji 78 3月   9 09:26 /opt/ken
[root@localhost ~]# chmod   700   /opt/ken      #该目录权限修改为700

八:组账号管理

1.组账号的增删改查操作

添加组账号        

groupadd    -g   GID   组账号名称

组的删除 groupdel    

删除组账号: groupdel   组账号名称

       删除组的时候,不可以删除基本组     **************

       [root@localhost ~]# groupdel  tmooc

       [root@localhost ~]# grep  tmooc  /etc/group

修改组账号

groupmod   -g   新GID    组名        //更改GID
groupmod   -n   新组名   组名        //更改组名

查看用户的组信息 

   groups    用户名

2.groupadd 添加组账号

groupadd命令

用法: groupadd   [选项] ...    组名
选项:
  -f, --force             如果组已经存在则成功退出
            并且如果 GID 已经存在则取消 -g
  -g, --gid GID                 为新组使用 GID
  -K, --key KEY=VALUE    不使用 /etc/login.defs 中的默认值
  -o, --non-unique              允许创建有重复 GID 的组
  -p, --password                 为新组使用此加密过的密码
  -r, --system                      创建一个系统账户
  -R, --root CHROOT_DIR    chroot 到的目录

3.gpasswd管理组成员

gpasswd命令
用法:gpasswd   [选项]   用户名   组名
选项:
  -a, --add USER                 #添加组成员,每次只能添加一个
  -d, --delete USER             #删除组成员,每次只能删除一个
  -M, --members USER,...        定义(覆盖)组 GROUP 的成员列表,可设置多个
  -A, --administrators ADMIN,...    定义组的管理员列表  
   gpasswd  -A nb tarena   //设置nb为tarena组的管理员

示例1:
root@localhost ~]# groupadd tarena
[root@localhost ~]# useradd kaka
[root@localhost ~]# useradd nb
[root@localhost ~]# useradd jack
[root@localhost ~]# useradd kenji
[root@localhost ~]# gpasswd  -a kaka tarena        #添加用户kaka到tarena组
[root@localhost ~]# id kaka
[root@localhost ~]# gpasswd  -M 'jack,kenji' tarena    #定义组成员列表

[root@localhost ~]# gpasswd  -a nb tarena
[root@localhost ~]# gpasswd  -d nb tarena      #将nb用户从tarena组中删除

[root@localhost ~]# gpasswd -M '' tarena      #删除组中所有成员

示例2:
-A:定义组管理员列表     
[root@localhost ~]# su - nb
[nb@localhost ~]$ gpasswd -a kaka tarena
gpasswd:没有权限。
[nb@localhost ~]$ exit
[root@localhost ~]# gpasswd -A nb tarena   #设置组管理员
[root@localhost ~]# su - nb
[nb@localhost ~]$ gpasswd -a kaka tarena
正在将用户“kaka”加入到“tarena”组中
[nb@localhost ~]$ exit

4.解析组账号文件

(1)/etc/group          //存放组基本信息
  grep  tarena   /etc/group
       tarena  :  x  :  1607  :  nb,kaka
       #组名:组密码占位符:组的GID:组成员列表
  tarena:组账号名称
  x:密码占位符
  1607:组账号的GID
  nb,kaka:本组的成员用户列表

(2)/etc/gshadow    //保存组账号的管理信息
        每一组记录一行,以分割4个字段
          tarena  :  !  :  nb  :  nb,kaka
          组账号名称:加密后的密码字符串:本组的管理员列表:本组的成员用户列表

创建用户、组的注意事项:

1、/etc/passwd:用户基本信息配置文件
2、/etc/shadow
:用户密码信息配置文件
3、/etc/g
roup:组的基本信息配置文件
4、/etc/gshadow:组的管理信息配置文件

经典案例:

请问我创建一个用户tom,这个4个文件那些增加内容?

useradd  tom   四个全部变化

useradd命令解析:
1./etc/
passwd:用户基本信息配置文件 增加一行
2./etc/shadow
:用户密码信息配置文件增加一行
3./etc/group:组的基本信息配置文件增加一行
4./etc/gshadow:组的管理信息配置文件增加一行
5
.在/home增加一个家目录
6.在/var/spool/mail/新增一个用户的邮件文件

userdel  -r 命令解析:
1./etc/passwd:用户基本信息配置文件 删一行
2./etc/shadow
:用户密码信息配置文件 删一行
3./etc/g
roup:组的基本信息配置文件 删一行
4./etc/gshadow:组的管理信息配置文件 删一行
5
.删除家目录
6.删除用户的邮件文件

九、重定向与管道操作

1.重定向

将前面命令的输出,作为内容,写入后面的文件
> :覆盖重定向
>>:追加重定向

补充:
  > 重定向标准输出
2> 重定向错误输出
&> 重定向所有输出

[root@localhost ~]# head -2 /etc/passwd >  /opt/p.txt
[root@localhost ~]# cat /opt/p.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostname >>  /opt/p.txt
[root@localhost ~]# cat /opt/p.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
localhost.localdomain

2.管道操作

操作符号 | -- 管道 -- 传递

 作用:将前一条命令的标准输出,传递给后一条命令处理,作为后面命令的参数。

[root@localhost ~]# head  -2  /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# head  -2  /etc/passwd |  tail -1     //仅仅输出第二行------:输出前两行的最后一行
bin:x:1:1:bin:/bin:/sbin/nologin

十、date时间操作

用法:date [选项]... [+格式]

[root@localhost ~]# date           //查看当前系统时间
2022年 02月 08日 星期二 16:52:26 CST

[root@localhost ~]# date -s "2008-8-8 08:08:08"     //修改系统时间
2008年 08月 08日 星期五 08:08:08 CST

[root@localhost ~]# date +%Y  #显示年
2022
[root@localhost ~]# date +%m  #显示月
02
[root@localhost ~]# date +%d  #显示日期
08
[root@localhost ~]# date +%H  #显示小时
16
[root@localhost ~]# date +%M  #显示分钟
52
[root@localhost ~]# date +%S  #显示秒
26
[root@localhost ~]# date +%F  #显示年月日
2022-02-08
[root@localhost ~]# date +%R  #显示时:分
16:52

十一、计划任务(工作常用)

1.周期性任务

(1)、cron任务概述

用途:按照设置的时间间隔为用户反复执行某一个固定的系统任务
软件包:cronie、crontabs
系统服务:crond
日志文件:/var/log/cron

[root@localhost ~]# tail   /var/log/cron      //了解corn执行消息

(2)、管理计划任务

使用crontab命令
编辑:crontab  -e 
   [-u 用户名]            #所有人都可以用,大多数是以root身份
查看:crontab  -l     [-u 用户名]
清除:crontab  -r     [-u 用户名]

[root@localhost ~]# crontab -l
* * * * * date >> /opt/time.txt

[root@localhost ~]# crontab  -l  -u  lisi
no crontab for lisi

(3)、编写crontab任务记录

配置格式可参考 /etc/crontab  文件


计划任务书书写格式:
分     时     日     月     周                 任务命令行(绝对路径)

    *        *       *       *       *                   #中间有空格
 

30   8   *   *   *                        //每天早上8:30执行一次
30   23   *   *   *                      //每天晚上23:30执行一次
30   23   *   *   5                      //每周的周5晚上23:30执行一次
30   23   *   *   1-5                   //每周的周一至周五晚上23:30执行一次
30   23   *   *   1,3,6           //每周的周一,周三,周六晚上23:30执行一次
30   23   1   *   1                      //每月的一号或每周的周一晚上23:30执行一次
*   *   *   *   *                            //每分钟执行一次
*/5    *    *    *   *                      #每隔5分钟运行一次
1   */2    *    *   *                      #每隔2小时运行一次

0102Linux基础命令_第4张图片

例子:
每分钟记录当前的系统时间,写入/opt/time.txt

[root@localhost ~]# date
2022年 02月 08日 星期二 11:59:39 CST
[root@localhost ~]# date >> /opt/time.txt
[root@localhost ~]# cat /opt/time.txt
2022年 02月 08日 星期二 11:59:39 CST

[root@localhost ~]# crontab -e        //编写计划任务
* * * * * date >> /opt/time.txt

[root@localhost ~]# crontab -l         //查看计划任务
* * * * * date >> /opt/time.txt

你可能感兴趣的:(01,Admin云计算系统管理,linux,运维,服务器)