Linux常用指令整理

基于centos7

通过B站视频自行总结整理

1 关机&&重启&&用户注销 命令

  • shutdown -h now:表示立即关机
  • shutdown -h 1:1分钟后关机
  • shutdown -r now:立即重启
  • halt:关机
  • reboot:重启
  • sync:把内存数据同步到磁盘上 (关机或重启前都应执行此指令)
  • logout:用户注销

2 用户管理

Linux用户至少要属于一个组

  • 添加用户
    • useradd [选项] 用户名
    • useradd -g 用户组 用户名 (指定用户组)
    • 如果不指定用户组,就会默认创建一个同名用户组并将该用户放入其中
    • 当创建用户成功后,会自动创建和用户同名的家目录
  • 指定或更改用户密码
    • passwd 用户名
  • 删除用户
    • userdel [选项] 用户名(默认保留家目录)
    • userdel -r 用户名 删除家目录
  • 查询用户信息
    • id 用户名
    • whoami/ who am i 查询当前用户
  • 切换用户
    • su - 用户名(高权限切换为低权限时,不用输密码)
  • 增加用户组
    • groupadd 组名
  • 删除用户组
    • groupdel 组名
  • 修改用户组
    • usermod -g 新用户组 用户名 (覆盖模式)
    • usermod -G 新用户组 用户名 (增加模式)
  • 用户和组的相关文件
    • 用户配置文件(用户信息) /etc/passwd
      • 每行的含义:用户名,密码,uid,gid,注释性描述,家目录,对应的shell
    • 组配置信息(组信息) /etc/group
      • 每行的含义:组名,口令,gid,包含用户列表(一般看不到)
    • 口令配置文件 /etc/shadow

3 实用指令

指定运行级别(3和5最常用)

  • 0:关机
  • 1:单用户(找回丢失密码)
  • 2:多用户无网络
  • 3:多用户有网络
  • 4:保留用
  • 5:图形界面
  • 6:重启
  • 系统运行级别配置文件 /etc/inittab (此命令有时会被弃用)

    inittab is no longer used when using systemd.

    To view current default target, run:

    # systemctl get-default

    To set a default target, run:

    systemctl set-default TARGET.target

    there are two main targets:

    multi-user.target: analogous to runlevel 3

    graphical.target: analogous to runlevel 5
  • init [0-6] 切换运行级别
  • 面试题:如何找回丢失的root密码
    • 开机在引导时,输入回车键,进入到单用户模式,修改root密码,因为进入单用户模式root不需要密码 (远程登录无效)

帮助指令

  • man 命令或配置文件 (获得帮助信息)
  • help [选项] 命令 (获得shell内置命令的帮助信息)

man命令显示的内容是手册页(man就是manual的简写),一般man命令显示的帮助信息要更加丰富,它比命令的help选项多了命令的用法示例、命令的描述等内容。还有一个区别是man命令显示的内容来自于磁盘上的man手册页文件,如果删除了某个手册页文件时man就无法显示了,而命令的help选项是大部分命令本身内置的功能,只要系统上有这个命令,执行help选项就能够显示。

