目录相关操作
1、cd:切换目录
cd . # 切换当前目录
cd .. # 切换上一层目录
cd ~ # 切换目前使用者所在的家目录
2、pwd:显示当前目录路径
3、mkdir:创建一个新目录
mkdir test # 创建一个名为test的目录
mkdir -p test/function_test # 创建多级目录,在test目录下创建function_test目录,如果test不存在则新建
mkdir -m 777 test # 创建一个权限为777的目录test
4、rmdir:删除一个空目录
rmdir test # 删除一个空目录test,如果非空则会报错,删除非空目录可用rm命令
5、ls:用于列出目录中的文件和子目录
常用选项包括:
-l, --long
:以长格式列出文件信息,包括权限、所有者、大小等详细信息。-a, --all
:列出所有文件,包括以.
开头的隐藏文件。-h, --human-readable
:以易读的格式显示文件大小(例如,KB、MB)。-r, --reverse
:逆序排列文件。-t
:按修改时间排序文件。
ls # 列出当前目录下的所有文件和子目录
ls -a # 列出当前目录下的所有文件和子目录(包括隐藏文件)
ls -l (或者 ll ) # 以长格式列出当前目录下的所有文件和子目录
ls -r -h # 以逆序和易读格式列出当前目录下的所有文件和子目录
文件相关操作
1、cp:复制
基本语法:
cp [OPTION]... SOURCE...
其中,SOURCE
是要复制的源文件或目录的名称,DEST
是目标位置的名称。
以下是一些常用的 cp
命令选项:
-r
或--recursive
:递归地复制目录及其内容。-i
或--interactive
:在复制前进行交互式确认。如果目标文件已经存在,会提示是否覆盖。-u
或--update
:仅复制源文件中比目标文件新或者目标文件不存在的文件。-v
或--verbose
:显示详细的复制过程。-a
或--archive
:以递归方式复制,并保持所有元数据,包括文件权限、所有权、时间戳等。-f
或--force
:强制复制,覆盖目标文件而不提示。
cp file1.txt dir1 # 将文件 file1.txt 复制到目录 dir1 中
cp -r dir1 dir2 # 将目录 dir1 及其所有内容递归地复制到目录 dir2 中
cp -i file1.txt dir1 # 交互式地将文件 file1.txt 复制到目录 dir1 中,如果目标文件已存在,则提示是否覆盖
cp -u file1.txt dir1 # 仅复制比目标文件更新的文件
cp -v file1.txt dir1 # 以详细模式将文件 file1.txt 复制到目录 dir1 中
cp -a dir1 dir2 # 以归档模式递归地复制目录 dir1 及其所有内容到目录 dir2 中,并保持所有元数据
cp -f file1.txt dir1 # 强制复制,覆盖目标文件而不提示
cp -rf ./* /home/data # 强制递归将当前目录下所有文件复制到home目录下的data目录
2、rm:删除文件或目录
rm file.txt # 删除file.txt文件
rm -f file.txt # 强制删除file.txt文件,无需确认
rm -i file.txt # 交互式删除,删除前会提示确认
rm -r test # 递归删除test目录
rm -rf ./* 强制递归删除当前目录下所有目录文件
3、mv:移动文件与目录或更名
mv dir1 dir2 # 将目录dir1移动到dir2下
mv file.txt dir1 # 将file.txt文件移动到dir1目录下
mv file.txt dir1/newfile.txt # 将file.txt文件移动到dir1目录下并重命名newfile.txt
mv dir newdir # 将dir目录重命名为newdir(newdir不存在,存在则移动)
mv file.txt newfile.txt # 将file.txt重命名为newfile.txt
4、tar:通常用于解压和压缩文件
下面是一些常见的选项:
-c, --create
:创建新的归档文件。-x, --extract, --get
:从归档文件中提取文件。-f, --file=ARCHIVE
:指定归档文件的名称。-v, --verbose
:显示详细的操作信息。-z, --gzip
:使用 gzip 压缩和解压缩归档文件。-j, --bzip2
:使用 bzip2 压缩和解压缩归档文件。-t, --list
:列出归档文件中包含的文件。-C, --directory=DIR
:在指定目录中执行操作。
解压debug.tar.gz文件到当前目录:
tar -zxvf debug.tar.gz
压缩单个或多个文件,名为debug.tar.gz:
tar -zxcf debug.tar.gz a.txt b.txt c.txt
5、cat:用于连接文件并打印它们的内容到标准输出的命令
常见的选项:
-b, --number-nonblank
:对非空行进行编号。-n, --number
:对所有行进行编号。-s, --squeeze-blank
:压缩连续的空行。-E, --show-ends
:在每行结束处显示$
符号。-T, --show-tabs
:在每个制表符位置显示^I
符号。
cat file.txt # 显示文件 file.txt 的内容
cat file1.txt file2.txt # 将文件 file1.txt 和 file2.txt 的内容连接并显示\
cat -b file.txt # 显示文件 file.txt 的内容,并在非空行进行编号
cat -n file.txt # 显示文件 file.txt 的内容,并在所有行进行编号
6、vim:文本编辑
使用vim打开或新建文件:
vim file # 打开file文件,进入vim编辑界面
进入编辑界面后,进入命令模式,按下 i 键进入插入模式,这时候就可以插入文本了。
编辑完文本后按下 esc 键退出,又会回到命令模式。
按下 shift + :两个键,输入w,再按回车则可保存;
再按下 shift + :两个键,输入q,再按回车则退出vim编辑;
或者按下 shift + :后,直接输入wq命令即可强制保存并退出;
如果你想强制退出且不保存,输入q!回车即可
其它
1、ln命令
有时候跨平台复制传输动态库可能会使原本的软连接失效,这时候就需要重新建立软连接,可使用ln命令建立软连接。
常用选项包括:
-s, --symbolic
:创建软链接。-f, --force
:如果目标文件已存在,则删除它。-v, --verbose
:显示创建链接的详细信息。
ln -sf target_file link_to_file
这会创建一个名为 link_to_file
的软链接,指向 target_file
。
ln -sf target_file link_to_file1 link_to_file2 link_to_file3
创建一个名为 link_to_file1、link_to_file2、link_to_file3
的软链接,指向 target_file
。
通常情况下,Linux里面的动态库最长的名字(占内存最大)就是实际的库文件,名字较短的就是软连接。如 libyaml-cpp.so.0.8.0 就是实际的库文件,而 libyaml-cpp.so 就是它的软连接。如果要重新连接,则:
ln -sf libyaml-cpp.so.0.8.0 libyaml-cpp.so
2、ps命令
ps
命令用于显示当前正在运行的进程信息。
常用选项包括:
-e
:显示所有进程,等同于-A
。-f
:显示完整格式的输出,包括进程详细信息。-u user
:仅显示指定用户的进程。-aux
:显示所有进程的详细信息,包括用户、CPU 使用情况等。-l
:以长格式显示进程信息,包括进程状态、PID、CPU 使用情况等。
ps # 显示当前用户的所有进程
ps -ef # 显示所有进程的详细信息
ps -aux # 显示所有进程的详细信息,包括进程状态、PID、CPU 使用情况等
ps -u root # 仅显示指定用户(例如,root 用户)的进程
当你想过滤查询进程时,可以使用管道操作符 | 和 grep 命令的组合。管道操作符用于将一个命令的输出作为另一个命令的输入。使用 ps -aux 可以显示所有进程的详细信息,以此输出作为输入,传递给 grep 命令。grep命令用于在文件中搜索指定模式的文本,并将匹配的行输出到标准输出。具体使用方法如下:
ps -aux | grep ss # 列出所有以ss开头的进程的详细信息