详细内容见:预防rm误删文件的3种方法
rm命令替换为一个交互式命令,提示用户确认删除操作:alias rm='rm -i' 这样,每次使用rm命令时,系统都会提示确认。
trash-cli工具将删除的文件移动到回收站,而不是直接删除。安装trash-cli后,可以使用trash-put命令代替rm:sudo apt install trash-cli trash-put filename /etc/fstab文件来挂载分区为只读:/dev/sdX /mount/point ext4 ro,defaults 0 2 命令:touch filename
tip1:touch file.txt命令不会覆盖已存在的file.txt文件。它会更新该文件的最后修改时间。如果文件不存在,则会创建一个新的空文件。


命令:rm filename
其英文全称为remove
常用参数:
-i:交互模式,删除前询问。interactive-f:强制执行操作。这里指强制删除,忽略不存在的文件,不提示确认。force-r:递归删除目录及其内容。recursive容易踩缝纫机的命令:rm -rf😋


命令:mkdir Directory_name

命令:rmdir Directory_name或rm -r Directory_name
其英文全称为Remove Directory
区别:rmdir只能删除空目录,rm -r可以删除非空目录(因为-r表示递归地对目录进行操作,其英文为recursive)

命令:pwd
其英文全称为Print Working Directory

命令:cd
其英文全称为Change Directory
当前位于root目录,即root用户的家目录~,linux中用/表示根目录,
其中.表示的是当前目录,..表示的上级目录。
下面是进入share目录并返回根目录的事例:

命令:ls
其英文全称为List
常用参数及使用方法如下:
-a:显示所有文件和目录,包括隐藏文件(以.开头的文件或目录)。all-l:以长格式显示详细信息,包括文件权限、所有者、大小、修改时间等。long-h:与-l结合使用,以人类易读的格式显示文件大小(如K、M、G等)。human-readable-R:递归列出子目录的内容。recursive-t:按文件修改时间排序显示。time
命令:cat
其英文全称为Concatenate
cat命令可以查看文件里面的内容,更多的使用命令可以使用--help命令查看:
-a,–show-all等价于-vET
-b,–number-non空白数非空输出行,覆盖-n
-e, 等价于-vE
-E,–show-结束显示$在每一行的末尾
-n,–number编号所有输出行,即在输出时在前面加上编号
英文全称:number
-s,–crick-空白抑制重复的空输出行
-t等价于-vT
-t,–show-tabs将制表符显示为^I
-v,–show非打印使用^和M-表示法,LFD和TAB除外
1.读取内容:
命令:cat filename

2.写入内容(默认覆盖):
命令:cat >filename,若文件名不存在,则会自动创建
退出编辑:CTRL+D

3.显示行数
命令:cat -n filename 
4.将源文件的内容追加到目标文件中
使用:>>重定向运算符
命令:cat source_file >> target_file

命令:mv
mv命令和rm命令的使用方式很相似,但是mv是用来移动文件或者目录的,同时还可以进行重命名。rm命令则是用来删除文件或者目录的。
常用参数:
-i:交互模式,覆盖前询问。
-f:强制执行操作。这里指强制覆盖。
英文全称为force
-u:只在源文件比目标文件新时才进行移动,即仅更新较新的文件
英文全称updata
命令:vim filename
末行模式:
:w - write (保存文件):q - quit (退出 Vim):q! - quit! (强制退出 Vim,不保存修改):wq - write quit (保存并退出 Vim):wq! - write quit (保存并强制退出 Vim)
命令模式:
dd - delete (删除当前行)yy - yank (复制当前行)p - paste (粘贴)u - undo (撤销上一步操作)G - goto (跳转到文件的末尾)gg - goto (跳转到文件的开头)ZZ - 代表“保存并退出”,相当于 :wqw - word (跳转到下一个单词的开头)b - backup (跳转到上一个单词的开头)0 - beginning (跳转到行的开头)进入编辑模式:
i - insert (插入,即在光标前插入文本)a - append (追加,即在光标后插入文本)o - open (在当前行之下新开一行,并进入插入模式)命令:
cp [选项] 源文件 目标文件or目标目录cp -r 源目录 目标目录注意:cp命令复制到目标文件时,默认覆盖 目标文件中的数据
常用选项:
-r 或 -R:递归复制目录及其内容。-i:在覆盖文件之前提示确认。-v:显示正在复制的文件。-u:只在源文件比目标文件新,或目标文件不存在时复制。-n(no-clobber),cp 命令不会覆盖已存在的目标文件,等于说不执行cp命令(没啥用)讲test.txt文件的内容复制到demo.txt中
cp命令覆盖目标文件内容
命令: ln
ln 可用于创建硬链接或符号链接(软链接)ln 命令也可用于在文件系统中创建硬链接或符号链接(软链接)。
以下是详细说明:
硬链接是文件系统中的多个文件名指向同一个物理文件数据块。删除任何一个硬链接,文件数据不会被删除,直到所有指向该数据块的链接都被删除。
注意:硬链接就是给一个数据块起了很多个别名。故修改源文件,硬链接文件内容也会改变
命令格式:
ln 源文件 目标文件 示例:

