目录
前言
Linux基本命令在测试和开发工作中很多场景都会使用到,所以这篇文章总结下常用的 Linux 命令。
ls:列出目录中的文件和子目录。
- 不带参数运行ls:不带参数运行ls会只列出文件或者目录。看不到其他信息输出。
- 使用长清单模式:使用-l字符(小写L字符),会显示当前目录内容的长列表。
- 显示隐藏文件:使用-a(就是all的意思)选项,可以显示隐藏文件。
- 按照修改时间排序:使用-t选项,可以按照修改时间排序。
- 按照文件大小排序:使用-S选项,可以按照文件大小排序。
- 查看文件类型:使用-l选项,可以查看文件类型。
cd:切换当前工作目录。
- 进入系统根目录:cd / ( cd /root/ 是切换到系统根目录,但是由于root目录下的文件权限通常是 rwx,所以其他用户是没办法cd进入里面的目录的)
- 使用cd命令进入当前用户主目录:cd ~
- 切换到上级目录:使用..表示上级目录,可以通过连续多次使用..来切换到更高级的目录。例如:cd .. 或 cd ../../
pwd:显示当前工作目录的路径。
cp:复制文件或目录。
- 复制一个源文件到目标文件(文件夹):cp 源文件 目标文件(文件夹)
- cp file.txt /backup
- cp file.txt /backup/new_file.txt
- 默认情况下,如果目标文件存在,它将被覆盖。-n选项告诉cp不要覆盖现有文件。要提示确认。
- 复制一个源目录到目标目录:cp -r 源目录 目标目录
- cp -r mydir /home/pungki/office
mv:移动文件或目录,也可用于重命名。
- 将文件从一个位置移动到另一个地方并且不想复制它:mv 源文件 目标文件
- mv file.txt /backup
- mv file.txt /backup/new_file.txt
- 默认情况下,如果目标文件存在,它将被覆盖。-n选项告诉cp不要覆盖现有文件。要提示确认。
rm:删除文件或目录。
- 删除一个文件:rm 文件名
- rm test.txt
- 系统会询问是否删除,输入y后就会删除文件,不想删除则输入n。
- 删除一个目录:rm -r 目录名
- rm -r mydir
- 删除多个文件:rm file1 file2 file3
- 系统会询问是否删除,输入y后就会删除文件,不想删除则输入n。
- 递归删除目录及其下所有子目录和文件:rm -r directory_name
mkdir:创建新目录。
- 创建一个名为runoob的子目录:mkdir runoob
- 新建一个名为folderOne的文件夹:mkdir folderOne
- 新建多个名为folderTwo、folderThree和folderFour的文件夹:mkdir folderTwo folderThree folderFour
- 新建多级文件夹:mkdir -p a/b/c
touch:创建新文件或更新现有文件的时间戳。
- 创建一个名为file.txt的空文件:touch file.txt
- 创建一个名为file.txt的新文件,并更改其时间戳:touch -t 202201010101 file.txt
cat:查看文件内容。
- 显示文件内容:cat file.txt
- 显示多个文件的内容:cat file1 file2 file3
- 创建新文件:cat > newfile.txt
- 连接文件:cat file1 file2 > mergedfile.txt
less:以分页方式查看文件内容。
- 显示文件的最后10行:less file.txt
- 显示文件的最后5行:less -n 5 file.txt
tail:查看文件的末尾几行。
- 显示文件的最后10行:tail file.txt
- 显示文件的最后5行:tail -n 5 file.txt
- 实时查看文件的内容:tail -f file.txt
注:++tail命令用于查看文件的尾部内容,而less命令用于查看文件的内容。tail命令一次显示文件的最后几行,而less命令可以滚动浏览文件并支持搜索和编辑。++
head:查看文件的开头几行。
- 查看文件前5行:head -n 5 file.txt
head命令和tail命名其他地方并无很大差别,此处不再列举
grep:在文件中查找指定的字符串。
- 在文件中查找一个特定的字符串或者样式:grep "search_string" file_name
- 在多个文件中查找一个特定的字符串或者样式:grep "search_string" file1 file2 file3
- 在文件中查找一个特定的字符串或者样式,并显示行号:grep -n "search_string" file_name
- 在文件中查找一个特定的字符串或者样式,并显示行号和内容:grep -n "search_string" file_name
- 在文件中查找一个特定的字符串或者样式,但不显示行号:grep -v "search_string" file_name
find:在目录中查找文件。
- 在当前目录下查找名为file.txt的文件:find . -name file.txt
- 在当前目录及其子目录下查找所有后缀为.c的文件:find . -name "*.c"
- 在当前目录及其子目录中查找所有文件:find . -type f
- 在当前目录及其子目录下查找所有以.txt结尾的文件,并显示行号:grep -n "some_string" $(find . -name "*.txt")
chmod:更改文件或目录的权限。
- 使文件只读:
chmod 444 file.txt
- 使文件只写:
chmod 222 file.txt
- 使文件只有执行权限:
chmod 111 file.txt
- 删除文件所有者的写权限:
chmod 777 file.txt
,然后设置新权限为644(即所有者可读写,其他人只能读)chmod 644 file.txt
chown:更改文件或目录的所有者和所属组。
- 将文件file.txt的拥有者改为user1:
chown user1 file.txt
- 将文件file.txt的拥有者改为user1,同时将其所属组改为group1:
chown user1:group1 file.txt
- 将目录dir1及其下所有文件的拥有者改为user1:
chown -R user1 dir1
ps:显示当前正在运行的进程。
- 不带任何选项的ps命令,显示当前shell中正在运行的进程:
ps
- 显示所有进程的状态,包括进程ID、TTY、CPU使用率、内存使用率、启动时间、运行时间和命令名等信息:
ps aux
- 显示某个特定进程的状态,例如进程ID为1234:
ps -p 1234
top:实时显示系统资源使用情况。
- 显示某个特定进程的状态,例如进程ID为1234:
top -p 1234
- 显示某个特定进程的资源占用情况,例如CPU和内存占用率:
top -p 1234 -o %cpu,%mem
tar:打包或解压缩文件。
- 将/etc/目录和/root/anaconda-ks.cfg文件打包成一个名为myarchive.tar的归档文件:
tar -cvf myarchive.tar /etc /root/anaconda-ks.cfg
- 列出myarchive.tar归档文件中包含的文件:
tar -tvf myarchive.tar
- 从myarchive.tar归档文件中提取所有.txt后缀的文件:
tar -xvzf myarchive.tar *.txt
注:++1. -xvzf 参数中:-x 是指提取文件,v 是显示详细信息,z 是使用 gzip 压缩,f 是指定归档文件名。所以 -xvzf 的意思是:提取文件并显示详细信息,同时使用 gzip 压缩 。++
++2. -tvf 的意思是:列出归档文件中包含的文件,同时显示详细信息。++