Linux常用命令汇总
文章目录
- Linux常用命令汇总
- 一、***\Linux终端命令格式**
- 二、[Linux基本命令](https://so.youkuaiyun.com/so/search?q=Linux基本命令&spm=1001.2101.3001.7020)操作
- 1.1显示当前目录pwd
- 1.2 目录切换 cd
- 1.3 目录查看 ls [-al] 常用选项
- 1.4 目录操作【增,删,改,查】 mkdir
- 1.5 删除文件或目录-rm
- 1.6 **移动文件或目录-mv**
- 1.7 **搜索目录【查】find**
- 1.8**统计目录下每个文件字节数**
- 1.9 echo命令
- 2.0 ln命令介绍
- 2. 硬链接
- 3. 软连接(符号链接)
- 4. 语法
- 5. 选项和参数
- 二、示例用法
- ln 命令常用参数:
- ln 命令创建软链接和硬链接的方法:
- 硬链接和软链接是两种创建文件链接的方式,它们有以下区别:
- 2.1 复制文件或目录-cp
- 2.3 mv命令
- 1. 基本语法
- 2. 常用选项
- 3. 实战案例
- **三、文件操作Linux常用命令**
- **四、压缩文件操作Linux常用命令**
- **五、查找命令Linux常用命令**
- **六、su、sudo**
- **七、其他Linux常用命令**
- **七、其他Linux常用命令**
一、*\Linux终端命令格式
终端命令格式
command [-options] [parameter]
说明:
- command :命令名,相应功能的英文单词或单词的缩写
- [-options] :选项,可用来对命令进行控制,也可以省略
- parameter :传给命令的参数,可以是 零个、一个 或者 多个
查阅命令帮助信息
-help
说明:
-
显示 command 命令的帮助信息
-
小技巧:
ctrl + shift + =
放大终端窗口的字体显示ctrl + -
缩小终端窗口的字体显示
自动补全
在敲出 文件
/ 目录
/ 命令
的前几个字母之后,按下 tab 键
- 如果输入的没有歧义,系统会自动补全
- 如果还存在其他
文件
/目录
/命令
,再按一下 tab 键,系统会提示可能存在的命令
小技巧 - 按
上
/下
光标键可以在曾经使用过的命令之间来回切换 - 如果想要退出选择,并且不想执行当前选中的命令,可以按
ctrl + c
二、Linux基本命令操作
1.1显示当前目录pwd
打印当前所在目录 (print working directory)
1.2 目录切换 cd
命令:cd 目录
cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 保持在当前目录不变 |
cd … | 切换到上级目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
相对路径和绝对路径
相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
1.3 目录查看 ls [-al] 常用选项
命令:ls [-al]
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
ls通配符的使用
通配符 | 含义 |
---|---|
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少 1 个 |
[] | 表示可以匹配字符组中的任一一个 |
[abc] | 匹配 a、b、c 中的任意一个 |
[a-f] | 匹配从 a 到 f 范围内的的任意一个字符 |
注意:以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
1.4 目录操作【增,删,改,查】 mkdir
创建目录【增】 mkdir
命令:mkdir 目录
- 创建一个新的目录
选项 | 含义 |
---|---|
-p | 可以递归创建目录 |
新建目录的名称 不能与当前目录中 已有的目录或文件 同名
mkdir aaa 在当前目录下创建一个名为aaa的目录
mkdir /usr/aaa 在指定目录下创建一个名为aaa的目录
1.5 删除文件或目录-rm
删除指定的文件或目录
rm [选项] 要删除的文件或目录…
常用选项-f、-i、-r
删除文件或目录
使用 rm 命令要小心,因为文件删除后不能恢复
选项 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹 时必须加此参数 |
删除文件:
rm 文件 删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)
删除目录:
rm -r aaa 递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)
全部删除:
rm -rf * 将当前目录下的所有目录和文件全部删除
rm -rf /* 【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除
注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包
1.6 移动文件或目录-mv
将指定的文件或目录转移位置
如果目标位置与源位置相同,则相当于执行重命名操作
mv [选项] … 源文件或目录… 目标文件或目录
示例
mv mytouch mkfile
mv mkfile public_html/
1.7 搜索目录【查】find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
find [查找范围] [查找条件表达式]
命令:find 目录 参数 文件名称
示例:find /usr/tmp -name ‘a*’ 查找/usr/tmp目录下的所有以a开头的目录或文件
查找文件或目录 常用查找条件类型
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
-iname | 按照文件名查找,不区分大小写 | |
-inode | 按照inode查找 | |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按时间查找 | - atime[+|-] | 按照文件访问时间查找 |
- mtime[+|-] | 按照文件数据修改时间查找 | |
- ctime[+|-] | 按照文件状态修改时间查找 | |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
重点说[+|-]时间的含义
-5:代表5天内修改的文件
5:代表钱5~6天那一天修改的文件
+5:代表6天前修改的文件
使用 find 命令实现多个查找条件
各表达式之间使用逻辑运算符
“-a”表示 而且(and)
“-o”表示 或者(or)
find /boot -size +1024k -a -name "vmlinuz*"


按照权限搜索
按照所有者和所属组搜索
按照文件类型搜索
其他选项
-exec 必须用 ; 结束
命令2 不支持别名,比如 ls -lh 不能写 ll -h
1.8统计目录下每个文件字节数
-
选项 含义 -s 只显示所有文件字节数总数 -h 转换字节数为K、M、G的形式,便于阅读
我的用法:du -sh
1.9 echo命令
Linux中 echo命令主要用于打印字符或者回显,一般起到一个提示的作用。
1.语法:
echo [选项] [输出内容]
2.功能:
输出内容到控制台。
-n | 不在最后自动换行。 |
---|---|
-e | 使用-e扩展参数选项时,与如下参数一起使用,有不同含义,支持反斜线控制的字符转换 |
\a | 发出警告声。 |
\b | 删除前一个字符。 |
\c | 最后不加上换行符号。 |
\f | 换行但光标仍旧停留在原来的位置。 |
\n | 换行且光标移至行首。 |
\r | 光标移至行首,但不换行。 |
\t | 制表符,也就是Tab键。 |
\v | 与\f相同。 |
\ | 插入\字符。 |
2.0 ln命令介绍
ln命令是用于创建链接(link)的工具。它可以创建硬链接和符号链接(软链接),这两种类型的链接都可以将一个文件或目录与另一个位置关联起来。
2. 硬链接
硬链接是指多个文件名指向同一个物理存储位置的文件副本。换句话说,它们共享相同的inode和数据块。
硬链对应用程序来说是透明的,它们看起来像独立文件。无论通过哪个硬连接修改了内容,在其他所有相关联的硬连接上都会反映出该更改。
删除原始文件并不会影响已经存在的硬链。只有当所有关联到该inode上面没有任何引用时才真正删除。
————————————————
2.1 inode介绍
inode(Index Node)是文件系统中的一个概念,用于存储关于文件或目录的元数据信息。每个文件和目录在文件系统中都有一个唯一的inode。
以下是关于inode的一些重要概念和特点:
唯一标识:每个inode都有一个唯一标识符(通常是整数),用来区分不同的inodes。
元数据信息:每个inode包含了与其相关联的文件或目录的元数据,如:
文件类型(普通文件、目录、符号链接等)
权限模式和所有者
文件大小
创建时间、修改时间和访问时间等时间戳
数据块指针/索引
存储位置:操作系统维护着一个称为"索引节点表"(Inode Table) 的结构,其中保存了所有存在于该文件系统上面创建好后使用过程当中所产生出来之 inode 。
当我们创建新文档时, 操作系会从空闲列表上面找到第1 项并且将它们分配给新建立起来之文档。然后为这些 inodes 分配独特编号,并将它们添加到索引节点表以进行跟踪.
硬链接关系: 如果多个硬连接指向相同 inode,则它们共享相同内容,并且对任何硬连接所做更改也会反映在其他硬连接上。
文件系统性能:inode的使用对文件系统的性能和效率有一定影响。较大的inode表可以存储更多文件和目录,但可能导致内存占用增加。因此,在设计文件系统时需要平衡存储空间和性能需求。
删除与回收:当删除一个文件或目录时,操作系统将释放与该inode相关联的磁盘空间,并将该inode标记为可重用状态以供后续创建新文件使用。
硬链接: 只有当所有关联到该 inode 上面没有任何引用才真正删除.
软连接: 如果源路径被删除,则符号(软)链仍然存在,但访问它会失败.
————————————————
3. 软连接(符号链接)
软连接是一种特殊类型的文件,其中包含源路径或目标路径信息。它类似于Windows中快捷方式或Mac OS中别名。
符号(软)链接实际上只是一个文本字符串,其中包含指向目标位置(源路径)所需信息,并且与其关联名称具有不同inode值。
源路径可以是绝对路径或相对于生成符号(软)连结处而言之
目标必须为绝对路劲
当访问一个符号(soft link)时, 文件系统首先检查是否正在请求打开/读取/执行等操作, 如果是, 则会自动解引用符号链接,然后使用目标路径。
删除源路径或目标文件不会影响符号(软)链本身。但如果删除了源文件或目录,则访问该符号链接将失败。
————————————————
选择硬链接还是软连接的考虑因素:
硬链接只能指向同一文件系统中的现有文件,并且不能跨越分区或设备。而软连接没有这个限制。
软连接可以指向目录,而硬链接只能指向一个具体的文件。
如果需要在不同位置共享相同内容的多个副本,并且希望对所有副本进行更改时都反映出来,则应使用硬链。
例如,在多个用户之间共享可执行程序时,可以使用硬链确保任何人对程序所做的更改都会反映到其他人看到(前提是他们有适当权限)。
————————————————
4. 语法
# 创建一个到目标的链接,名称为链接名
ln [选项]... [-T] 目标 链接名
# 在当前目录中创建一个到目标的链接
ln [选项]... 目标
# 在目录中创建指向每个目标的链接
ln [选项]... 目标... 目录
ln [选项]... -t 目录 目标...
默认情况下,使用–symbolic创建硬链接。
默认情况下,每个目的地(新链接的名称)不应该已经存在。
创建硬链接时,每个目标必须存在。符号链接可以保存任意文本;如果稍后解析,相对链接将根据其父目录进行解释。
5. 选项和参数
二、示例用法
ln 命令常用参数:
参数 | 解释 | 举例 |
---|---|---|
-s | 创建符号链接 | ln -s /path/to/file /path/to/symlink |
-f | 强制覆盖已存在的目标文件 | ln -sf /path/to/file /path/to/symlink |
-i | 在创建之前先提示用户是否要覆盖已存在的目标文件 | ln -si /path/to/file /path/to/symlink |
-v | 显示详细输出信息 | ln -sv /path/to/file /path/to/symlink |
ln 命令创建软链接和硬链接的方法:
1. 创建硬链接
硬链接是指系统中存在多个文件名指向同一数据块,即多个文件名指向同一文件内容。
创建格式为:
ln TARGET LINK_NAME
例如,要将 /var/log/messages 硬链接到 /root/mylogs/mylog1,可以使用以下命令:
ln /var/log/messages /root/mylogs/mylog1
这样,/root/mylogs/mylog1 就成了一个指向 /var/log/messages 的硬链接文件。
需要注意的是,硬链接只能在同一文件系统中创建,且无法对目录进行硬链接。
2. 创建软链接
软链接也称为符号链接,是一种特殊的文件类型,它指向另一个文件或目录。
创建格式为:
ln -s TARGET LINK_NAME
例如,要将 /usr/local/bin/python3.9 软链接到 /usr/local/bin/python,可以使用以下命令:
ln -s /usr/local/bin/python3.9 /usr/local/bin/python
这样,/usr/local/bin/python 就成了一个指向 /usr/local/bin/python3.9 的软链接文件。
2.2 给目录创建软链接
为文件或目录建立链接文件,类似于Windows系统的快捷方式
ln [-s] 源文件或目录… 链接文件或目标位置
示例:
ln -s /bin/bzip2 /bin/wx/
查看/home/myusr目录下的文件和目录和/usr是一样的,/home/myusr相当于/usr的快捷方式,删除/home/myusr并不会影响/usr,但是删除/usr,就不能访问/home/myusr目录。
硬链接和软链接是两种创建文件链接的方式,它们有以下区别:
创建位置:硬链接和软链接可以在不同的文件系统中创建,但硬链接不能跨越不同的文件系统,而软链接可以。
文件类型:硬链接是指向同一索引节点(inode)的多个文件名,它们共享相同的文件内容和文件属性。软链接是一个特殊类型的文件,它包含了指向另一个文件或目录的路径。
文件大小:硬链接和原文件占用相同的磁盘空间,因为它们共享相同的数据块。软链接只占用一小块磁盘空间,它只是一个指向目标文件的路径。
更新内容:如果原文件被删除,硬链接仍然可以保留文件内容,因为文件内容实际上并没有被删除。而软链接则会失效,因为它只是指向原文件的路径。
目标对象:硬链接只能链接到文件,而软链接可以链接到文件或目录。
跨文件系统:硬链接不能跨越不同的文件系统,而软链接可以。
可读性:软链接可以被用户和程序解析为原文件或目录,而硬链接在使用上与原文件没有区别
———————————————
总结来说,硬链接是指向同一文件内容的多个链接,它们共享相同的数据块和文件属性,而软链接是一个特殊的文件,它包含了指向目标文件的路径。硬链接不能跨越不同的文件系统,但软链接可以。如果原文件被删除,硬链接仍然存在,而软链接会失效。
2.1 复制文件或目录-cp
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
- cp 命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录 中,相当DOS 下的 copy命令
cp [选项]… 源文件或目录… 目标文件或目录…
常用选项
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
参数
- 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用
-R
选项; - 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
实例
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.
或点点..
的形式。例如,下面的命令将指定文件复制到当前目录下:
cp ../mary/homework/assign .
所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。
将文件file复制到目录/usr/men/tmp
下,并改名为file1
cp file /usr/men/tmp/file1
将目录/usr/men
下的所有文件及其子目录复制到目录/usr/zh
中
cp -r /usr/men /usr/zh
交互式地将目录/usr/men
中的以m打头的所有.c文件复制到目录/usr/zh
中
cp -i /usr/men m*.c /usr/zh
我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:
cp aaa/* /bbb
复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
这次依然需要按Y来确认操作,但是没有忽略子目录。
cp -r -a aaa/* /bbb
依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。
\cp -r -a aaa/* /bbb
成功,没有提示按Y、传递了目录属性、没有略过目录。
2.3 mv命令
mv
命令是Linux中最常用的命令之一,用于移动文件和目录,也可以用于重命名文件。本文将详细介绍mv
命令的用法,并给出具体的示例。
1. 基本语法
mv
的基本语法如下:
mv [options] source destination
[options]
:可选参数,用于控制移动行为。source
:源文件或目录。destination
:目标文件或目录。
2. 常用选项
2.1 -i
交互模式,移动前询问是否覆盖已存在的文件。
示例:
交互式移动文件:
mv -i file1 file2
2.2 -u
仅在源文件比目标文件新或目标不存在时移动。
示例:
仅在文件比目标新或目标不存在时移动:
mv -u file1 file2
2.3 -v
详细模式,显示移动过程中的详细信息。
示例:
详细模式移动文件:
mv -v file1 file2
2.4 -f
强制移动,即使目标文件存在也会覆盖。
示例:
强制移动文件:
mv -f file1 file2
2.5 -T
递归移动目录时,保留目标目录的权限和时间戳。
示例:
递归移动目录时保留目标目录的权限和时间戳:
mv -T folder1 folder2
2.6 --backup
创建备份文件。
示例:
移动文件并创建备份文件:
mv --backup file1 file2
2.7 --backup=numbered
创建编号备份文件。
示例:
移动文件并创建编号备份文件:
mv --backup=numbered file1 file2
2.8 --backup=tar
创建tar格式的备份文件。
示例:
移动文件并创建tar格式的备份文件:
mv --backup=tar file1 file2
2.9 --no-target-directory
当目标不是目录时使用此选项。
示例:
移动文件时确保目标不是一个目录:
mv --no-target-directory file1 file2
2.10 --strip-trailing-slashes
移动目录时去除路径末尾的斜杠。
示例:
移动目录时去除路径末尾的斜杠:
mv --strip-trailing-slashes folder1/ folder2
2.11 --target-directory
指定目标目录。
示例:
移动文件到指定目录:
mv --target-directory=/path/to/directory file1 file2
2.12 --preserve
保持所有可能的属性,如权限、时间戳等。
示例:
移动文件并保持所有可能的属性:
mv --preserve file1 file2
2.12 --preserve
保持所有可能的属性,如权限、时间戳等。
示例:
移动文件并保持所有可能的属性:
mv --preserve file1 file2
2.13 --no-clobber
不覆盖已存在的文件。
示例:
不覆盖已存在的文件:
mv --no-clobber file1 file2
3. 实战案例
3.1 移动单个文件
移动文件file1
到file2
:
mv file1 file2
3.2 移动目录
移动目录folder1
到folder2
:
mv folder1 folder2
3.3 重命名文件
重命名文件file1为file2:
mv file1 file2
3.4 移动文件到另一个目录
移动文件file1到/home/user/folder:
mv file1 /home/user/folder/
3.5 移动文件并提示确认
移动文件file1到file2,并在文件已存在时提示确认:
mv -i file1 file2
3.6 移动文件并创建备份
移动文件file1到file2并创建备份:
mv --backup file1 file2
3.7 移动文件并保持属性不变
移动文件file1到file2并保持属性不变:
mv --preserve file1 file2
3.8 只移动更新的文件
仅在文件比目标新或目标不存在时移动file1到file2:
mv -u file1 file2
3.9 移动多个文件到一个目录
移动多个文件到一个目录:
mv file1 file2 file3 /home/user/folder/
————————————————
三、文件操作Linux常用命令
1、文件操作【增,删,改,查】
新建文件【增】touch
命令:touch 文件名
示例:在当前目录创建一个名为aa.txt的文件 touch aa.txt
- 创建文件或修改文件时间
如果文件 不存在,可以创建一个空白文件
如果文件 已经存在,可以修改文件的末次修改日期
删除文件 【删】 rm
命令:rm -rf 文件名
修改文件【改】 vi或vim
【vi编辑器的3种模式】
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
- 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
命令行模式下的常用命令:
【1】控制光标移动:↑,↓,j
【2】删除当前行:dd
【3】查找:/字符
【4】进入编辑模式:i o a
【5】进入底行模式:: - 编辑模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
编辑模式下常用命令:
【1】ESC 退出编辑模式到命令行模式; - 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
底行模式下常用命令:
【1】退出编辑: :q
【2】强制退出: :q!
【3】保存并退出: :wq
打开文件
命令:vi 文件名
示例:打开当前目录下的aa.txt文件 vi aa.txt 或者 vim aa.txt
注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式。
编辑文件
使用vi编辑器打开文件后点击按键:i ,a或者o即可进入编辑模式。
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
保存或者取消编辑
保存文件:
第一步:ESC 进入命令行模式
第二步:: 进入底行模式
第三步:wq 保存并退出编辑
取消编辑:
第一步:ESC 进入命令行模式
第二步:: 进入底行模式
第三步:q! 撤销本次修改并退出编辑
**文件的查看【查】**cat 命令
文件的查看命令:cat/more/less/tail
cat:看最后一屏
示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
cat sudo.conf
more:百分比显示
示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
more sudo.conf
less:翻页查看
示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看
less sudo.conf
tail:指定行数或者动态查看
示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束
tail -10 sudo.conf
cat 命令
cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能
cat 会一次显示所有的内容,适合 查看内容较少 的文本文件
选项 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
Linux 中还有一个 nl 的命令和 cat -b 的效果等价
2.显示文件的状态信息 stat命令
stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。stat命令可以查看的信息包括:
查看信息 | 描述 |
---|---|
File | 显示文件名 |
Size | 显示文件大小 |
Blocks | 文件使用的数据块总数 |
IO Block | IO块大小 |
regular file | 文件类型(常规文件) |
Device | 设备编号 |
Inode | Inode号 |
Links | 链接数 |
Access | 文件的权限 |
Gid、Uid | 文件所有权的Gid和Uid |
access time | 最后存取时间(ls -lu filename),表示最后一次访问(仅仅是访问,没有改动)文件的时间 |
modify time | 最后修改时间(ls -l filename ),表示最后一次修改文件的时间 |
change time | 最后更改时间(ls -lc filename ),表示最后一次对文件属性改变的时间,包括权限,大小,属性等等 |
Birth time | 文件创建时间,crtime,不过据查此属性linux已废弃,目前状态显示结果均为- |
语法
用法:stat [OPTION]… FILE…
常用参数选项
stat命令常用选项
参数选项 | 功能 |
---|---|
-f | 查看文件所在文件系统状态信息 |
-t | 以简洁形式输出文件信息 |
-L | 显示软连接原始文件状态信息 |
-c | 按照指定格式输出 |
3.修改文件或者目录的时间属性 touch命令
命令用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,系统会建立一个新的文件。我们平时用得最多的是通过touch创建一个空文件,实际上通过touch命令可以修改文件的atime、mtime,所以文件的真实访问时间和修改时间是可以被修改,我们在排查系统异常的时候还需要结合日志、历史命令等等因素综合决策。
1、使用语法
用法:touch [OPTION]… FILE…
2、参数说明
参数 | 参数说明 |
---|---|
- a | 改变档案的读取时间记录。 |
-c | 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。 |
-d | 设定时间与日期,可以使用各种不同的格式。 |
-f | 不使用,是为了与其他 unix 系统的相容性而保留。 |
-h | 影响每个符号链接,而不是任何引用的文件(仅在可以更改符号链接时间戳的系统上有用) |
-m | 改变档案的修改时间记录。 |
-r | 使用参考档的时间记录,与 --file 的效果一样。 |
-t | 设定档案的时间记录,格式与 date 指令相同。 |
–help | 列出指令格式。 |
– version | 列出版本讯息。 |
2、权限修改
rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。
示例:给aaa.txt文件权限改为可执行文件权限,aaa.txt文件的权限是-rw-------
第一位:-就代表是文件,d代表是文件夹
第一段(3位):代表拥有者的权限
第二段(3位):代表拥有者所在的组,组员的权限
第三段(最后3位):代表的是其他用户的权限
421 421 421
- rw- — –
————————————————
四、压缩文件操作Linux常用命令
1、打包和压缩
Windows的压缩文件的扩展名 .zip/.rar
linux中的打包文件:aa.tar
linux中的压缩文件:bb.gz
linux中打包并压缩的文件:.tar.gz
Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
命令:tar -zcvf 打包压缩后的文件名 要打包的文件
其中:z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -zcvf ab.tar aa.txt bb.txt
或:tar -zcvf ab.tar *
————————————————
2、解压
命令:tar [-zxvf] 压缩文件
其中:x:代表解压
示例:将/usr/tmp 下的ab.tar解压到当前目录下
示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
tar -xvf ab.tar -C /usr------C代表指定解压的位置
————————————————
五、查找命令Linux常用命令
1、grep
grep命令是一种强大的文本搜索工具
使用实例:
ps -ef | grep sshd 查找指定ssh服务进程
ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身
ps -ef | grep sshd -c 查找指定进程个数
2、find:文件查找
find 命令用于搜索文件,可以根据文件名、大小、修改时间、权限等属性来查找文件,采用递归方式搜索指定的目录及其子目录,并根据各种条件进行过滤和匹配。因为是硬盘搜索文件,所以速度上不及 whereis 和 locate 命令,但查找的范围更广。
find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
命令格式:
find [路径] [选项] [表达式]
# 选项
-name:按文件名进行匹配
-type:按文件类型进行匹配,如普通文件、目录、符号链接等
-size:按文件大小进行匹配
-mtime:按文件修改时间进行匹配
-exec:对搜索结果执行指定的命令(谨慎操作)
-print:将搜索结果输出到屏幕上(默认操作)
————————————————
# 查找指定目录下名为 abc.txt 的文件
find /home/test/ -name abc.txt
# 查找指定目录下所有以".txt"结尾的文件
find /home/test/ -name "*.txt"
# 查找指定目录下的所有普通文件
find /home/test/ -type f
# 查找指定目录下的所有目录
find /home/test/ -type d
# 查找指定目录下最近7天内修改过的文件
find /home/test/ -mtime -7
# 查找指定目录下大于1MB的文件并删除(谨慎操作)
find /home/test/ -size +1M -exec rm {} ;
# 查找指定目录下名称中包含 test 的文件
find /home/test/ -name '*test*'
————————————————
使用实例:
# 在当前目录查找以.log结尾的文件,并显示详细信息。
find . -name "*.log" -ls
# 查找/root/目录下权限为600的文件
find /root/ -perm 600
# 查找当目录,以.log结尾的普通文件
find . -type f -name "*.log"
# 查找当前所有目录并排序
find . -type d | sort
# 查找当前目录大于100M的文件
find . -size +100M
————————————————
3、locate:利用数据库查找文件
locate 命令查找的数据是由已建立的数据库 /var/lib/mlocate/ 里面的数据所进行的,并没有查找硬盘上的所有文件,所以查找速度非常快。
命令格式:
locate [参数] 文件名或目录名
# 参数
-l:限制搜索结果的数量,空格后接数字,如:-l 5 表示只列5个结果
-i:忽略大小写进行搜索
-c:只返回匹配结果的数量,而不显示具体路径
命令示例:
# 列出于 passwd 相关的文件名,只列5个结果
locate -l 5 passwd
# 可能返回以下内容
/etc/passwd
/etc/passwd-
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/security/opasswd
————————————————
locate 是通过数据库来查找,而数据库的建立默认是由系统每天执行一次,所以新建立的文件可能无法被及时搜索到,此时可以通过命令 updatedb
来更新数据库。
# 更新 locate 的数据库
updatedb
使用实例:
updatedb
locate /etc/sh 搜索etc目录下所有以sh开头的文件
locate pwd 查找和pwd相关的所有文件
————————————————
4、whereis:在系统特定目录下查找文件
whereis 命令只是在特定目录下查找文件并返回路径,并没有查找硬盘上的所有文件,所以查找速度非常快
whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。
命令格式:
whereis [参数] 文件名或目录名
# 参数
-l:列出 whereis 会查找的几个主要目录
-b:只查找 binary 二进制格式的文件
-m:只查找说明文件 manual 路径下的文件
-s:只查找 source 源文件
-u:查找不在上述 3 个项目当中的其它特殊文件
————————————————
命令示例:
whereis ls
# 可能返回以下内容
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
5、which:命令查找
搜索范围由环境变量 PATH 决定(echo $PATH)
which 命令用于查找指定命令(脚本文件)的可执行文件路径,在系统的【PATH】变量指定的路径中搜索某个系统命令的位置,并返回搜索结果(默认只返回第1个匹配结果)。
命令格式:
which [参数] 命令名称
# 参数
-a:列出所有匹配项,而不仅是第1个匹配项
命令示例:
# 查找 ls 命令的位置,默认只返回第1个匹配结果
which ls
# 可能返回以下内容
/usr/bin/ls
# 查找 ls 命令的位置,返回所有匹配结果
which -a ls
# 可能返回以下内容
/usr/bin/ls
/bin/ls
需要注意的是:which 命令是根据【PATH】环境变量所规范的路径,去查找执行文件的文件名,有些命令不在环境变量所指定的路径中,则无法查找到
使用实例:
which pwd 查找pwd命令所在路径
which java 查找path中java的路径
6.type命令
type命令是Linux中一个查询类型的命令,它可以查询name是alias别名、keyword关键字、function函数名、builtin内建命令名(这很有用)或是file文件名(这个文件需要是可执行状态)。
type用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令,一般有以下类型:
- alias:别名。
- keyword:关键字,Shell保留字。
- function:函数,Shell函数。
- builtin:内建命令,Shell内建命令。
- file:文件,磁盘文件,外部命令。
- unfound:没有找到。
而常见参数如下:
- -t 输出类型名,如file
- -p 如果是外部命令,则显示其所在路径
- -a 对于外部命令,它会显示命令路径,命令类型等信息
下面是该命令的语法。
用法
type [-aftp] [name...]
选项
Without options 指示每个名称被解释为什么类型,显示第一个被搜索到的类型
-t 如果名称是别名(alias)、shell关键字(keyword)、函数名(function)、内建命令名(builtin)或磁盘文件名(file),则打印字符串为其中之一,显示第一个被搜索到的类型
-p 如果第一个搜索到类型是file,则显示其路径,这意味着如果使用-t name时搜索到的不是file,则不会显示
-P 强制在PATH进行搜索,即使使用-t name时显示的不是file
————————————————
六、su、sudo
1、su
su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。
su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root
su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。
退出返回之前的用户:exit
————————————————
2、sudo
sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。
进入sudo配置文件命令:
vi /etc/sudoer或者visudo
案例:
允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
hadoop ALL=(ALL) ALL
案例:
只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。
配置文件中:
hadoop ALL=NOPASSWD: /bin/ls, /bin/cat
————————————————
七、其他Linux常用命令
查看当前目录:pwd
命令:pwd 查看当前目录路径
查看进程:ps -ef
命令:ps -ef 查看所有正在运行的进程
结束进程:kill
命令:kill pid 或者 kill -9 pid(强制杀死进程) pid:进程号
网络通信命令:
ifconfig:查看网卡信息
命令:ifconfig 或 ifconfig | more
ping:查看与某台机器的连接情况
命令:ping ip
netstat -an:查看当前系统端口
命令:netstat -an
搜索指定端口
命令:netstat -an | grep 8080
配置网络
命令:setup
重启网络
命令:service network restart
切换用户
命令:su - 用户名
关闭防火墙
命令:chkconfig iptables off
或者:
iptables -L;
iptables -F;
service iptables stop
修改文件权限
命令:chmod 777
清屏
命令:ctrl + l
vi模式下快捷键
esc后:
保存并退出快捷键:shift+z+z
光标跳到最后一行快捷键:shift+g
删除一行:dd
复制一行内容:y+y
粘贴复制的内容:p
————————————————
要密码,反之普通用户切换到其它任何用户都需要密码验证。
su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root
su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。
退出返回之前的用户:exit
————————————————
2、sudo
sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。
进入sudo配置文件命令:
vi /etc/sudoer或者visudo
案例:
允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
hadoop ALL=(ALL) ALL
案例:
只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。
配置文件中:
hadoop ALL=NOPASSWD: /bin/ls, /bin/cat
————————————————
七、其他Linux常用命令
查看当前目录:pwd
命令:pwd 查看当前目录路径
查看进程:ps -ef
命令:ps -ef 查看所有正在运行的进程
结束进程:kill
命令:kill pid 或者 kill -9 pid(强制杀死进程) pid:进程号
网络通信命令:
ifconfig:查看网卡信息
命令:ifconfig 或 ifconfig | more
ping:查看与某台机器的连接情况
命令:ping ip
netstat -an:查看当前系统端口
命令:netstat -an
搜索指定端口
命令:netstat -an | grep 8080
配置网络
命令:setup
重启网络
命令:service network restart
切换用户
命令:su - 用户名
关闭防火墙
命令:chkconfig iptables off
或者:
iptables -L;
iptables -F;
service iptables stop
修改文件权限
命令:chmod 777
清屏
命令:ctrl + l
vi模式下快捷键
esc后:
保存并退出快捷键:shift+z+z
光标跳到最后一行快捷键:shift+g
删除一行:dd
复制一行内容:y+y
粘贴复制的内容:p
————————————————