这将在当前目录中创建一个名为 woidemo.txt 的硬链接,指向 hdemo.txt。两者共享相同的数据块。
符号链接是一个指向另一个文件或目录的路径名的文件。删除符号链接不会影响目标文件,但删除目标文件会导致符号链接失效。
注意:修改符号链接文件内容,源文件也会改变
ln -s 源文件 目标文件 
这将在当前目录中创建一个名为 nm.txt 的符号链接,指向 hdemo.txt。nm.txt 只是指向 hdemo.txt 的路径。
常用选项:
-s:创建符号链接。-f:强制创建链接,覆盖已有文件。-v:详细模式,显示创建的链接信息。-i:交互模式,文件存在则提示用户是否覆盖。-n:把符号链接视为一般目录。注意:
如果不指定 /path/to/directory,find 命令将默认在当前工作目录及其所有子目录中进行搜索。
当你需要在Linux系统中查找特定的文件或目录时,find 命令是一个非常有用的工具。它能够根据多种条件精确地定位文件,以下是它的一些主要用法:
按文件名查找:
使用 -name 选项可以根据文件名查找文件。例如,如果你想找到名为 file.txt 的文件,可以执行类似这样的命令:
find /path/to/directory -name "file.txt" 这将在指定目录及其子目录中查找名为 file.txt 的文件。

按文件类型查找:
使用 -type 选项可以根据文件类型查找文件。常见的文件类型包括普通文件 (f) 和目录 (d)。例如,要查找所有普通文件,可以执行以下命令:
find /path/to/directory -type f 这将列出指定目录及其子目录中的所有普通文件。
示例:
如果你想查找所有以 .py 结尾的文件,可以使用 find 命令结合 -name 选项来实现。这样可以过滤出所有符合条件的文件路径。
假设你希望在 /home/user 目录及其所有子目录中查找所有以 .py 结尾的文件,可以执行以下命令:
find /home/user -type f -name "*.py" 
这条命令的含义是:
find /home/user:从 /home/user 目录开始搜索。-type f:限定查找对象为普通文件。-name "*.py":指定文件名模式为 *.py,即以 .py 结尾的文件。输出示例:
如果 /home/user 目录下有文件 script.py 和子目录 code,子目录中有文件 utils.py,那么上述命令的输出可能是:
/home/user/script.py /home/user/code/utils.py 注意事项:
-name "*.py" 来指定文件名模式时,通配符 * 表示零个或多个字符,而 .py 则确保文件以 .py 结尾。-exec 选项执行其他命令,例如复制、移动或删除文件。通过这种方式,你可以非常方便地查找并操作指定类型的文件,如 Python 脚本文件 .py。
按文件大小查找:
使用 -size 选项可以按照文件的大小查找文件。可以指定大小的单位(如 M 表示兆字节)。例如,要查找大于100MB的文件,可以执行以下命令:
find /path/to/directory -size +100M 这将列出指定目录及其子目录中大于100MB的文件。
按修改时间查找:
使用 -mtime、-atime 或 -ctime 选项可以按照文件的修改时间、访问时间或状态更改时间查找文件。例如,要查找最近7天内修改过的文件,可以执行以下命令:
find /path/to/directory -mtime -7 这将列出指定目录及其子目录中在最近7天内修改过的文件。

按文件权限查找:
使用 -perm 选项可以按照文件权限查找文件。例如,要查找权限为755的文件,可以执行以下命令:
find /path/to/directory -perm 755 这将列出指定目录及其子目录中权限为755的文件。
按用户或组查找:
使用 -user 或 -group 选项可以按照文件的所有者或所属组查找文件。例如,要查找属于用户 username 的文件,可以执行以下命令:
find /path/to/directory -user username 这将列出指定目录及其子目录中属于用户 username 的文件。
执行操作:
使用 -exec 选项可以对找到的文件执行特定的操作。例如,要删除所有以 .txt 结尾的文件,可以执行以下命令:
find /path/to/directory -name "*.txt" -exec rm {} \; 这将删除找到的所有 .txt 文件。
echo 命令用于在终端中显示一段文字或变量的值。它是一个非常常用的命令行工具,尤其在 shell 脚本中,用于输出文本到标准输出。以下是 echo 命令的详细介绍和一些常见的用法示例:
1.14 sed-文本流编辑
sed 是一个强大的文本流编辑工具,常用于在 Linux 和 Unix 系统中处理和转换文本数据。
它的名字来源于其英文全称 stream editor(流编辑器)。
sed 主要用于从输入流(例如文件或管道)中读取数据,对数据进行编辑处理,然后将结果输出到标准输出或文件中。
注意:在默认情况下,sed 命令不会改变源文件的数据。具体来说,当你在使用 sed 命令时,它会按照指定的编辑命令处理输入的文本,并将结果输出到标准输出(通常是终端)。这意味着 sed 命令会显示处理后的文本内容,但不会修改原始文件。
以下是对 sed 命令中参数和动作的说明:
-e 或 --expression=:在命令行中直接指定脚本进行文本处理。例如:
sed -e 's/old/new/' filename 这会将文件 filename 中的 “old” 替换为 “new”。
注意:源文件实际内容未发生改变

