文章目录
  1. 1. 命令基本格式
  2. 2. Linux 中常见目录的作用
  3. 3. 查询目录中内容 :ls
  4. 4. 目录 / 文件处理命令
  5. 5. 文件搜索命令
  6. 6. 帮助命令
  7. 7. 压缩与解压缩命令
  8. 8. 关机与重启命令
  9. 9. Linux中的挂载命令
  10. 10. Linux中的用户登录查看命令
  11. 11. 常用快捷键
  12. 12. 杂七杂八的

命令基本格式

  • [root@localhost ~]# :
    • root :当前登录用户
    • localhost :主机名
    • ~ :当前所在目录(家目录)
    • # :超级用户(管理员)提示符
    • $ :普通用户提示符
  • 命令格式 :
    • 命令 [选项] [参数]

Linux 中常见目录的作用

  • / 根目录
  • /bin 命令保存目录(所有用户均可使用)
  • /boot 启动目录,用来启动相关文件
  • /dev 设备文件保存目录
  • /etc 配置文件保存目录(没事不要动它)
  • /home 普通用户的家目录
  • /lib 系统库保存目录(保存封装好的函数的)
  • /misc & /mnt & /media :
    空目录,给系统挂载(即分配盘辐)用的
  • /root 超级用户的家目录
  • /tmp 临时目录(可以玩耍的那种)
  • /sbin 命令保存目录(供超级用户使用的)
  • /proc & /sys :
    保存的是内存的过载点,不可直接操作
    • /usr 系统软件资源目录
    • /usr/bin/系统命令(普通用户)
  • /usr/sbin/系统命令(超级用户)
  • /var 系统相关文档内容

查询目录中内容 :ls

  • 基本格式 :ls [选项] [文件或目录]
  • 选项 :
    • -a :显示所有文件(包括隐藏文件)
    • -l :显示详细信息
      注:ls -l 可简写为 ll

      -rw-r–r– 代表文件权限:
      • 第一个 - :表示文件类型
        • - :普通文件
        • d :目录文件
        • l :软链接文件(即快捷方式)
      • 后九位 :三三一组,代表身份与对应权限
        • 用户身份依次为:
          • u所有者、g所属组、o其他人
        • 各个身份所能拥有的权限有:
          • r:可读、w:可写、x:可执行
        • 故 rw-r–r– 可解析为:
          • 所有者拥有权限:rw-(读写)
          • 所属组拥有权限:r–(只读)
          • 其他人拥有权限:r–(只读)
    • -d :查看目录属性
      对比一下加 d 和不加 d :

    • -h :人性化显示文件大小
    • -i :显示 iNode(i节点)

      第一串数字即文件的i节点(可以理解为 id 号)

