• Linux常用命令


    概述

    Linux命令是一组用于在Linux操作系统上执行特定任务的命令。这些命令可以在终端窗口中使用,也可以通过脚本自动化执行。Linux命令可以用于管理文件和目录、安装和卸载软件、配置网络、查看系统状态等多种任务。在Linux中,命令通常由一个或多个单词组成,可以带有选项和参数,用于指定命令的行为和操作对象。Linux命令是Linux操作系统中的核心组件之一,掌握Linux命令可以帮助用户更好地管理和使用Linux系统。

    下面整理了一些Linux系统中常用的命令,让我们一起看看吧

    帮助命令

    基本介绍

    1. man [命令|配置文件]:获取该命令或配置文件的帮助信息,例如查看ls命令的帮助信息可以输入man ls
    2. help [命令] :获取Shell内置命令的帮助信息,例如help cd查看cd命令信息
    3. --help:一般所有的CLI程序都是命令和选项组成的,一般情况都有--help选项(有时候是-h),可以查看该命令及其选项将要说明

    关机和重启

    基本介绍

    1. shutdown -h now:立刻关机
    2. shutdown -h 数字n:n分钟后关机
    3. shutdown -r now:立刻重启
    4. shutdown -r 数字n:n分钟后重启
    5. halt:关机
    6. reboot:重启
    7. sync:将内存数据同步到磁盘

    使用细节

    1. 不管关机还是重启,首先都应该运行sync命令,确保内存数据写入磁盘

    2. 目前的shutdown|reboot|halt,命令都已经在关机前进行了sync,但是以防万一,在生产环境建议至少手动执行一次sync

    用户登录和注销

    基本介绍

    1. su 用户名:切换用户,不填默认为切换root用户,等同于su root
    2. logout:注销用户

    在一般情况下,我们登录时应该尽量不使用root(系统管理员)用户登录,因为其拥有最大权限,可能导致误操作。一般使用普通用户登录,需要时再使用su root切root用户

    使用细节

    1. logout注销命令在图形运行级别无效(一般会提示bash: logout: not login shell: use 'exit'),在运行级别3(无界面终端)下有效
    2. 运行级别的概念,请看运行级别 章节
    3. 在Ubuntu中,第一次登录root用户时,可以使用sudo su root,输入用户密码切换到root用户,然后使用passwd修改密码

    用户管理

    Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都应该向系统管理员申请一个用户,然后使用该用户登录系统。下面我们会介绍一些系统管理员(root)用户用于管理用户的命令,这意味着这些命令有的必须拥有root用户权限才能执行。(如何切换root用户,请看上一章节

    基本介绍

    单用户

    1. useradd 新用户名:创建用户,用户目录会自动创建在/home/新用户名
    2. useradd -d 指定目录 新用户名:创建用户,用户目录会创建在/home/指定目录
    3. passwd 用户名:修改指定用户密码,如果不填用户名,会给当前用户设置密码
    4. userdel 用户名:删除指定用户,但是保留其家目录
    5. userdel -r 用户名:删除指定用户及其用户目录
    6. whoami:显示当前用户名
    7. who im i:显示当前终端的用户名、终端设备和登录时间等详细信息;

    用户组

    1. groupadd 新用户组:创建用户组
    2. groupdel 用户组:删除用户组
    3. useradd -g 用户组 新用户名:创建一个用户并指定用户组
    4. usermod -g 用户组 用户名:修改用户的用户组

    细节说明

    1. passwd修改密码命令,root用户在修改其他用户密码,如果忘记填写要修改的用户名,会修复当前root用户密码,这在生产环境中会导致很严重的后果
    2. 一般情况下,我们删除用户不会使用userdel -r,因为往往用户目录下仍有重要的数据,非必要应该保留该用户目录
    3. root用户用useradd创建完用户后,系统会自动切换到新用户的目录;可以通过su root切换回root用户;root用户也可以使用exit或者logout切换回原用户
    4. who am i这条命令,本人实测必须在图形运行级别是无效的,假如你刚好和我一样使用的Ubuntu图形界面系统,可以使用ctrl+alt+f5进入运行级别3无界面终端进行测试。
    5. 用户组概念说明:
      • 在Linux中,用户组是一组具有相同权限和访问权限的用户的集合。每个用户都必须属于至少一个用户组。
      • 用户组可以用于管理文件和目录的访问权限,以及限制用户对系统资源的访问。
      • 在Linux中,每个用户都有一个主组和多个附加组。用户的主组是在创建用户时指定的,而附加组是可以随时添加或删除的
    6. 假如我们在创建用户时没有指定组,Linux会自动创建一个与用户名同名的组,然后将该用户指定到该同名组下

    扩展

    用户和用户组相关文件:

    1. /etc/passwd文件:
      • 解释:用户(user)的配置文件,记录用户的各种信息
      • 内容:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录使用的Shell
      • 示例:gallifrey:x:1000:1000:gallifrey display:/home/gallifrey:/bin/bash
    2. /etc/shadow文件:
      • 解释:口令的配置文件
      • 内容:登录名:加密口令:最后修改时间:最小时间间隔:最大时间间隔:告警时间:不活动时间:失效时间:标志
      • 示例:mail:*:19411:0:99999:7:::
    3. /etc/group文件:
      • 解释:组(group)的配置文件,
      • 内容:组名:口令:组标识号:组内用户列表
      • 示例:sambashare:x:136:gallifrey

    运行级别

    基本介绍

    运行级别的说明:

    运行级别使用频率说明
    0【不常用】关机,系统停机状态,系统已关闭,没有任何服务或进程运行
    1【不常用】可用于找回丢失密码单用户模式,只有最基本的系统服务和进程运行,没有网络服务
    2【不常用】因为无网络服务多用户模式,无网络服务
    3【常用】无图形界面节省资源,且多用户有网络服务,基本服务器都是该运行级别多用户模式,有网络服务
    4【不常用】保留级别,系统未使用
    5【常用】个人使用的Linux系统,基本都会使用图形界面图形用户界面,多用户模式,有网络服务
    6【不常用】系统重启模式,用于重新启动系统。

    命令:

    1. init[0-6]:切换运行级别0-6,例如init 3就是切换到运行级别3
    2. who -rrunlevel:可以查看当前的运行级别
    3. systemctl get-default:可以查看系统默认的运行级别,其中multi-user.target就是运行级别3,graphical.target就是运行级别5
    4. systemctl set-default [multi-user.target|graphical.target]:设置运行级别3或5

    细节说明

    1. 实际上CentOs7及之后的版本,采用了systemd作为系统初始化和管理的工具,对运行级别进行了简化。
    2. systemd为了简化运行级别的管理,将所有的运行级别都映射到了不同的target中。multi-user.target代表的是文本模式下的多用户运行级别(运行级别3),而graphical.target代表的是图形化界面下的多用户运行级别(运行级别5)。
    3. Ubuntu 15.04及更高版本已经使用了systemd来管理系统服务和运行级别。
    4. /lib/systemd/system目录下可以看到可以指定运行级别的所有的target

    文件目录

    基本介绍

    1. pwd:显示当前用户所在目录路径
    2. cd 指定目录:切换到指定目录

      • cd ~:回到根目录,普通用户所在的用户目录,一般是/home/用户名,root用户则是/root
      • cd ..:返回上一级目录
    3. ls:列出当前目录的内容

      • ls 指定路径:列出指定路径目录的内容

      • ls -a:列出当前目录的所有内容,包括以.开头的隐藏文件

      • ls -l:列出当前目录的内容,单列输出详细内容

      • ls -h:列出当前目录的内容,显示更符合人类习惯(文件大小显示从字节显示变为自适应单位)

    4. mkdir 指定一级目录:创建一个一级目录,如mkdir dog在创建一个名为dog的目录

      • mkdir 指定路径指定目录:在指定路径创建一个目录,如mkdir ./dog在当前目录创建dog目录,mkdir /home/用户目录/dog在用户目录下创建dog目录
      • mkdir -p 多级目录:创建多级目录,如mkdir ./animal/dog在当前目录创建animal目录,再在animaml目录下创建dog目录
    5. rm 文件:删除文件

      • rmdir:删除空目录,注意:只能删除空目录,命令中间没有空格

      • rm -rf 目录:删除整个目录,-f是强制删除不提示,-r是递归删除,就是强制递归删除所有文件

    6. touch 文件名: 创建指定文件名的空文件,然后touch /home/用户目录/cat就是在用户目录创建名为cat空文件
    7. cp 原文件 目标路径:将原文件拷贝到目标路径下,例如cp duck animal/就是将duck文件拷贝到animal目录下

      • cp -r 原目录 目标路径:将原目录递归拷贝到目标路径下,例如cp -r animal zoo/就是将animal目录及其所有内容拷贝到zoo目录下
      • \cp -r 原目录 目标路径:将原目录递归拷贝到目标路径下,覆盖不提示
    8. mv:移动文件及重命名

      • mv 旧文件名 新文件名:在两个文件在同一个目录下执行mv,其实就是重命名文件,例如mv anmail/dog animal/cat就是把animal目录下dog文件重命名为cat
      • mv 旧文件路径 新文件路径:当两个文件不在同一个路径下执行mv,可以移动文件(也可以重命名)例如mv animal/cat ctiy/batanimal目录下的cat移动到city目录下并重命名为bat
    9. cat 文件名:查看文件内容

      • cat -n 文件名:查看文件内容,带上行号
      • cat 文件名 | more:一般为了浏览方便,会加上| more使用more 文本过滤器,|是管道符号,more的说明请看下面
    10. more:基于Vi编辑器的文本过滤器命令,可以以全屏的方式按页显示文本内容。
      • 除了常常和cat联用,也能直接more 文件名来查看文件
      • 其内置了若干快捷键用于浏览操作,详情请看下表:
    操作说明
    空格 Space下翻一页
    回车 Enter下翻一行
    q退出
    Ctrl+F向下滚动一屏
    Ctrl+B向上滚动一屏
    =输出当前行的行号
    :f输出文件名和当前行的行号
    1. less:文本查阅工具,功能与more类似,但是更加强大,支持各种显示终端,查找操作,而且是懒加载,大文件打开更快,效率更高。

      • 使用方法less 文件名,查看文件
      • 其内置了若干快捷键用于浏览操作,详情请看下表:
    操作说明
    空格 Space下翻一页
    下箭头pagedown下翻一页
    上箭头pageup上翻一页
    /字符串搜索字符串n上一个,N下一个
    ?字符串搜索字符串n上一个,N下一个
    q退出
    1. echo:输出命令

      • echo $PATH:输出环境变量
      • echo hello world!:输出hello wrold!到控制台
      • echo hello world!>>learn.txt:追加hello world文本到learn.txt文件中
    2. head -n 数字x 文件名:查看指定文件头部x行数据,如果直接head 文件名,会默认显示前面10行数据

    3. tail -n 数字x 文件名:查看指定文件尾部x行数据,如果直接tail 文件名,会默认显示最后10行数据

      • tail -f 文件名:实时监控文件尾部,如果有追加就会显示
    4. >:输出重定向(覆盖写),示例如下

      • ls -l > nowdir.log:将该目录下内容覆盖写入nowdir.log文件
      • cat pig.txt > dog.txt:将pig.txt文件内容覆盖写入dog.txt文件
      • 如果重定向的文件不存在会自动创建再写入
    5. >>:输出重定向(追加写),示例如下

      • cal >> today.log:将当前日历信息追加写入today.log文件,注意:cal是CentOs自带输出日历信息的命令,其他linux版本可能没有
      • cat pig.txt >> dog.txt:将pig.txt文件内容追加写入dog.txt文件
      • 如果重定向的文件不存在会自动创建再写入
    6. ln:软连接,相对于Windows中的快捷方式

      • ln -s /root /home/myroot:在home目录下创建myroot目录,进入该目录会进入root目录
      • 删除软链接使用rm命令删除软链接目录就也可以了
    7. history [数字n]:查看最近执行过的n条命令(附带编号),不添加数字时,默认显示最近执行过的10条命令。

    8. !数字n:执行编号为数字n的命令,比如history 1查出来的最近执行过的1条命令记录是383 ls -a,此时输入!383就会执行ls -a

    时间日期

    基本介绍

    1. date:显示当前时间
    2. date "+指定时间格式":按指定时间格式显示日期,如date "+%Y-%m-%d %H:%M:%S",会按照年-月-日 时:分:秒格式输出当前时间
    3. date -s "%Y-%m-%d %H:%M:%S":设置系统当前时间,如date "2099-2-25 12:21:21"
    4. cal:显示当前月月历
    5. cal 年份:显示指定年份所有月历

    细节说明

    1. date "+指定时间格式",时间格式并不是一定要完整的,你可以指定任意格式的时间显示,如date "+%Y %m"只显示年份和月份,date "+%D---%D"显示当前天数中间两次用---链接
    2. cal是CentOs自带输出日历信息的命令,其他linux版本可能没有,像Ubuntu默认没有cal命令

    搜索查找

    基本介绍

    1. find [搜索范围] [选项] 查询内容 :搜索命令,可以按照文件名,用户,文件大小等条件搜索
      • find [搜索范围] -n 文件名:按照文件名搜索文件,如find /home dog.txt就是在home目录下搜索dog.txt文件
      • find [搜索范围] -user 用户名:按照用户名搜索文件,如find -user pig就是搜索所有用户为pig的文件
      • find [搜索范围] -size 数字n:搜索指定文件大小为n的文件,其中+数字n表示大于n-数字n表示小于n,单位有kMG。如find / -size +1G就是搜索根目录下大于1G的文件
    2. locate 文件名:快速定位文件路径
    3. updatedb:更新locate数据库,root用户才有权限更新
    4. which 命令:用于查找命令的二进制文件位置,如which ls就是查找ls命令的程序位置
    5. |:管道符号,用于将前一个命令的结果传输给后面的命令处理,如上文中的cat 文件名 | more
    6. grep [选项] 查询内容 源文件:过滤查找要压缩的文件[
      • grep -n 查询内容 源文件:过滤查找,显示行号
      • grep -i 查询内容 源文件:过滤查找,忽略大小写
      • grep常与|管道符号一起使用,查询文本内容,如cat bird.txt | gerp -i "hello":查看bird.txt文本并查询hello忽略大小写

    细节说明

    1. find命令是递归搜索文件目录
    2. locate命令与find不同,它不会递归搜索文件目录,locate命令利用建立好的locate数据库去搜索文件路径。locate数据库会保存系统所有的文件名称及其路径。因此第一次运行locate前得先执行updatedb命令
    3. locate因为查询数据库,所以比直接遍历文件系统快很多,但是为了保证数据准确性,root用户必须定期更新locate数据库
    4. 乌班图系统是默认没有locate命令的,可以使用sudo apt install mlocate来安装

    压缩解压

    基本介绍

    这一部分韩老师讲得不太好,所以这里补充一下菜鸟教程的内容,实际上【压缩】和【打包】是两个概念

    • 【打包】是将多个文件和目录组合成一个单独的文件,以便于传输、备份或存档

    • 【压缩】是指通过使用特定的算法和技术,将文件或数据转换为较小的尺寸,以节省存储空间或减少数据传输所需的带宽

    生产压缩包其实包含了两个过程,将多个文件【打包】成一个【包】,然后再把【包】用压缩程序压缩成【压缩包】

    tar命令

    tar是最常用的打包命令,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以 .tar结尾的。生成 tar 包后,就可以用其它的程序来进行压缩了。常见的压缩程序有以下几种:

    1. gzip 是 GNU 组织开发的一个压缩程序,.gz 结尾的文件就是 gzip 压缩的结果。与 gzip 相对的解压程序是 gunzip。tar 中使用 -z 这个参数来调用gzip
    2. bzip2 是一个压缩能力更强的压缩程序,.bz2 结尾的文件就是 bzip2 压缩的结果。与 bzip2 相对的解压程序是 bunzip2。tar 中使用-j这个参数来调用 bzip2。
    3. compress 也是一个压缩程序,但是比较冷门。与 compress 相对的解压程序是 uncompress。.Z 结尾的文件就是 bzip2 压缩的结果。tar 中使用-Z 这个参数来调用 compress。

    选项

    tar常见选项如下

    选项功能
    -c产生.tar打包文件
    -x解包.tar文件
    -v显示详细信息
    -t列出包中所有内容
    -f这个选项是必须的,指定操作涉及的文件名
    -z调用 giz,文件后缀是.gz
    -j调用 bzip2,文件后缀是.bz2
    -Z调用 compress,文件后缀是.Z

    示例

    其实选项顺序是没有固定写法的,但是如果你和我一样有选择困难症,可能参考将压缩程序的选项放在最前面的写法:

    1. tar -zcvf zoo.tar.gz dog bat pig:打包dog,bat,pig文件并用gzip压缩,生产压缩包zoo.tar,显示详细信息
    2. tar -zxvf zoo.tar.gz:解压zoo.tar.gz压缩包并解包,显示详细信息
    3. tar -cxf zoo.tar dog bat pig:打包dog,bat,pig文件,生成tar包zoo.tar
    4. tar -xvf zoo.tar:解包文件zoo.tar

    举一反三就有tar -jcvftar -jxvftar -Zcvftar -Zxvf等等

    更多

    在Windows中,我们更多会使用.rar.zip为后缀的压缩包,在Linux系统要生成或者解压这些压缩包,我们可以使用zipunziprarunrar命令。但是zip和rar程序在不同Linux系统中不一定自带的,可能需要我们自行安装

    另外zipunziprarunrar直接执行是包括【打包】和【压缩】或者【解包】和【解压】两个动作的,一般用法如下:

    1. rar a jpg.rar *.jpg:rar格式的压缩,需要先下载 rar for linux 压缩打包目录里所有jpg文件
    2. zip jpg.zip *.jpg:zip格式的压缩,需要先下载 zip for linux 压缩打包目录里所有jpg文件
    3. unrar e a.rar:解压 rar
    4. unzip jpg.zip:解压 zip
  • 相关阅读:
    HTML+CSS网页设计期末课程大作业:【中国传统文化——古诗词】学生网页设计作品 dreamweaver作业静态HTML网页设计
    Linux 离线环境下安装RabbitMQ
    群硕入列FoodTalks优质供应商地图数字化板块
    165-手表品牌浅看一下
    ES 中时间日期类型 “yyyy-MM-dd HHmmss” 的完全避坑指南
    3. 栈的应用2:【表达式求值】前缀表达式、中缀表达式、后缀表达式
    由于网络问题,导致Git Bash中输入命令:git push origin master,屡屡报出各种错误。
    【PyQt学习篇 · ⑪】:QPushButton和QCommandLinkButton的使用
    关于Object上的一些方法
    前后端分离项目-基于springboot+vue的it职业生涯规划系统的设计与实现(内含代码+文档+报告)
  • 原文地址:https://blog.csdn.net/qq_41834086/article/details/134506757