Linux 常用命令

386 阅读10分钟

常用命令.png


Shell程序

  • Linux系统中运行的一种特殊程序,为用户和内核间充当翻译。(内核:属于操作系统的一部分,调度硬件)
    Shell将人类使用的高级语言翻译成二进制数交给内核,内核再调度硬件。
  • 用户登录Linux系统时,会自动登录程序。
  • Bash是Linux系统中默认使用的shell程序。文件位于/bin/bash

Linux命令的分类

内部命令外部命令
集成于Shell解释器程序程序内部的一些特殊指令,也称为内建指令Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分属于Shell解释器程序之外的命令
没有单独对应的系统文件每一个外部命令对应了一个系统中的文件
自动载入内存,可直接使用必须知道其对应的文件位置由Shell加载后才能执行

执行命令地过程

Linux默认规定,命令放在指定的文件夹中,
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

  1. 先判断是否是别名,再判断是内部命令,还是外部命令
  2. 如果是内部命令,直接在bash中执行
  3. 如果是外部命令,先看hash表,表中有就先找表,表中的路径找不到直接报错
  4. 表中没有,则去找
    /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /root/bin
  5. 找到执行,找不到报错

hash:linux系统下会有一个hash表,当你刚开机时这个hash表为空。当你执行过一条命令时,hash表会记录下这条命令的路径。再次使用该命令时,shell解释器首先会查看hash表。)

如何区分内部命令还是外部命令

type命令:区分内部还是外部

type.png

有的命令既是内部,也是外部,为了方便人们使用。

type.1.png

Bash: 有 echo
Sh:没有 echo
Echo十分常用,所以为了方便,内外都加入了。

Linux命令

Linux命令行格式

通用的命令行使用格式

命令字 [选项] [参数]

命令字:

  • 是整条命令中最关键的一部分
  • 唯一确定一条命令

选项:

  • 短格式选项:使用“-”符号引导,后跟字母
  • 长格式选项:使用“--”符号引导,后跟完整单词
    (特:不加-,ip a(显示网卡信息),ps aux(进程详细信息))

参数:

  • 命令字的处理对象
  • 可以是文件名、目录(路径)名或用户名等内容
  • 个数可以是0到多个

编辑Linux命令行的辅助操作

操作作用
Tab按一次,只有一个选项就补全;按两次,将所有结果展示出来*
上下键查找之前打过的 命令*
Ctrl+l清屏*
Ctrl+c终止命令*
Ctrl+a光标跳到命令的最开头
Ctrl+e光标跳到命令的最末尾
Ctrl+u从光标处清空到开头
Ctrl+k从光标处清空到末尾
\强制换行

获取命令帮助的方法

内部命令help

  • 查看Shell内部命令的帮助信息

命令的“--help”选项

  • 适用于大多数Linux外部命令

使用man命令阅读手册页

  • 空格一页一页下翻
  • 回车一行一行下翻
  • 上下键可以翻看
  • 按q退出阅读
  • /查找,n往下,N向上

相关信息

[root@localhost ~]#

字段或符号作用
Root当前登录用户
Localhost当前机器的主机名
~目前在哪个文件夹下
#代表超级管理员
$代表普通用户

pwd查看当前的工作目录

pwd.png

cd改变目录

绝对路径和相对路径

  • 绝对路径:以根目录开头的路径
  • 相对路径:不以根目录开头的路径

相对路径的表现形式

表现形式说明示例
直接使用目录名或文件名表示当前工作目录中的子目录、文件的位置grub.conf
以一个点“.”开头表示以当前的工作目录作为起点./grub.conf
以两个点“..”开头表示以当前目录的上一级目录(父目录)作为起点../vmlinuz
以“~ 用户名”开头表示以指定用户的宿主目录作为起点~ teacher

cd.png

cd -:回到上一次所在目录(如果一直用此命令,则在两个目录间来回跳转)

cd-.png

cd ~:切换到当前用户的家目录

家目录.png

家目录:对当前用户个性化设置的文件夹(存放配置的文件)
超级管理员(root)和普通用户的家目录不一样

  • root家目录:在/root(根目录下有一个root文件夹)
  • 普通用户:在/home/和用户名同名的文件夹

ls显示目录内容

ls一般不单独使用

  • ls功能有限,要加上选项
  • ls单独使用,显示当前文件夹所有文件(文件过多,可能会死机)
    ls会配合通配符使用,过滤出需要的文件。

颜色表示的文件类型
不一定准确,可以更改

颜色类型
黑色数据文件、普通文件
绿色可执行文件
黄色块设备文件硬件设备(硬盘)
红色压缩包
蓝色文件夹
天蓝色连接文件

ls常用选项

选项作用
-l或ll以长格式显示*
-a显示所有文件,包括隐藏文件,且包括 . 和 ..*
-A显示所有文件,不包括隐藏文件,不包括 . 和 ..
-d只显示本目录*
-R递归显示*
-h人性化显示(加了大小单位)
-S以文件容量大小排序
--color显示颜色
-i显示inode号

-l 相关信息

-l.png

首字符代表文件格式

  • d:代表目录
  • -:普通文件
  • l:连接文件(快捷方式)
  • b:块设备(硬盘)
  • s:套接字(带有IP地址和端口号)
  • p:管道文件(文件单项传输)
  • c:字符文件(单个字符,一个一个字符读取)

后九位为一字段:rwxr-xr-x;代表权限,三个一组(rwx;r-x;r-x),表示什么人能对它增删改查(3个对象)
3:连接数是3,(快捷方式)
root(前):这个文件属于root
root(后):这个文件属于root组
16:文件大小
7月  21 12:03:文件最后一次修改时间
anaconda-ks.cfg:文件或者目录名字