-f 或 --file=:从指定的脚本文件中读取脚本进行文本处理。例如:
sed -f script.sed filename 这会执行 script.sed 中定义的脚本处理文件 filename。
-n 或 --quiet 或 --silent:仅打印经过脚本处理后的输出结果,不打印未匹配的行。例如:
sed -n 'p' filename 这会只打印匹配的行。

-i,in-place 操作作用:使 sed 命令直接修改指定的源文件,而不是将修改后的结果输出到标准输出设备(通常是终端)。
a:在当前行的下一行添加指定的文本字符串。例如:
sed '/pattern/a\This is a new line' filename 这会在匹配 pattern 的行之后添加 “This is a new line”。

c:用指定的文本字符串替换指定范围内的行。例如:
sed '1,3c\This is the replacement line' filename 这会用 “This is the replacement line” 替换文件 filename 中的第 1 到第 3 行。
d:删除指定的行。例如:
sed '/pattern/d' filename 这会删除文件 filename 中所有包含 pattern 的行。

i:在当前行的上一行添加指定的文本字符串。例如:
sed '/pattern/i\This is a new line' filename 这会在匹配 pattern 的行之前添加 “This is a new line”。

p:打印经过选择的行。通常与 -n 参数一起使用,只打印匹配的行。例如:
sed -n '/pattern/p' filename 这会只打印文件 filename 中匹配 pattern 的行。

s:使用正则表达式进行文本替换。例如:
sed 's/hate/love/' filename 这会将文件 filename 中所有 “hate” 替换为 “love”。
注意:源文件实际内容未发生改变

echo [选项] [字符串...] 基本输出:
echo "Hello, World!" 输出:Hello, World!
输出变量值:
NAME="Alice" echo "Hello, $NAME!" 输出:Hello, Alice!
输出包含特殊字符的字符串:
echo "Hello, \$NAME!" 输出:Hello, $NAME!
输出多行文本:
echo -e "Line1\nLine2\nLine3" 选项 -e 使 echo 解释转义字符(如 \n 表示换行)。输出:
Line1 Line2 Line3 -e:启用解释反斜杠转义字符。
echo -e "Line1\nLine2\nLine3" -n:输出文本后不换行。
echo -n "Hello, World!" --help:显示 echo 命令的帮助信息。
echo --help \n:换行\t:水平制表符(tab)\\:反斜杠\":双引号\':单引号echo "Hello, World!" # 输出:Hello, World! echo -n "Hello, World!" # 输出:Hello, World!(无换行) echo -e "Line1\nLine2\nLine3" # 输出多行文本 NAME="Alice" echo "Hello, $NAME!" # 输出变量值:Hello, Alice! echo 命令非常简单但功能强大,适用于各种文本输出场景,无论是直接输出文本,还是在脚本中输出变量值或格式化文本。
-i:忽略大小写进行搜索。
grep -i "pattern" filename 这会查找 filename 文件中与 “pattern”(忽略大小写)匹配的所有行。-v:反转匹配,即显示不匹配的行。
grep -v "pattern" filename 这会查找 filename 文件中不包含 “pattern” 的所有行。-n:显示行号。
grep -n "pattern" filename 这会查找 filename 文件中与 “pattern” 匹配的所有行,并在每一行前显示行号。-c:统计匹配的行数。
grep -c "pattern" filename 这会输出 filename 文件中与 “pattern” 匹配的行数。grep -i "pattern" filename # 忽略大小写搜索 grep -v "pattern" filename # 反转匹配,显示不匹配的行 grep -n "pattern" filename # 显示匹配行的行号 grep -c "pattern" filename # 统计匹配行的数量 这些参数使 grep 命令在文本搜索时更加灵活和强大,适用于各种不同的搜索需求。