文件目录类

  • pwd (显示当前工作目录)
  • ls [选项] 目录或文件 (查看目录下内容)
    • -a:显示所有文件,包括隐藏的
    • -l:以列表形式显示
  • cd 目录 (切换目录)
    • cd ~ 切换到家目录
    • cd … 回到上一级目录
  • mkdir [选项] 要创建的目录
    • -p 创建多级目录
  • rmdir 目录 (删除空目录)
  • rm [选项] 文件|目录 (删除)
    • -r 删除目录
    • -f 强制不提醒
  • touch 文件 (新建文件)
  • cp [选项] source dest (拷贝)
    • -r:递归复制整个文件目录
    • \cp source dest (如果目标目录已存在源文件,强制覆盖)
    • 如果目标目录或文件不存在,则相当于复制一份并重命名
  • mv(移动)
    • mv 文件|目录 不存在的文件|目录(重命名)
    • mv 文件|目录 已存在的文件|目录(覆盖或移动)
  • cat (查看文件内容)
    • cat [选项] 文件
    • -n:显示行号
    • 加管道命令 | more (使用分页显示)
  • more 文件 (全屏方式按页显示文本内容)
    • enter 下一行
    • 空格 下一页
    • q 退出
  • less 文件 (根据显示需要加载内容,适合大文件)
  • 输出重定向
    • 举例:

      ls > a.txt 将ls的内容覆盖写入a.txt(目标文件不存在则会创建)
  • 追加
    • 举例:

      ls >> a.txt 将ls的内容追加写入a.txt
  • echo [选项] 内容(输出内容到控制台)
  • head (显示文件的开头部分内容)
    • 默认前10行
    • head -n 5 文件 看前五行
  • tail (显示文件的最后部分)
    • tail -n 5 文件 看最后5行
    • tail -f 文件 实时追踪该文件的所有更新
  • ln -s 原文件或目录 软链接名 (创建软链接,也叫符号链接,类似于Windows里的快捷方式)
  • history (显示执行过的历史指令)
    • history 10 显示10个
    • !数字 执行某次指令
  • wc 文件 (显示文件的行数、字数、大小)

时间日期类

  • date [选项] [格式](显示当前日期)
    • 格式:+%Y-%m-%d %H%M%S:年月日时分秒
    • date -s 字符串时间 (设置日期)
  • cal (显示日历)

搜索查找类

  • find [搜索范围] [选项]
    • find [范围] -name [文件名] 按文件名查找,文件名可包含通配符
    • find [范围] -user [用户名] 按文件的用户查找
    • find [范围] -size [大小] 按文件大小查找
      • +20M 大于20M
      • -20k 小于20k
  • locate 文件 (快速定位文件路径)
    • 定位依靠的是数据库,第一次运行前,必须先使用updatedb指令创建数据库
  • grep [选项] 查找内容 文件 (文件内过滤查找)
    • -n 显示行号
    • -i 忽略字母大小写
    • | 管道符 表示将前面命令的处理结果传递给后面的命令处理

      比如:cat test.txt | grep -n yes 等同于 grep -n yes test.txt

压缩和解压缩类

  • gzip 文件 (压缩文件)
    • 使用此命令,压缩后不会保留原文件
  • gunzip 文件.gz (解压缩文件)
  • zip [选项] xxx.zip 要压缩的内容列表 (打包并压缩,压缩后还保留原文件)
    • -r 压缩的是目录
  • unzip [选项] 文件.zip (解压缩文件)
    • -d <目录> 解压到指定目录
  • tar [选项] 文件.tar.gz 要压缩的内容列表
    • tar -zxvf test.tar.gz -C /test 将压缩文件解压到指定位置
    • tar -zcvf test.tart.gz /test 将指定内容压缩

4 组管理和权限管理

组管理

  • chown 用户名 文件名 (修改文件所有者)
    • 当用户创建一个文件后,该文件默认在创建者所在的组里
    • -R 对该目录和目录下所有文件都生效
  • chgrp 组名 文件名 (修改文件所在组)
    • -R 对该目录和目录下所有文件都生效
  • 其他组:除文件所有者和所在组的其他成员外,系统的其他用户都是该文件的其他组

权限管理

Linux常用指令整理

  • rwx作用到文件

    [r]:代表可以读取、查看

    [w]:可以修改,但不代表可以删除,删除的前提是对该文件所在目录有写权限

    [x]:代表可以被执行
  • rwx作用到目录

    [r]:代表可以读取、查看目录内容

    [w]:可以修改,目录内创建+删除、重命名目录

    [x]:可执行,即进入目录
  • chmod (权限修改)
    • 第一种方式,±=方式

      u:所有者,g:所在组,o:其他组,a:所有人

      示例:chmod o-rwx,g+w test.txt
    • 第二种方式,通过数字变更权限

      规则:r=4,w=2,x=1

      示例:chomod 751 test.txt