通配符
通配符解释
任意单个字符
*任意长度的任意字符
{1..10}1到10的10个数
{a..z}a b c..z
{A..Z}A B C..Z
[123]取其中之一,有就显示,没有也无所谓
[a-z]a A b B...z(没有大Z)
[^a-c]反向匹配,不包括a A b...c
\显示原来的意思

alias 设置别名

  1. 将常用的一些比较复杂的命令简单化
    用法: alias  自行定义的命令='常用的复杂命令'(单引号''为英文版)
  2. 单独使用 alias,会显示所有的别名命令

alias.png

tips别名>内部>hash>外部,先判断命令是不是别名,再看是不是内部命令,如果是别名直接执行。
删除别名:unalias   别名命令

du 统计目录及文件空间占用情况

用法:du [选项] [文件或目录...]

选项作用
-a分开显示每个文件的大小*
-s显示当前文件夹的总大小*
-h人性化显示
-d 1第一层文件夹占用的磁盘空间。-d代表目录层数;1代表目录层数的第一层*

tips

  • du:不统计文件的实际大小,只是统计文件所占磁盘的大小。由于磁盘一块一块来存储文件,最小一块为4k。
  • ls:显示文件实际大小
  • du中-a和-s不能同时使用
  • du把隐藏文件也统计在内

du.png

mkdir 创建新目录

选项作用
-p递归创建文件夹
-v显示详细过程

mkdir.png

mkdir2.png

touch 创建空文件

  • 创建多个新的空文件
    用法:touch 文件...
  • 更新文件的时间标记

touch.png

连续的多文件创建。

touch2.png

ln 创建链接文件

用法:ln [-s] 源文件或目录... 链接文件或目标位置(加-s为软链接,不加为硬链接。一定要使用绝对路径)

对比项软链接硬链接
本质不是同一个文件是同一个文件
indoe(相当于身份证号)不同相同
链接数删除、新建不会改变创建新的硬链接会增加,删除会减少
文件夹支持不支持
删除源文件无法访问连接文件只是链接数减一,但链接访问不受影响
文件类型链接文件和源文件无关和源文件相同
文件大小源文件的路径长度(名字取)和源文件相同(指向硬盘上的同一文件)

cp 复制文件或目录

将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录。
用法:cp  [选项]  要复制的文件   要放置复制文件的位置/可以重命名(复制后的文件命名)

cp.png

cp1.png

选项作用
-f有相同文件时强制覆盖不提醒
-i有相同文件时覆盖提醒
-p保留文件的源权限
-r复制文件夹一定需要
-a保留权限更强大,包括连接文件的属性也可以保留

复制文件夹一定要用-r

cp2.png

cp复制多个文件,最后一定要跟文件夹,不能跟文件。

rm 删除指定的文件或目录

常用选项:-f、-i、-r

rm.png

mv 移动文件或目录

  • 将指定文件或目录转移位置。(mv 文件名 要移动去的地方)
  • 如果目标位置与原位置相同,则相当于执行重命名操作。(mv 文件名 新文件名)

which 找命令的位置

只能找命令的位置,范围:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

find 查找文件或目录

采用递归方式,根据目标的名称、类型等不同属性进行精细查找。(可查找隐藏文件)

  • 优点:
    1. 默认递归查询
    2. 它是真的去硬盘上一个一个文件给你找(实时)
    3. 查找条件巨多
    4. 精确查找
  • 缺点:慢

用法:find [查找范围] [查找条件表达式] [处理动作]

  • 若不加范围,默认为当前目录。
  • 若不加条件,默认找出指定路径下所有文件。
  • 对符合条件的文件做操作,默认输出至屏幕。

常用查找条件类型

  1. -name 按名字查找。根据目标文件的名称进行查找,允许使用“ * ”及“ ? ”通配符。

name.png

  1. -size 按文件大小查找。根据目标文件的大小进行查找,一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件,常用的容量单位包括 kB(注意k是小写)、MB、GB

查找boot目录下大于1024k的文件

size大于1024.png

查找data目录下小于1M的文件

size小于1.png

注意:文件大小不加加减号是一定的范围,单位越精确越好。
范围公式:单位前的数字减一。(1024-1,所以1023kb-1024kb;1-1,所以1字节-1MB)

范围size.png

  1. -user 按文件属主查找,根据文件是否属于目标用户进行查找。(属主:文件的拥有者)

user.png

  1. -type 按文件类型查找。文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等。

普通文件 -type f

tf.png

目录 -type d

td.png

块设备文件 -type b

tb.png

字符设备文件 -type c

tc.png

  1. -inum 根据inode号查找。

inum.png

  1. -maxdepth level-mindepth level按照目录层级查找文件,前最大目录深度,后最小目录深度。

目录深度.png

  1. -mtime 按天数查找文件。

mtime.png

[root@localhost data]#find /boot/ -mtime +7 -type f -size +1M -delete
(找到7天以上,且文件类型为普通文件,且大于1M的文件,并且加上处理动作删除)

  1. 处理动作
    默认是:
    1. print 输出屏幕让你看一下
    2. ls 显示详细信息
    3. delete 直接删除
    4. ok 连接符,会询问
    5. exec 连接符,不会询问

ok.png

exec.png

mv {} 代指前面find找到的文件,/mnt移动到的目录, \; 固定格式

  1. find命令实现多个查找条件
  • -a表示而且and(find /boot -size +1024k -a -name "vm*")
  • -o表示或者or(find /boot -size +1024k -o -name "vm*")