目录 / 文件处理命令

  • 建立目录 :mkdir
    即 make directories
    • 基本格式:mkdir -p [目录名]
    • -p 递归创建(即同时创建多级目录)
      比如说不加 -p 的时候想要直接创建,就会报错:

      但加上 -p 之后就可以愉快地一起创建了:
  • 切换所在目录 :cd
    即 change directory
    • 简化操作 :
      • cd / cd ~ :回到当前用户的家目录
      • cd - :进入上次目录
      • cd .. :进入上一级目录
  • 查询当前所在目录的位置 :pwd
    即 print working directory
    • 超级简单的命令,没有引申,还是单独放张图
  • 删除空目录 :rmdir
    即 remove empty directories
    • 当你要删的是一个空目录的时候:
    • 然而如果你要删的这个并不空…
    • 所以说它其实用的不多啦,我们一般用这个:
  • 删除文件或目录 :rm
    即 remove
    • 基本格式 :rm -rf [文件或目录]
    • 选项:
      • -r 删除目录
      • -f 强制
    • 如果啥都不加只有一个 rm :

      只能删文件不能删目录
    • 如果只加了 -r 没有加 -f :

      它里面每个分支都会问你一遍,超级麻烦
    • 所以让我们之间 rm -rf :

      好舒服了…..了???–> 千万注意可别删错了(哭
    • 千万不要打 rm -rf /* 或者 rm -rf / 或者 rm -rf *
    • 千万不要打 rm -rf /* 或者 rm -rf / 或者 rm -rf *
    • 千万不要打 rm -rf /* 或者 rm -rf / 或者 rm -rf *
  • 复制命令 :cp
    即 copy
    • 基本格式 :cp [选项] [原文件或目录] [目标目录]
    • 选项:
      • 不加 :只能复制文件

        或者给它重命名一下
      • -r :是用来复制目录的
        不加 -r 的时候想要复制目录,会报错

        加上 -r 就可以正常复制啦
      • -p :连带文件属性复制
      • -d :连带链接属性复制
      • -a :相当于 -pdr
    • 一般来说只会用到 -r 和 -a,对比如下:
      • -r 或直接不加:(注意这个时间对比)
      • 需要文件属性完全相同,包括时间等,用 -a
  • 剪切或改名命令 :mv
    即 move
    • 基本格式 :mv [原文件或目录] [目标目录]
    • 注 :可以直接对目录进行操作,不需要加 -r
    • mv 的两种使用场景 :
      • 若用在不同目录下 :剪切
      • 若用在同一目录下 :改名
  • 链接处理命令 :ln
    即 link
    • 基本格式 :ln -s [原文件] [目标文件]
    • 选项 :
      • -s 创建软链接
    • 硬链接(不推荐使用):
      • 除了创建后文件的引用计数会加一之外,其他信息不改变且完全一样(当然文件名除外)
      • 不能跨分区创建:毕竟不能在别的楼给它修门
      • 删除原文件后依然可以通过硬链接打开该文件

        查看文件内容,就会发现它是可以正常使用的:
      • 只能对文件操作,不能创建目录的硬链接
    • 软链接(推荐推荐推荐):
      • 几乎完全等同于 Windows 的快捷方式
      • 软链接:lrwxrwxrwx;创建后,文件的引用计数不变,且会有一个明确的箭头指向原文件
      • 允许创建对目录的软链接
      • 删除原文件后,无法通过软链接打开该文件
      • 敲黑板:创建的时候必须输绝对路径!绝对路径绝对路径绝对路径!!不然它就会变成这样:
    • 软硬链接最大的区别:
      • 硬:拥有与原文件相同的i节点和存储block块,可看做同一个文件,相当于一间教室的两个门;
      • 软:拥有自己的i节点和block块,保存的是原文件的文件名和i节点号,而非实际的文件数据;
      • 一张图说明一切:

文件搜索命令

  • 快速文件搜索 :locate
    • 基本格式 :locate [文件名]
    • 特点:
      • 在后台数据库中搜索,速度比 find 要快
      • 只能搜索文件或目录,不能搜索其他的
      • 不能搜素到刚刚建立的文件,比如这样 :

        为啥子呢?因为它是在 /var/lib/mlocate(可能不叫mlocate,最好用 locate locate 查一下)这个数据库中进行搜索的,而数据库的更新是有定时的嘛(大概一天一更新),所以是找不到刚刚创建的文件的啦;一定想现在找到的话,可以用 updatedb 先强制更新一下,比如这样:

        但是发现还是查不出来╭(╯^╰)╮为什么呢 为什么呢 因为它在 /tmp 里面,不会被搜索(ノдヽ)
        让我们换一个试试 :

        然后就可以成功找到啦 φ(>ω<*)
      • 那么问题来了:为啥在 /tmp 里面它就不搜索了呢?诶嘿~这就是 locate 的另一个特性了:
        locate 是按照 /etc/updatedb.conf 这个配置文件来进行搜索的,让我们打开它看一下 :

        这写的是个啥?–>四个连串的大写分别表示:
        PRUNE_BIND_MOUNTS=”yes” :开启搜索限制
        PRUNEFS= :搜索时,不搜索的文件系统
        PRUNENAMES= :搜索时,不搜索的文件类型
        PRUNEPATHS= :搜索时,不搜索的路径
        ( 备注 :PRUNE = prune = 删减,去除 )
        可以看到 /var/tmp 也在里面,所以就不搜索啦
  • 命令搜索命令 :whereis / which
    • whereis 基本格式 :whereis [选项] [命令名]
    • 选项 :
      • 不加:可执行文件可帮助文件均会查找
      • -b 只查找可执行文件
      • -m 只查找帮助文件
    • which 基本格式 :which [文件名]
    • 特别的 :
      • 除了查找可执行文件外,还会查找它的别名

        当然没有别名就不会显示啦
    • last but not least :
      • 不是所有命令都可以找到的!比如说 cd:
      • 用 whereis 找的话 :只找到了帮助文档
      • 用 which 的话 :出现了一串奇怪的东西

        那么这是什么呢!这是它的 PATH 环境变量啦(`・ω・´)因为理论上来讲只有打绝对路径才能正常执行它嘛,但是这样就太麻烦了,所有系统帮你把相应的路径都保存起来了 (=´ω`=)
      • 好了现在来说说为什么不能找到 cd :
        其实也很容易理解啦,因为 cd 属于 shell 自带的命令之一,而类似 ls / pwd 这种就属于外来的;它当然不能自己查找自己啦
  • 文件搜索命令 :find
    • 基本格式 :find [搜索范围] [搜索条件]
    • 这个涉及到的东西太杂,举几个例子好了
      • find / -name install.log

        表示在根目录下按文件名查找 install.log
        注意 :不建议这样使用 –> 搜索范围太大,会耗费大量系统资源;那为啥它只找到了一个而没找 install.log.syslog ? –> 因为 find 默认为绝对匹配,要想让它能模糊查询,得使用通配符
      • 可以在 find 查询时使用的通配符 :
        • * :匹配任意内容

          表示查询家目录下以 install.log 开头的
        • ? :匹配任意一个字符

          表示查询文件名以ab开头且共三个字母的
        • [] :匹配任意一个括号内的字符

          表示查询以ab开头,第三个字母为c或d的
      • find /root -iname INStall.log

        可以看到加上 i 之后就可以不区分大小写查找啦
      • find /root -user root

        按所有者身份搜索(该条表示查询root目录下所有者为root的全部文件),那么这有啥用呢?我们一般会这样:
      • find /root -nouser

        这找出来的是没有所有者的垃圾文件,我们就可以手动把它们清理掉啦ヾ(๑╹◡╹)ノ”但要注意的是,”位于 /sys or /proc 中由内核产生的文件” 和 “来自光盘/U盘/移动盘中的外来文件” 属于正常的无所有者文件,忽略它们就好啦,不用删的
      • find /var/log/ -mtime +10

        表示查找10天前修改过的文件;一般用于对 log 信息的查找与整理(所以是在 /var/log/ 中搜索的),其他选项如下:
        • -10 :最近10天内修改的文件
        • 10 :10天前当天修改的文件
        • +10 :距今10天前修改的文件
        • atime :文件访问时间
        • ctime :文件属性改变
        • mtime :文件内容修改
      • find . -size 25k

        表示搜索当前目录下大小为25k的文件
        find . -size -25k

        表示当前目录下大小小于25k的文件
        注意:除了k是小写外,其他都大写(比如M)
        另外:一定要带单位!不然系统默认的单位是扇区!25 = 25个扇区 = 25 * 512个字节!
      • find -inum 658173

        表示根据 i 节点查找文件,和 ls -i 是对应的
      • find /etc -size +20k -a -size -50k

        表示查找/etc/下,大于20k且小于50k的文件
        • -a –> and –> 逻辑与,两个条件都满足
        • -o –> or –> 逻辑或,满足一个即可
      • 那如果我们想对上面查到的一长串做统一操作呢?这时候就可以使用 -exec “命令” {} \; 啦:

        表示查找/etc/下大于20k且小于50k的文件,并人性化显示它们的详细信息;最后的最后 :注意{} 和 \; 之间是有空格的!空格!
    • 搜索字符串命令 :grep
    • 基本格式 :grep [选项] [字符串] [文件名]
    • 选项 :
      • 不加 :查找包含该字符串的对应行
      • -i :忽略大小写
      • -v :排除指定字符串(即找出不含该字符串的)
    • 与 find 的区别 :
      • find :在系统中搜索符合条件的文件名
      • grep :在文件中搜索包含该字符串的行
      • 另:find 使用通配符进行匹配(完全匹配),而 prep 使用的是正则表达式(包含匹配)

帮助命令

  • 基本帮助命令 :man
    即 manual,文档
    • 基本格式 :man [选项] [命令]
    • 不加选项时的具体用法:
      • 就比如说先查一下 ls 的 :
        输入 man ls,回车,就可以得到这个 :
      • 可是这个文档太多啦,要怎么快速找到需要的那个选项的信息呢?就可以直接在下面输入 /[选项],就比如说下面这样 :
        输入 /-d 然后回车,就可以迅速找到 ls -d 的 :
      • 话说回来,回到这个文档第一行的话 :

        这是干嘛的呢?让我们来 man 一下 man :
        退出后输入 man man,打开,往下翻一点,就会发现这个东西 :

        翻译过来就是..给 man 查询的级别 :
        比如说1是”查看命令的帮助”等等,就不挨着写了
      • 那么要怎么查看命令拥有哪个级别的帮助呢?这时候就需要给 man 加上具体的选项了
    • 选项:
      • -f :查看命令拥有哪个级别的帮助
        –> 相当于 whatis [命令]

        然后就可以通过 man [帮助级别] [命令] 来查看该帮助级别下的命令文档啦(不加帮助级别的话会默认显示数值最小哪个级别)

      • -k :查看与该命令相关的所有帮助
        –> 相当于 apropos [命令]

        用于..当你忘记这个命令叫啥只记得里面仿佛有个passwd的时候
    • 最后的最后 :同样,它无法获取shell的内部命令
  • 其他帮助命令
    • 选项帮助:–help
      只显示该命令的选项帮助,而且!可以是中文的!
      基本格式 :[命令] –help
    • 内部命令帮助 :help
      基本格式 :help [shell内部命令]

      注意它只能获取内部命令,否则会报错的!
    • 那要怎么判断是否为 shell 的内部命令呢?
      我们可以用 whereis [命令],比如这样 :

      可以看到查询 ls 时给出了执行路径,而查询 cd 时没有;这就说明 ls 是一个外来命令,而 cd 是内部的
    • 详细命令帮助 :info
      基本格式 :info [命令]

      但并不推荐使用,因为它相当于给了你一本书那么大的文档,还能按n/p前往下一小节/上一小节呢╭(╯^╰)╮

压缩与解压缩命令

  • .zip 的压缩与解压缩
    • 压缩文件 :zip [压缩文件名] [源文件]
    • 压缩目录 :zip -r [压缩文件名] [源文件]
    • 备注备注 :
      • 其实也可以不带后缀 .zip,但这样会清楚一些
      • 压缩文件不一定比源文件小的(比如说源文件为空):因为压缩的时候会有一定压缩格式的换算
      • 都是空文件的话会显示 stored 0%,没啥影响啦
      • 压缩之后会变红的哦(因为是软件包)
    • 解压缩 :unzip [压缩文件]

      文件和目录都是直接解压就好了,但不能一起解压
  • .gz 的压缩与解压缩
    • 压缩文件 :gzip [源文件]

      然而源文件会消失(也可以强行保留但是太麻烦了)
    • 压缩目录 :gzip -r [目录]
      首先创建一个包含三个文件的目录

      然后压缩,ls –> 诶我的老婆怎么没被压???

      进入 laopo –> 就会发现每个文件被单独压缩了

      所以说 gzip 只会去单独压缩目录下的每个子文件,但无法压缩目录本身,就hin麻烦
    • 解压缩文件 :gzip -d [压缩文件]

      或者像 zip 一样,用 gunzip [压缩文件]

      还可以对目录解压,但是要记得加上 -r

      同样的,解压后压缩文件会消失,只剩解压出来的那个
  • .bz2 的压缩与解压缩
    • 不保留源文件 :bzip2 [源文件]
    • 保留源文件 bzip2 -k [源文件]
    • 注意 ;bzip2 命令不能压缩目录
    • 解压缩文件 :bunzip2 / bzip2 -d [压缩文件]

      同样,加上 -k 会保留原压缩文件
  • .tar.gz / .tar.bz2 压缩格式(推荐)
    • 原理:将目录打包成 .tar 格式,再压缩为 .gz / .bz2
    • .tar.gz 的压缩与解压缩
      • 压缩 :tar -zcvf [压缩包名] [源文件]
      • 解压缩 :tar -zxvf [压缩包名]
      • 注意 :该压缩包名一般以 .tar.gz 结尾,便于区分;压缩与解压缩过程中,源文件均会予以保留
    • .tar.bz2 的压缩与解压缩
      • 压缩 :tar -jcvf [压缩包名] [源文件]
      • 解压缩 :tar -jxvf [压缩包名
      • 注意 :该压缩包名一般以 .tar.bz2 结尾,便于区分;压缩与解压缩过程中,源文件均会予以保留

关机与重启命令

  • 安全关机命令 :shutdown
    • 基本格式 :shutdown [选项] [时间]
    • 选项 :
      • -h :关机(避免对服务器采用远程关机)

        表示让它第二天05:20的时候关机;但是我们会发现,一旦输入这条命令,终端就不能正常使用了,怎么办呢?Ctrl + C :

        就可以取消掉定时关机的命令了 –> 可这样感觉定时关机好像没啥用的样子,能不能让它在后台运行呢?加个 & 就OK啦 :
      • -c :取消前一个关机命令
        直接 shutdown -c,就能把前一个关机or重启命令终止掉啦 :
      • -r :重启(对服务器:推荐)
        只要把 -h 换成 -r 就行了啦(不敢回车.jpg)
    • 时间 :
      • now :现在执行
      • 具体时间点 :定时执行
  • 其他关机命令(不推荐)
    • 关机 :
      • halt
      • poweroff
      • init 0
    • 重启 :
      • reboot
      • init 6
  • 最后的最后,到底安全在哪里呢?
    • 因为 shutdown 在关机之前会给你尽量保存一下啦,其他的命令就有点像强行拔电源,太凶了嗯

Linux中的挂载命令

相当于分配盘辐

  • 查询与自动挂载
    • 查询系统中已挂载的设备 :mount
    • 根据配置文件自动挂载 :mount -a
    • 所谓配置文件指的其实是 /etc/fstab 啦 :
      • 让我们进去看一下这个文件写了点啥 :
      • 其实就是Linux中自动挂载的文件啦
      • 也就是说,只要你按照规定格式将相关内容写入这个文件,那么,它们就会在开机的时候随着系统启动而自动挂载,不再需要人为参与了(然鹅一般还是不要瞎动叭)
  • 挂载命令格式
    • 基本格式 :
      mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
    • 选项 :
      • -t 文件系统 :加入文件系统类型来指定挂载类型
        (如ext3、ext4、iso9660等等这些文件系统)
      • -0 特殊选项 :可以指定挂载的额外选项
        (比如下面这些,虽然其实一般保持默认就行了)
  • 挂载光盘
    • 首先第一件事 :放入光盘 ( • ̀ω•́ )✧
    • 建立挂载点 :mkdir /mnt/cdrom
    • 挂载光盘 :mount -t iso9660 /dev/sr0 /mnt/cdrom/
    • 挂载光盘时的备注 :
      • 可以省略 -t iso9660
      • /dev/sr0 换成 /dev/cdrom 也行,它俩是软链接
      • 但还是建议用 /dev/sr0 啦
    • 最后进入 /mnt/cdrom/,ls 查看一下,完美
    • 放张流程图 :
  • 卸载光盘
    • 基本语法 :umount [设备文件名或挂载点]
    • 啥意思呢?也就是说 :
      • umount /mnt/cdrom
      • 或者 umount /dev/sr0
      • 都可以;毕竟两个挂载到一起了
    • 让我们来看下效果 :
    • 为什么没有成功呢?因为你还在目录里呢!
    • 让我们退出来再看一下 –> 就成功啦
    • 注意用完之后一定要卸载一定要卸载一定要卸载!

Linux中的用户登录查看命令

  • 查看用户的登录信息 :w
    • 基本语法 :w
    • 对没错就是 w!然后回车!
    • 命令输出 :
      • USER :登录的用户名
      • TTY :登录终端
      • FROM :从哪个IP地址登录的
      • LOGIN@ :登录时间
      • IDLE :用户闲置时间
      • JCPU :指的是和该终端连接的所有进程占用的时间(注 :该时间不包括过去的后台作业时间,但包括当前正在运行的后台作业所占用的时间)
      • PCPU :指当前进程所占用的时间
      • WHAT :当前正在运行的命令
  • 查看用户的登录信息 :who
    • 基本语法 :who
    • 命令输出 :
      • 用户名
      • 登录终端
      • 登录时间(登录来源IP)
  • 查询当前登录和过去登录的用户信息 :last
    • 基本语法 :last
    • 注 :last命令默认是读取 /var/log/wtmp 文件中的数据的
    • 命令输出 :
      • 用户名
      • 登录终端
      • 登录IP
      • 登录时间
      • 退出时间(在线时间)
  • 查看所有用户的最后一次登录时间 :lastlog
    • 基本语法 :lastlog
    • 注 :lastlog命令默认读取 /var/log/lastlog
    • 命令输出 :
      • 用户名
      • 登录终端
      • 登录IP
      • 最后一次登录时间
  • 最后来一个小小的总结 :
    • 总之上面几个主要用途是!
    • 用来看你的系统有没有被其他用户登录过啦 _(:з」∠)_

常用快捷键

  • Ctrl + C :强制终止当前命令
  • Ctrl + L :清屏
  • Ctrl + A :光标移动到命令行首
  • Ctrl + E :光标移动到命令行尾
  • Ctrl + U :从光标所在位置删除到行首
  • Ctrl + Z :将命令放入后台执行(避免使用)
  • Ctrl + R :搜索历史命令(不常用)
  • Ctrl + Alt + Enter :将虚拟机全屏
  • Ctrl + Alt :将光标移出虚拟机

杂七杂八的

  • pwd :查看当前所在目录
  • cd - :回到刚刚所在的目录
  • Tab 键按一下 再按一下 :
    唯一则自动补全,不唯一则给提示
  • ll : ls -l 的简写,显示文件详细信息
  • 删除某文件夹内的全部内容 :rm -rf 目录名/*

    注意加不加根目录的那个”/“要看它到底在不在根目录下
  • touch 创建空文件
  • touch .xxx 创建隐藏文件
  • mkdir .xxx 创建隐藏文件夹
  • ls -a 可查看隐藏文件/文件夹
  • cat 查看文件
  • vim 进入文件
  • echo “xxx” :在屏幕上输出xxx
  • chmod 改变文件权限(查一下再用)
  • alias :查看系统中已生效的别名
  • 设置别名 :alias [原名]=’别名’(重启后失效)
  • 永久设置别名 :vi !/.bashrc –> 进入环境变量配置文件 –> 然后像上面一下设置一下 –> 保存退出,over(重启后生效)–> 或者在最后 source .bashrc(立即生效)
  • 删除别名 :unalias 别名(重启后失效)
  • 程序自动执行时判断是否出错 :
    命令(如ls) && echo ‘yes’ || echo ‘no’
  • 管道符 :命令1 | 命令2 –>
    使命令1的执行结果作为命令2的操作对象
文章目录
  1. 1. 命令基本格式
  2. 2. Linux 中常见目录的作用
  3. 3. 查询目录中内容 :ls
  4. 4. 目录 / 文件处理命令
  5. 5. 文件搜索命令
  6. 6. 帮助命令
  7. 7. 压缩与解压缩命令
  8. 8. 关机与重启命令
  9. 9. Linux中的挂载命令
  10. 10. Linux中的用户登录查看命令
  11. 11. 常用快捷键
  12. 12. 杂七杂八的