5 crond任务调度

crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类,系统任务调度和用户任务调度。

crontab [选项]

  • -u user:用来设定某个用户的crontab服务。
  • file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
  • -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
  • -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
  • -r:删除某个用户的crontab文件内容(即删除所有调度)
  • service crond restart 重启任务调度

crontab文件格式

minute hour day month week command

其中:

  • minute: 表示分钟,可以是从0到59之间的任何整数。
  • hour:表示小时,可以是从0到23之间的任何整数。
  • day:表示日期,可以是从1到31之间的任何整数。
  • month:表示月份,可以是从1到12之间的任何整数。
  • week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
  • command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

  • 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
  • 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
  • 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
  • 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

6 磁盘分区、挂载

分区的基本知识

(1)mbr分区:

  • 最多支持四个主分区
  • 系统只能安装在主分区
  • 扩展分区要占一个主分区
  • 最大只支持2TB,但兼容性很好

(2)gtp分区:

  • 支持无限多个主分区(但操作系统可能有限制)
  • 最大支持18EB的大容量
  • Windows7 64位以后支持gtp

linux分区挂载

  • lsblk 或 lsblk -f (查看分区挂载情况 )
  • mount 设备名称 挂载目录 (挂载)
  • umount 设备或挂载目录 (卸载)

磁盘情况查询

  • df (查看磁盘使用情况)
  • du 目录 (查看目录的磁盘使用情况)
    • -s 大小汇总
    • -a 含文件
    • -h 人类可读(带计量单位)
    • –max_depth==1 指定子目录深度
  • 工作实用指令
    • ls -l 目录 | grep “^-” | wc -l (查看目录下有多少文件)
    • ls -lR 目录 | grep “^-” | wc -l (查看目录及子目录下有多少文件)
    • tree 目录 (以树状图显示目录结构)

7 进程管理

  • ps 查看系统当前正在运行的进程
    Linux常用指令整理
  • ps -ef (可以看父进程)
    • -e显示所有进程
    • -f全格式
  • kill [选项] 进程号 (杀死进程)
    • -9 强制杀死
  • killall 进程名 (支持通配符)
  • pstree [选项] (查看进程树)
    • -u 显示进程所属用户
    • -p 显示进程的PID

服务管理

服务本质就是进程,但是是运行在后台的,又称守护进程

  • systemctl start|stop|restart|reload|status 服务名 (service 管理指令)
  • systemctl list-unit-files (查看系统服务状态)
  • setup里可以设置那些服务开机自启
  • top 动态监控进程
    • -d 秒数 (指定每隔几秒更新)
    • -i (不显示闲置或僵死进程)
    • -p PID (监控指定进程)
    • 交互操作
      • P 以CPU使用率排序
      • M 以内存使用率排序
      • N 以PID排序
      • q 退出top
      • u 按用户名监控
      • k 杀死进程
  • netstat 查看网络状况
    • -an 按一定顺序排列
    • -p 显示那个进程在调用

8 RPM和YUM

RPM

是一种用于互联网下载包的打包及安装工具

  • rpm -qa (查看所有已安装的包)
  • rpm -q xxx (查询有没有安装xxx)
  • rpm -qi xxx (查询xxx具体安装信息)
  • rpm -ql xxx (查询xxx安装包里具体有哪些文件)
  • rpm -qf xxx (查询xxx文件是属于哪个软件包的)
  • rpm -e xxx (卸载xxx)
  • rpm -ivh 安装包文件 (安装、有提示、显示进度条)

YUM

yum是一个shell前端软件包管理器,基于RPM包管理器,能够从指定的服务器下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

  • yum list (列举服务器有有哪些包)
  • yum install xxx (下载并安装xxx)
  • yum update (更新一个或所有软件)
  • 其他命令查看 man yum