linux常用命令
pwd cd ls du mkdir stat touch echo cat ln cp rm mv which / whereis / type
常用快捷键(xshell中)
Ctrl +l:清屏
Ctrl +c: 不执行这行命令
家目录:~:是在root目录下:pwd查看当前目录
cd-切换到上次命令
路径
. 当前目录
/ 根目录
绝对路径:前后带/
相对路径:只有后带/,当前目录
文件后不加/
-
结合通配符
?问号通配符可以匹配任何一个单个字符,列如·使用
ls file?.txt
将会列出所有以file
开头后面跟一个任意字符和.txt
后缀的文件。
*星号通配符可以匹配任何数量的字符
别名: - .bashrc - alias my ='ls -alh' - source .bashrc 重新生效
命令
cat/more/less
-
cat
- 连接并打印文件内容 -
more
- 分页显示文件内容 -
less
- 更好的分页文件查看器,允许前后翻页
head/tail
-
head
- 打印文件开头的几行 -
tail
- 打印文件结尾的几行
wc
-
wc
- 计算文件的行数、单词数和字节数 -
wc -m 字符数
ls --help 查看帮助
ls :h d a l
-
以长格式显示信息
-
a:查看全部文件,包括隐藏的
-
-d:查看某个具体文件的信息(需要指定参数)
-
-h:以常规单位显示文件大小(如:K、M等)
-
-i:显示inode号
du
-
统计目录及文件空间占用情况-du 统计指定目录(或文件)所占用磁盘空间的大小
-
-a统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-
-h以更人性化的方式(mb/gb) 默认以KB计数,但不显示单位)显示出统计结果 -S只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
-
●统计出var/Iog目录所占用空间的大小 du -sh /var/log/
mkdir
mkdir -p aaa/bbb/ccc
**stat:查看文件时间**
-
最近访问时间():
-
表示文件最后一次被访问的时间,即文件被读取或执行的时间。
-
-
最近更改时间():
-
表示文件最后一次内容被修改的时间。任何导致文件内容变化的操作,如编辑文件、向文件中追加内容等,都会更新这个时间戳。
-
-
最近改动时间():
-
表示文件的元数据最后一次被改变的时间。这不仅仅包括文件内容的修改,还包括文件权限、所有权、属性等的变更。简单地说,任何通过
chmod
、chown
、touch
(不写入数据)等命令对文件进行的操作都会更新这个时间戳。
-
touch
-
更新文件时间
-
创建文件
-
echo:显示打印
-
echo 'hello' >>file
一个>覆盖>>追加
echo -e
-e
选项允许echo
命令解释转义序列,这使得输出文本时可以包含特殊格式,比如换行符\n
、制表符\t
等。
ln 链接
软链接
硬链接
在Linux系统中,链接(Link)是一种允许多个名称指向同一文件或目录的机制。主要有两种类型的链接:硬链接(Hard Link)和软链接(也称为符号链接,Symbolic Link)。
### 硬链接(Hard Link)
硬链接是对文件inode(索引节点)的直接引用。这意味着硬链接和原始文件实际上是同一个文件,它们共享同一个inode。对硬链接的修改实际上是对原始文件的修改,反之亦然。
特点:
- 不能跨文件系统创建硬链接。
- 不能对目录创建硬链接,除非使用特定的挂载选项。
- 删除原始文件不会影响硬链接。
创建硬链接的命令:
ln /path/to/originalfile /path/to/linkname
例如:
ln /home/user/docs/report.txt /home/user/docs/report_link.txt
这将在`/home/user/docs`目录下创建一个名为`report_link.txt`的硬链接,它与`report.txt`文件是同一个文件。
软链接(Symbolic Link)
软链接是指向另一个文件或目录的快捷方式,类似于Windows系统中的快捷方式。软链接包含的是它所指向文件或目录的路径。
特点:
- 可以跨文件系统创建软链接。
- 可以对目录和文件创建软链接。
- 删除原始文件会导致软链接失效(变成死链接,dangling link)。
创建软链接的命令:
ln -s /path/to/originalfile /path/to/symlinkname
例如:
ln -s /home/user/docs/report.txt /home/user/docs/report_symlink.txt
这将在`/home/user/docs`目录下创建一个名为`report_symlink.txt`的软链接,它指向`report.txt`文件。
举例说明
假设我们有一个文件`/home/user/docs/report.txt`,我们想要在`/home/user`目录下创建一个硬链接和软链接:
1. 创建硬链接:
ln /home/user/docs/report.txt /home/user/report_link.txt
现在/home/user/report_link.txt是/home/user/docs/report.txt的硬链接。对任何一个文件的修改都会反映在另一个文件上。
2. 创建软链接:
ln -s /home/user/docs/report.txt /home/user/report_symlink.txt
现在`/home/user/report_symlink.txt`是`/home/user/docs/report.txt`的软链接。它就像一个指向原始文件的指针。如果移动或删除了`/home/user/docs/report.txt`,软链接将失效。
注意事项
- 硬链接因为直接指向inode,所以它们实际上是同一个文件的不同名称。而软链接则是独立的文件,只是它的内容是指向另一个文件的路径。
- 硬链接在文件系统设计上有一些限制,比如不能链接到目录,也不能跨文件系统链接。
- 软链接提供了更大的灵活性,但需要更多的磁盘空间来存储链接路径,并且在链接目标不存在时会导致链接失效。
cp
常用(备份)
cp 文件名.bak
f:强制
r:递归
备份
-
使用
cp
命令进行文件备份:cp /path/to/source/file.txt /path/to/backup/
这个命令将
file.txt
文件复制到/path/to/backup/
目录中,作为备份。 -
使用
cp
命令进行目录备份(不包括子目录):cp -R /path/to/source/directory /path/to/backup/
这个命令将
directory
目录及其内容复制到/path/to/backup/
目录中,-R
选项表示递归复制。 -
使用
tar
命令创建压缩备份:tar -czvf backup.tar.gz /path/to/source/
这个命令将
/path/to/source/
目录及其内容打包并压缩成一个名为backup.tar.gz
的文件。-c
表示创建归档文件,-z
表示gzip压缩,-v
表示在标准输出显示进度,-f
指定归档文件名。 -
使用
rsync
命令进行备份:rsync -av /path/to/source/ /path/to/backup/
这个命令使用
rsync
同步/path/to/source/
目录到/path/to/backup/
目录。-a
选项表示归档模式,-v
表示详细模式。 -
使用
rsync
命令进行增量备份:rsync -av --link-dest=/path/to/previous/backup /path/to/source/ /path/to/incremental/backup/
这个命令创建一个增量备份,
--link-dest
选项指定了上一次备份的位置,rsync
将会尝试使用硬链接来节省空间。 -
使用
dd
命令进行完整磁盘备份(慎用,需要 root 权限):dd if=/dev/sda of=/path/to/backup/sda_backup.img bs=4M
这个命令将整个磁盘
/dev/sda
备份到/path/to/backup/sda_backup.img
文件中。if
表示输入文件,of
表示输出文件,bs
表示块大小。
rm
i:提示
常用-rf (递归强制)
mv移动,剪切,改名
-
移动文件:
mv /path/to/source/file.txt /path/to/destination/
这个命令将
file.txt
文件从/path/to/source/
目录移动到/path/to/destination/
目录。 -
剪切目录:
mv /path/to/source/directory /path/to/destination/
这个命令将
source
目录及其所有内容剪切并移动到/path/to/destination/
目录。 -
重命名文件:
mv /path/to/source/file.txt /path/to/source/newfile.txt
这个命令将
/path/to/source/file.txt
文件重命名为/path/to/source/newfile.tx
which/whereis/
`which` 和 `whereis` 都是Linux系统中用于定位文件的命令,但它们的功能和使用场景有所不同。
### which命令
`which` 命令主要用于查找用户试图执行的命令的完整路径。它实际上会搜索环境变量 `$PATH` 中列出的目录,并返回第一个找到的匹配文件的路径。
语法:
which [command]
示例:
which ls
如果系统中存在 `ls` 命令,此命令将返回 `ls` 可执行文件的路径,例如 `/bin/ls`。
### whereis命令
`whereis` 命令用于定位二进制、源和手册页文件的位置。它会在特定目录(如 `/bin`, `/usr/bin`, `/usr/local/bin` 等)中搜索这些文件。
语法:
whereis [options] [basename]
其中 `[options]` 可以是:
- `-b` 只查找二进制文件。
- `-s` 只查找源文件。
- `-m` 只查找手册页。
示例:
whereis java
这将返回有关 `java` 命令的二进制、源代码和手册页的位置信息。
### 举例说明
假设我们要查找 `cp` 命令的相关文件:
1. 使用which:
which cp
这将返回 `cp` 命令的路径,例如 `/bin/cp`。
2. 使用whereis查找二进制:
whereis -b cp
这将返回 `cp` 二进制文件的位置,通常与 `which` 命令返回的相同。
3. 使用whereis查找源代码:
whereis -s cp
如果系统安装了 `cp` 命令的源代码包,这将返回源代码的位置。
4. 使用whereis查找手册页:
whereis -m cp
这将返回 `cp` 命令的手册页位置,通常是 `man` 页所在目录的路径。
### 区别总结
- `which` 主要用于快速查找命令的可执行文件路径。
- `whereis` 可以查找二进制、源代码和手册页的位置,提供更全面的信息。
- `which` 命令简单快捷,通常用于命令行中确定命令的位置。
- `whereis` 命令功能更丰富,但输出信息可能包含多个路径,需要用户进一步判断。
了解这两个命令的区别可以帮助您更有效地在Linux系统中查找和管理文件。
find和grep
find 命令
-
用途:
find
命令用于在文件系统中搜索文件和目录。它可以基于不同的标准(如文件名、大小、权限、类型、所有者、创建日期等)来查找文件。 -
基本语法:
find [搜索路径] [搜索条件]
-
示例:
-
查找当前目录及其子目录下所有名为example.txt的文件:
find . -name example.txt
-
查找当前目录及其子目录下所有用户具有写权限的文件:
find . -perm -w
-
grep 命令
-
用途:
grep
命令用于搜索文本内容,它可以根据指定的模式搜索文件,并显示匹配行。grep
是全局搜索正则表达式并打印出来(Global Regular Expression Print)的缩写。 -
基本语法:
grep [选项] 模式 [文件...]
-
示例:
-
在文件example.txt中搜索包含 "hello" 的行:
grep "hello" example.txt 在当前目录及其子目录下的所有.txt
文件中搜索 "hello"
grep -r "hello" *.txt
-
区别
-
find
主要用于基于文件名、大小、权限等文件属性搜索文件,而grep
用于基于文本内容搜索文件。 -
find
可以在文件系统中递归搜索,而grep
通常用于读取文件内容并搜索匹配的文本行。 -
find
可以执行复杂的搜索,包括使用逻辑运算符(如-o
表示“或”)组合多个搜索条件。 -
grep
支持正则表达式,使其在文本搜索方面非常灵活。
组合使用
find
和 grep
可以组合使用,以实现更强大的搜索功能。例如,你可以使用 find
命令找到文件,然后对这些文件使用 grep
来搜索特定的文本内容:
find . -name "*.txt" -exec grep "hello" {} +
这个命令会查找所有以 .txt
结尾的文件,并在这些文件中搜索包含 "hello" 的行。
这两个命令是 Linux 用户的强大工具,可以帮助你高效地处理和搜索大量数据