前言:目前关于 Linux 命令的文章往往存在内容不全的问题,导致初学者和中级用户在使用过程中遇到困难。许多文章仅涵盖基础命令,而缺乏对系统管理、网络配置、包管理和脚本编写等重要主题的详细讲解。此外,实际操作中的常见问题及其解决方案也常常未被提及,使得用户在遇到困难时无法找到有效的参考。
为了弥补这一不足,需要一份更为全面的 Linux 命令指南,涵盖从基础到高级的各种命令使用,以及实际应用场景中的技巧与建议。这样的资源不仅能够帮助用户快速上手,还能提升他们对系统管理和自动化的理解,从而在实际工作中更加得心应手。丰富的示例和实用技巧将为用户的学习之路提供极大帮助。整理不易,读友们点点赞和一手关注,你们的支持就是我免费更新文章的动力。
文件和目录操作
1. ls用于列出目录中的文件和子目录(如果参数没有指定目录,默认当前目录)
ls [选项] [文件或目录]
sqd@sqd-virtual-machine:~/ls_test$ ls
test01.c test02.c test04 test05
常用选项
1)-a
:显示所有文件,包括以点 .
开头的隐藏文件(通常主目录中的隐藏文件和目录包含该用户程序访问的设置或数据,它们不打算让用户编辑)
sqd@sqd-virtual-machine:~/ls_test$ ls -a
. .. test01.c test02.c .test03 test04 test05
2)-l
:以长格式显示文件信息,包括权限、链接数、所有者、组、文件大小和最后修改时间。通常结合其他一起使用
与 -h 一起使用时,显示可读性更强的文件大小(如 KB、MB)。
sqd@sqd-virtual-machine:~/ls_test$ ls -lh
总用量 12K
-rw-r--r-- 1 sqd sqd 4.0K 11月 3 21:41 test01.c
-rw-r--r-- 1 sqd sqd 41 11月 3 21:37 test02.c
-rw-r--r-- 1 sqd sqd 0 9月 20 2023 test04
drwxrwxr-x 2 sqd sqd 4.0K 11月 3 21:37 test05
与 -S 一起使用时,列出所有文件,按大小排序。
sqd@sqd-virtual-machine:~/ls_test$ ls -lS
总用量 12
drwxrwxr-x 2 sqd sqd 4096 11月 3 21:37 test05
-rw-r--r-- 1 sqd sqd 4079 11月 3 21:41 test01.c
-rw-r--r-- 1 sqd sqd 41 11月 3 21:37 test02.c
-rw-r--r-- 1 sqd sqd 0 9月 20 2023 test04
与 -t 一起使用时,按修改时间排序,最近修改的文件排在前面。
sqd@sqd-virtual-machine:~/ls_test$ ls -lt
总用量 12
-rw-r--r-- 1 sqd sqd 4079 11月 3 21:41 test01.c
drwxrwxr-x 2 sqd sqd 4096 11月 3 21:37 test05
-rw-r--r-- 1 sqd sqd 41 11月 3 21:37 test02.c
-rw-r--r-- 1 sqd sqd 0 9月 20 2023 test04
3)-R
:递归列出所有子目录及其内容
sqd@sqd-virtual-machine:~/ls_test$ ls -R
.:
test01.c test02.c test04 test05
./test05:
文本文档.txt
2.cd 是 Linux 系统中用来更改当前工作目录的命令。以"/"开头的目录就是绝对路径。
cd [目录名]
1)切换到指定目录
sqd@sqd-virtual-machine:~/ls_test$ cd /home/sqd/ls_test/cd_test
sqd@sqd-virtual-machine:~/ls_test/cd_test$
2)切换到上一级目录
sqd@sqd-virtual-machine:~/ls_test/cd_test$ cd ..
sqd@sqd-virtual-machine:~/ls_test$
3)切换到用户的主目录
sqd@sqd-virtual-machine:~/ls_test$ cd
sqd@sqd-virtual-machine:~$
4)切换到当前目录的子目录
sqd@sqd-virtual-machine:~$ cd ls_test
sqd@sqd-virtual-machine:~/ls_test$
3.pwd表示 "print working directory",用于显示当前的工作目录路径。
sqd@sqd-virtual-machine:~/ls_test$ pwd
/home/sqd/ls_test
4.mkdir命令,用于创建新目录。
mkdir [选项] 目录名
1)创建一个目录
sqd@sqd-virtual-machine:~/ls_test$ mkdir mkdir_test
sqd@sqd-virtual-machine:~/ls_test$ cd mkdir_test
sqd@sqd-virtual-machine:~/ls_test/mkdir_test$
2)创建多个目录
sqd@sqd-virtual-machine:~/ls_test$ mkdir mkdir_test01 mkdir_test02 mkdir_test03
sqd@sqd-virtual-machine:~/ls_test$ ls
cd_test mkdir_test mkdir_test01 mkdir_test02 mkdir_test03 test01.c test02.c test04 test05
3)需要使用 -p 创建嵌套目录
sqd@sqd-virtual-machine:~/ls_test$ mkdir -p mkdir_test04/next
sqd@sqd-virtual-machine:~/ls_test$ ls -R
.:
cd_test mkdir_test mkdir_test01 mkdir_test02 mkdir_test03 mkdir_test04 test01.c test02.c test04 test05
./cd_test:
./mkdir_test:
./mkdir_test01:
./mkdir_test02:
./mkdir_test03:
./mkdir_test04:
next
./mkdir_test04/next:
./test05:
文本文档.txt
5.rm 命令,用于删除文件或目录
rm [选项] 文件名
1)删除一个文件
sqd@sqd-virtual-machine:~/ls_test$ ls
cd_test mkdir_test mkdir_test04 test01.c test02.c test04 test05
sqd@sqd-virtual-machine:~/ls_test$ rm test01.c
sqd@sqd-virtual-machine:~/ls_test$ ls
cd_test mkdir_test mkdir_test04 test02.c test04 test05
2)-r:递归删除,删除目录及其包含的所有文件和子目录
sqd@sqd-virtual-machine:~/ls_test$ ls
cd_test mkdir_test mkdir_test04 test02.c test04 test05
sqd@sqd-virtual-machine:~/ls_test$ rm -r mkdir_test
sqd@sqd-virtual-machine:~/ls_test$ ls
cd_test mkdir_test04 test02.c test04 test05
3)-f:强制删除,不提示确认
sqd@sqd-virtual-machine:~/ls_test$ ls
cd_test mkdir_test04 test02.c test04 test05
sqd@sqd-virtual-machine:~/ls_test$ rm -f test02.c
sqd@sqd-virtual-machine:~/ls_test$ ls
cd_test mkdir_test04 test04 test05
6.cp命令用于复制文件和目录
cp [选项] 源文件 目标文件
1)复制一个文件到另一个位置(建议使用绝对路径)
sqd@sqd-virtual-machine:~$ cp /home/sqd/ls_test/test01.c /home/sqd/cp_test
sqd@sqd-virtual-machine:~$ ls /home/sqd/cp_test
test01.c
2)复制多个文件到一个目录
sqd@sqd-virtual-machine:~$ cp /home/sqd/ls_test/test01.c /home/sqd/ls_test/test02.c /home/sqd/cp_test
sqd@sqd-virtual-machine:~$ ls /home/sqd/cp_test
test01.c test02.c
3)-r:复制文件目录及其内容
sqd@sqd-virtual-machine:~$ cp -r /home/sqd/ls_test/test05 /home/sqd/cp_test
sqd@sqd-virtual-machine:~$ ls /home/sqd/cp_test
test01.c test02.c test05
4)-i:在覆盖文件前提示确认
sqd@sqd-virtual-machine:~$ cp -i /home/sqd/ls_test/test01.c /home/sqd/cp_test/
cp:是否覆盖'/home/sqd/cp_test/test01.c'? y
7.mv 命令用于移动或重命名文件和目录。
1)移动文件或目录
移动文件
sqd@sqd-virtual-machine:~$ mv /home/sqd/ls_test/test01.c /home/sqd/mv_test
sqd@sqd-virtual-machine:~$ ls /home/sqd/mv_test
test01.c
移动目录
sqd@sqd-virtual-machine:~$ mv /home/sqd/ls_test/test05 /home/sqd/mv_test
sqd@sqd-virtual-machine:~$ ls /home/sqd/mv_test
test01.c test05
2)重命名文件或目录
sqd@sqd-virtual-machine:~$ mv /home/sqd/mv_test/test01.c /home/sqd/mv_test/test01_new.c
sqd@sqd-virtual-machine:~$ ls /home/sqd/mv_test
test01_new.c test05
8.touch 命令用于创建空文件或更新已有文件的时间戳(mkdir是创建目录的)
1)创建一个新的空文件
sqd@sqd-virtual-machine:~$ touch /home/sqd/touch_test/test01.c
sqd@sqd-virtual-machine:~$ ls /home/sqd/touch_test
test01.c
2)如果文件已存在,touch 会更新该文件的最后访问和修改时间戳
sqd@sqd-virtual-machine:~$ ls -lh /home/sqd/touch_test/test01.c
-rw-rw-r-- 1 sqd sqd 0 11月 4 10:44 /home/sqd/touch_test/test01.c
sqd@sqd-virtual-machine:~$ touch /home/sqd/touch_test/test01.c
sqd@sqd-virtual-machine:~$ ls -lh /home/sqd/touch_test/test01.c
-rw-rw-r-- 1 sqd sqd 0 11月 4 10:47 /home/sqd/touch_test/test01.c
9.cat 命令常用于查看文本文件的内容、合并多个文件,或者创建新文件
1)创建一个新文件
sqd@sqd-virtual-machine:~$ cat > /home/sqd/cat_test/test01.c
hellow world\n # 输入内容,按 Ctrl+D 结束
2)显示文件内容
sqd@sqd-virtual-machine:~$ cat /home/sqd/cat_test/test01.c
hellow world\n
3)合并多个文件
sqd@sqd-virtual-machine:~/cat_test$ cat test01.c test02.c > test03.c
sqd@sqd-virtual-machine:~/cat_test$ ls
test01.c test02.c test03.c
sqd@sqd-virtual-machine:~/cat_test$ cat test03.c
hellow world\n china
10.chmod 是用于修改文件或目录权限的命令
chmod [选项] 模式 文件名
权限类型(只能使用八进制方式修改权限):
r:读权限 (read) =4
w:写权限 (write) =2
x:执行权限 (execute) =1
权限的三种角色
u:文件所有者 (user)
g:用户组 (group)
o:其他用户 (others)
文件所有者:就是当前建立文件的用户
用户组:和文件所有者处于同一个组的其他用户,sqd用户属于多个组
表示用户 sqd 拥有相当多的权限,特别是通过 sudo 组。
sqd@sqd-virtual-machine:~$ groups sqd
sqd : sqd adm cdrom sudo dip plugdev lpadmin sambashare
1)设置文件权限
sqd@sqd-virtual-machine:~$ ls -lh /home/sqd/ls_test/test02.c
-rw-rw-r-- 1 sqd sqd 0 11月 3 22:47 /home/sqd/ls_test/test02.c
sqd@sqd-virtual-machine:~$ chmod 774 /home/sqd/ls_test/test02.c#修改为其他用户只读
sqd@sqd-virtual-machine:~$ ls -lh /home/sqd/ls_test/test02.c
-rwxrwxr-- 1 sqd sqd 0 11月 3 22:47
2)-R:设置目录 及其所有子项设置读、写、执行权限
sqd@sqd-virtual-machine:~$ chmod -R 777 /home/sqd/ls_test
sqd@sqd-virtual-machine:~$ ls -lh /home/sqd/ls_test/test02.c
-rwxrwxrwx 1 sqd sqd 0 11月 3 22:47
11.chown命令改变文件或目录的所有者
sqd@sqd-virtual-machine:~$ ls -lh /home/sqd/ls_test/test02.c
-rwxrwxrwx 1 sqd sqd 0 11月 3 22:47
sqd@sqd-virtual-machine:~$ sudo chown new_sqd /home/sqd/ls_test/test02.c
sqd@sqd-virtual-machine:~$ ls -lh /home/sqd/ls_test/test02.c
-rwxrwxrwx 1 new_sqd sqd 0 11月 3 22:47
12.find 命令用于在目录层次结构中查找文件和目录。它功能强大,支持多种查找条件和操作
find [路径] [选项] [查找条件]
1)在当前目录及其子目录中查找文件(尽量缩小范围,大范围搜索会很慢)
sqd@sqd-virtual-machine:~$ find /home/sqd/ls_test -name test02.c
/home/sqd/ls_test/test02.c
2)按文件名查找(不区分大小写)
sqd@sqd-virtual-machine:~$ find /home/sqd/ls_test -iname test02.c
/home/sqd/ls_test/TEST02.C
/home/sqd/ls_test/test02.c
13.which命令查找可执行文件的路径,通常用于查找命令(速度快,查找命令推荐使用,因为它是直接到PATH目录中查找)
sqd@sqd-virtual-machine:~$ which pwd
/bin/pwd
14.grep命令主要用于文本搜索
sqd@sqd-virtual-machine:~$ grep "China" /home/sqd/ls_test/test02.c
China - 中国
15.vim 是一个比vi功能更强大的文本编辑器
启动:在终端中输入 vim filename 来打开文件。
三种模式:
普通模式:启动后默认模式,使用快捷键进行导航和操作。
插入模式:按 i 进入,开始编辑文本,ESC回到普通模式。
命令模式:普通模式下按 : 进入,可以输入命令。
普通模式下操作有:
移动光标:
h:左
j:下
k:上
l:右
编辑文本:
i:插入模式(在光标前插入)。
a:插入模式(在光标后插入)。
o:在当前行下插入新行。
删除文本:
x:删除光标所在的字符。
dd:删除整行。
撤销与重做:
u:撤销上一步操作。
Ctrl + r:重做操作。
命令模式下操作有:
保存文件
:w:保存当前文件。
退出
:q:退出 vim(如果没有更改)。
:q!:强制退出(不保存更改)。
:wq 或 :x:保存并退出。
显示行号
:set number:显示行号。
:set nonumber:隐藏行号。
16.zip 是一个用于创建和管理 ZIP 文件的命令行工具
要将多个文件或目录压缩成一个 ZIP 文件,使用以下命令:
zip archive.zip file1 file2 directory/*
archive.zip:你要创建的 ZIP 文件的名称。
file1、file2:要压缩的文件。
directory/*:要压缩的目录中的所有文件。
要解压 ZIP 文件,可以使用以下命令:
unzip archive.zip
17.tar 是一个用于打包和解压文件的命令行工具(与压缩工具结合使用时,压缩效果好,适合大文件的处理)
1)打包文件
tar -cvf archive.tar file1 file2 directory/
2)打包并压缩(与gzip一起使用)
tar -czvf archive.tar.gz file1 file2 directory/
3)解压归档文件
要解压 .tar 文件,使用 -x(extract)选项
tar -xvf archive.tar
要解压 tar.gz文件
tar -xzvf archive.tar.gz # 解压 .tar.gz
要解压 tar.bz2 文件
tar -xjvf archive.tar.bz2 # 解压 .tar.bz2
结语:文件和目录操作命令基本都在上面了,还有些极少用的命令和用法就不过多赘述了。后续会发文更新其他类型的命令,读友们有什么问题请及时在评论区和我交流,都会及时回复的。
标签:用例,virtual,machine,命令,ls,linux,test,home,sqd From: https://blog.csdn.net/qq_69923281/article/details/143471130