前提:使用su root 切换到权限最大的root用户
1.显示当前工作目录的绝对路径(pwd)
-
用途:用于显示当前工作目录的绝对路径的命令。无论用户在文件系统的哪个位置,
pwd
命令都能提供当前所在位置的完整路径信息。 -
用法:pwd
-
示例:执行
pwd
命令后,它会输出当前目录的绝对路径。
2.创建目录(mkdir)
-
用途:创建一个新的目录。
-
用法:mkdir [选项] 目录名
-
示例:在home目录下创建名为 animal 的目录。
mkdir /home/animal
注意:mkdir只能创建一级目录,如果想创建多级目录使用:mkdir -p
示例:在home目录下创建名为 people/tom的目录。
mkdir -p /home/people/tom
3.删除目录(rmdir)
-
用途:删除空目录。
-
用法:rmdir [选项] 目录名 或 rm [选项] 目录名
-
示例:在home目录下删除名为 animal 的目录。
rmdir /home/animal
注意:如果目录不为空使用 rmdir 目录名 是删除不了的,那么就需要其他的命令: rm [选项] 目录名 或者 rmdir -p 子目录的路径
示例:在home目录下删除名为 people/tom 的目录。
方式1:
rmdir -p /home/people/tom
方式2:
rm -rf /home/people
以下是rm 选项的作用:
4.切换目录(cd)
-
用途:改变当前工作目录。
-
用法:cd 相对路径(绝对路径)
-
示例:切换到刚刚创建的
animal
目录
绝对路径:
cd /home/animal
相对路径(需要进行两次操作):
cd /home
cd animal
为什么第二次cd 切换不需要加上 / 符号呢?请看补充部分的解释!home前面的/表示的是根目录,其他的/是目录分隔符,并无其他用意,所以切换到home目录下后不用加上/(即 cd /animal),加上后表示为:根目录下的animal目录,所以cd /animal 会报错!!!正确的表示为cd animal
补充:什么是相对路径,什么是绝对路径?
相对路径:相对于当前工作目录的路径。它不是从根目录开始,而是从当前目录开始,通过一系列的相对路径指示符(如上一级目录等)来定位文件或目录。
例子:
-
如果当前工作目录是“C:\Users\username\Documents\Pictures”,并且想要访问“Documents”文件夹下的“file.txt”,那么相对路径为“../file.txt”,这里的“..”表示上一级目录。
单点(.)表示当前目录。
双点(..)表示上一级目录。
绝对路径:从文件系统的根目录开始,到指定文件或目录的完整路径。它就像是从最顶层开始,一步一步向下直到目标文件的“完整地图”。
例子:
- 在Linux系统中,一个文件的绝对路径可能是“/home/user/Documents/file.txt”。这里的“/”是根目录,“home”是根目录下的一个子目录,“user”是home目录下的子目录,“Documents”是user目录下的子目录,而“file.txt”是文件名。
补充:“/”符号的意义
在文件路径中,/
通常用作目录分隔符。它表示路径中的一个层级变化,即从一个目录转移到其下的子目录(或反之,通过 ..
表示转移到上级目录)。在Unix-like系统(如Linux和macOS)中,/
是根目录的标识符,也是所有文件和目录的起点。
对于您给出的例子 /home/user/Documents/file.txt
:
- 第一个
/
表示根目录。 - 之后的每一个
/
都用来分隔路径中的不同部分,即不同的目录或文件名。
所以,在这个路径中:
/home
表示根目录下的home
目录。/home/user
表示home
目录下的user
目录。/home/user/Documents
表示user
目录下的Documents
目录。/home/user/Documents/file.txt
最终指向Documents
目录下的file.txt
文件。
每个 /
都是路径解析过程中的一个重要标记,它告诉系统如何从一个目录移动到另一个目录,直到找到最终的文件或目录。在Windows系统中,虽然传统的路径分隔符是反斜杠 \
(例如 C:\Users\username\Documents\file.txt
),但现代Windows系统通常也支持使用正斜杠 /
作为路径分隔符,尤其是在命令行和某些编程环境中。
5.列出目录内容(ls)
-
用途:列出目录中的文件和子目录。
-
用法:ls 目录名(文件名)
ls
ls 的选项(这里举出用得比较多的选项)
也可以搭配一起使用:ls -al
6.创建文件(touch)
-
用途:创建一个空文件或者修改文件的时间戳。
-
用法:touch 文件名(注意文件名要以.txt结尾)
-
示例:在home目录下创建一个名为
file.txt
的空文件。
touch /home/file.txt
7.查看文件内容(cat)
-
用途:查看文件的内容。(不能修改!!!)
-
用法:cat [选项] 文件名
-
示例:查看 /etc/profile 的内容。
cat /etc/profile
一般情况结合more一起使用:cat /etc/profile |more
选项:
- -n :功能是显示行号(cat -n /etc/profile)
8.复制文件或目录(cp)
-
用途:复制文件或目录到另一个位置。
-
用法:cp 要复制的文件名 另一个位置
-
示例:复制home目录的
a.txt
到home目录下的animal目录里。
cp /home/a.txt /home/animal
如果要复制全部文件包括目录,应使用 -r 例如将animal目录及其目录下的文件全部复制到根目录下。
cp -r /home/animal /
如果进行了重复的操作,那么系统就会提示是否进行覆盖,如果不想要提示就需要在cp前面加上斜杆:
\cp -r /home/animal /
9.移动文件或目录(mv)
-
用途:移动文件或目录到另一个位置,或者重命名文件或目录。
-
用法:mv 原名 新名(这是重命名操作)或 mv 原文件名路径 新文件名路径(剪切操作)
-
示例:将
file.txt
重命名为 new_file.txt
。
mv file.txt new_file.txt
剪切操作:(在home下有两个目录分别是animal目录和people目录,将animal里面的dog.txt 剪切到people目录下)
mv /home/animal/dog.txt /home/people
当然还可以剪切和重命名同时操作:(将dog.txt重命名为cat.txt)
mv /home/animal/dog.txt /home/people/cat.txt
10.查看文本文件内容(less)
-
用途:用来查看文本文件内容(查看大文件比cat效率更高),
less
提供了更多高级功能,如搜索文本、跳跃到文件的特定位置等。 -
用法:less [选项] 文件名
-
示例:查看 /etc/profile 的内容。
less /etc/profile
11.输出文本或变量的值(echo)
-
用途:用于在终端或命令行界面输出文本或变量的值到标准输出(通常是屏幕)
-
用法:echo [选项] [输出内容]
-
示例:输出“hello,word”
echo "hello,world"
示例:输出$PATH
echo $PATH
12.显示文件开头部分的命令(head)
-
用途:用来显示文件开头部分的命令。默认情况下,它会显示文件的前10行,但这个数字可以通过选项来修改。
-
用法:head [选项] [文件...]
-
示例:查看 /etc/profile 的前10行内容。
head /etc/profile
显示前20行:
head -n 20 /etc/profile
13.显示文件末尾部分的命令(tail)
-
用途:用来显示文件末尾部分的命令。与
head
命令相反,head
显示文件的开头部分,而tail
显示文件的最后几行。默认情况下,它会显示文件的最后10行,但这个数字可以通过选项来修改。 -
用法:tail [选项] [文件...]
-
示例:查看 /etc/profile 的后10行内容。
tail /etc/profile
tail
命令可以使用 -f
或 --follow
选项来实时追踪文件的增长,并显示新增的内容。这个功能特别有用,例如当你想要监控日志文件的实时更新时。
当你使用 tail -f
命令时,tail
会保持运行状态,并且持续检查文件是否有新的数据写入。如果有新的行被添加到文件中,它们会立即显示在你的终端上。
下面是一个使用 tail -f
的例子:
tail -f /var/log/messages
执行上述命令后,tail
命令会一直运行,并显示 /var/log/messages
文件末尾的内容。如果系统有新的日志消息被写入该文件,这些消息会实时显示在你的屏幕上。
要停止 tail -f
的追踪,你可以按下 Ctrl + C
来终止命令的执行。
需要注意的是,tail -f
不会读取文件的全部内容,而是从文件的末尾开始读取,并且持续监视文件的末尾部分。这意味着如果你在文件增长了很多内容之后才启动 tail -f
,它不会显示文件的完整内容,而只会显示从命令执行开始之后添加到文件中的内容。
14.重定向操作符 (>)
-
用途:重定向操作符
>
用于将命令的输出重定向到一个文件中。这个操作符会创建指定的文件(如果文件不存在的话),或者覆盖文件原有的内容(如果文件已经存在)。 -
用法:command > file(这里,
command
是你想执行的命令,file
是你想要将输出写入的文件名。) -
示例:假设你想将
ls
命令的输出(列出当前目录下的文件和目录)写入到一个名为list.txt
的文件中,你可以这样做:
ls >list.txt
执行这个命令后,当前目录下的文件列表会被写入到 list.txt
文件中。如果 list.txt
文件之前已经存在,那么它原来的内容会被新内容覆盖。
特点
-
覆盖内容:使用
>
重定向操作符时,目标文件的内容会被新内容覆盖。如果文件不存在,则会创建它。 -
仅输出:只有命令的标准输出(通常是成功的输出)会被重定向到文件中,而标准错误输出(通常是错误消息)会继续发送到终端。
-
权限和所有权:新创建的文件会使用当前用户的默认权限设置。
例子 2:清空文件内容
如果你想快速清空一个文件的内容,而不用打开编辑器,可以使用 >
操作符将空输出重定向到文件中:
> file.txt
注意事项
- 使用
>
操作符时要小心,因为它会无提示地覆盖文件内容。 - 如果你想将输出追加到文件末尾而不是覆盖文件,应该使用
>>
操作符。
15.创建链接(ln)
-
用途:
ln
命令用于创建链接,这些链接可以是硬链接(hard link)或符号链接(symbolic link)。 -
用法:ln [选项] 源文件 目标链接
其中:
[选项]
可以是-s
,表示创建符号链接。源文件
是你想要创建链接的文件。目标链接
是你想要创建的链接名称。
-
示例:假设有一个名为
file1.txt
的文件,我们想为它创建一个硬链接link1.txt
:ln file1.txt link1.txt
执行此命令后,
file1.txt
和link1.txt
将指向相同的文件内容,并且它们具有相同的inode号。
硬链接(Hard Link)
硬链接是文件系统中的目录条目,它指向文件的inode(在Unix文件系统中,每个文件都有一个唯一的inode号)。硬链接有几个特性:
- 硬链接与原始文件共享相同的inode号,因此它们实际上指向文件系统中的相同文件内容。
- 删除原始文件不会影响硬链接,因为硬链接仍然指向原始文件的数据块。
- 硬链接不能跨文件系统创建。
- 硬链接不能链接目录。
符号链接(Symbolic Link)
符号链接,也称为软链接,是文件系统中的一个特殊类型的文件,它包含指向另一个文件或目录的路径。符号链接的特性包括:
- 符号链接有自己的inode号和文件权限。
- 符号链接指向的是另一个文件的路径,而不是文件的数据块。
- 如果原始文件被删除,符号链接会变成“悬挂链接”(dangling link),它指向一个不存在的文件。
- 符号链接可以跨文件系统创建。
- 符号链接可以链接目录。
创建符号链接的例子:
假设我们想为 file1.txt
创建一个符号链接 symlink1.txt
:
ln -s file1.txt symlink1.txt
这里,-s
选项告诉 ln
命令创建一个符号链接。执行此命令后,symlink1.txt
将指向 file1.txt
。
例子 3:链接目录
ln -s /path/to/original/directory /path/to/symlink_directory
这将在 /path/to/symlink_directory
创建一个指向 /path/to/original/directory
的符号链接。请注意,硬链接不能用于目录。
注意事项
- 硬链接不能用于链接目录,也不能跨文件系统。
- 删除原始文件后,符号链接将变成悬挂链接,而硬链接仍然可以访问文件内容。
- 使用
ln
命令时,如果目标链接已存在,它将被覆盖,因此请谨慎操作。
16.显示命令手册页(man)
-
用途:用于显示命令手册页的实用工具。每个命令或函数通常都会有一个手册页,其中包含了关于如何使用该命令或函数的详细信息,包括其用途、选项、参数以及示例。
-
用法:man [选项] 页面名称
-
示例:查看
ls
命令的手册页。man ls
17.获取内置命令的帮助信息(help)
-
用途:
help
命令或函数通常用于提供关于特定命令、函数、类或模块的用法信息。 -
用法:help [选项] 名称
-
示例:获取
cd
命令的帮助。[user@linux ~]$ history 3 4 ls -l 5 nano test.txt 6 history
help cd
18.补充其他命令:
-
history :
history
命令用于显示和操作 shell 的命令历史。
例子 1:使用参数控制显示的条目数量
[user@linux ~]$ history 3
4 ls -l
5 nano test.txt
6 history
使用 history
命令后跟一个数字参数可以显示最后 N 条命令历史。
例子 2:使用命令历史中的条目
你可以使用 !
前缀来执行历史记录中的命令。例如,执行历史记录中的第4条命令:
[user@linux ~]$ !4
ls -l
-
data:
date
命令用于显示或设置系统的日期和时间。
用法:直接使用date
格式化输出:
你可以使用 +
符号来指定日期和时间的输出格式:
date "+%Y-%m-%d %H:%M:%S"
注意:月和日都是小写字母,其他是大写!!!
设置日期和时间:
以root权限运行以下命令可以设置系统的日期和时间:
date -s "2023-03-14 15:00:00"
-
cal :
cal
命令用于显示日历。它可以显示当前月份的日历,也可以显示任意年月的日历。
用法:直接使用cal
显示整年的日历:
cal 2024
这将显示2024年整年的日历,每个月的日历都会显示出来。
显示指定月份的日历:
cal 3 2023
这将显示2023年3月的日历。