Linux常用命令

Linux常用命令(一)

一.基本命令

关机

关机可以使用shutdownpoweroff来实现。

shutdown -h <minutes> #代表minutes分钟后关机
shutdown -h 5	#5分钟后关机
shutdown -h now && poweroff #二者等价,都代表立即关机

重启

shutdown或者reboot命令可以重启。

shutdown -r now #用法同上,参数换成-r即可。
reboot #立即重启

查看帮助

可以使用--help或者man(不是男人,是manual的简写)。

shutdown --help #查看shutdown命令的说明
man shutdown 	#打开命令说明书之后,使用按键 q 退出

二.目录操作

切换目录

cd即change directory的首字母。

cd /path/to/target			# 切换到/path/to/target目录

也可以这样使用:

cd /			# 切换到根目录
cd ..			# 切换到上级目录
cd ~       		# 切换到 home 目录
cd -       		# 切换到上次访问的目录

查看内容

ls命令可以查看某一目录下的内容,用法如下:

ls			  	# 查看当前目录下的所有目录和文件
ls -a			# 查看当前目录下的所有目录和文件(包含隐藏文件)
ls -l			# 查看当前目录下的所有目录和文件(列表,包含更多信息)
ll				# 同上
ls /usr		 	# 查看指定目录 /usr 下的所有目录和文件

增删改查

1.增:新建目录

mkdir意即make directories,该命令用于新建一个文件夹,如:

mkdir build	#在当前目录下新建build目录

2.删:删除目录

rm即remove的意思,可以删除某目录(也可以删除文件)。基本用法如下:

rm [选项] 文件名

我们常常这样使用:

rm -rf build	#删除build目录

其中-r表示recursive,递归删除,即删掉该目录下的所有内容。

-f表示force,强制删除,无论文件是否存在,或是否为只读,都会执行删除操作,不会出现任何提示。

我们可以组合选项,将-f -r 合并为-rf

这时候你应该就能看懂这个了:

rm -rf /* 	#删完删完~

3.改:目录移动/复制/重命名

mv命令,意思就是move嘛,用于移动某目录(相当于剪切+粘贴),基本用法如下:

mv <old_path/folder_or_file> <new_path>		# 将 folder_or_file 从 <old_path> 移动到 <new_path>

mv还可以进行重命名操作,其实就是在相同目录的移动。

mv scr dst		#把src重命名为dst

cp,意思就是copy,用于复制某目录到指定目录。

cp <path/of/file> <target_folder> 		# 将文件 <path/of/file> 拷贝到 <target_folder>
cp -r <path/of/folder> <target_path>	# 将目录 <path/of/folder> 拷贝到 <target_path>

其中的-r参数表示递归复制,即复制目录下的所有文件。

4.查:搜索目录

find命令用于搜索某指定的目录,如:

find /usr/tmp -name 'a*'		# 查找 /usr/tmp 目录下的所有以 a 开头的目录或文件

三.文件命令

增删改查

1.增:新建文件

i. touch 命令

touch 命令可以用来创建一个空文件。如果文件已存在,它会更新该文件的时间戳。

touch filename.txt
ii. echo 命令

可以通过 echo 命令来创建一个新文件,并同时写入内容。使用重定向符号 > 可以将输出写入到文件中。

echo "Hello, World!" > newfile.txt

如果文件已存在,这将覆盖文件内容。如果想要附加内容而不覆盖文件,可以使用 >>

echo "Another line." >> newfile.txt
iii. 使用文本编辑器

也可以使用文本编辑器(如 nanovivim)来创建新文件。这些编辑器允许你编辑文件内容并保存,我们会在修改文件部分详细讲解命令行中的文本编辑器。

  • 使用 nano 编辑器:
nano myfile.txt
  • 使用 vivim 编辑器:
vi myfile.txt

在打开的编辑器中,可以输入内容,按照所用编辑器的保存与退出命令保存文件。

总结一下~:

touch file1.txt              # 创建空文件
echo "Hello, World!" > file2.txt   # 创建文件并写入内容
cat > file3.txt              # 创建文件并允许输入内容
nano file4.txt               # 使用 nano 创建文件
vi file5.txt                 # 使用 vi 或 vim 创建文件

2.删:删除文件

上文提到过,rm命令也可以用于删除文件。

rm <file> 		# 删除文件 file
rm -f <file>	# 删除文件 file 且不询问

3.修改文件

我们着重讲解vi/vim这种编辑器。

vivim 是两种文本编辑器,它们的基本功能和区别如下:

  • vi:是最初的视觉编辑器,功能相对简单,提供基本的文本编辑功能,如插入文本、删除文本和简单的文件导航。
  • vim(“Vi IMproved” 的缩写):是在 vi 的基础上开发的,更为强大和灵活,提供了许多额外的功能,如语法高亮、自动补全、分屏编辑、扩展插件支持等。
如何使用Vim呢?
Vim的基本操作模式

首先我们要知道,vim有三种状态:

  • vim 有三种主要模式:

    1. 普通模式(Normal Mode):进入 vim 的默认模式,使用命令。
    2. 插入模式(Insert Mode):用于插入文字。
    3. 命令模式(Command-Line Mode):用于输入命令。
    在不同模式之间切换
    • 从普通模式进入插入模式
      • i:在光标前插入。
      • I:在行首插入。
      • a:在光标后插入。
      • A:在行尾插入。
      • o:在当前行下方新建一行并插入。
    • 从插入模式返回普通模式
      • Esc 键。
    • 进入命令模式
      • 从普通模式下,按 : 进入。
    常见操作
    • 移动光标

      • h:左
      • j:下
      • k:上
      • l:右
      • 其他快捷方式:例如 G 表示到达文件末尾,gg 表示到达文件开头。
    • 保存文件

      • 在命令模式下输入:

        :w		#表示write,写入文件,即保存。
        
    • 退出 vim

      • 在命令模式下输入:

        :q		#直接quit
        
    • 保存并退出

      • 在命令模式下输入:

        :wq		#意思就是write并且quit
        
    • 强制退出(不保存更改)

      • 在命令模式下输入:

        :q!		#!表示强制,意思就是强制quit(并不wirte写入)
        
    常用命令
    • 撤销操作

      • u(意思是undo,撤销)(普通模式)撤销最后的操作。
    • 重做操作

      • Ctrl + r(普通模式)重做最后的撤销。
    • 搜索文本

      • 在命令模式下输入 / 后跟要搜索的文本,然后按 Enter。如,搜索114514:

        /114514
        
    • 替换文本

      • 在命令模式下输入:

        :%s/old/new/g
        

        这将替换文件中所有的old为new

4.查:查找文件

还是上文介绍过的find命令~,基本语法如下:

find [搜索路径] [搜索条件] [操作]
  1. 按文件名查找
    find /path/to/search -name "filename.txt"
    

    这将从 /path/to/search 开始查找名为 filename.txt 的文件。-name 是用于查找文件名的选项。

  2. 按部分文件名查找
    find /path/to/search -name "*.txt"
    

    这将查找所有以 .txt 结尾的文件。使用通配符 * 可以匹配多个字符。

  3. 不区分大小写地查找
    find /path/to/search -iname "filename.txt"
    

    -iname 选项用于不区分大小写地查找文件名。

  4. 查找特定类型的文件
    find /path/to/search -type f -name "filename.txt"
    

    这里 -type f 指定查找常规文件(不包括目录)。如果需要查找目录,可以使用 -type d

  5. 查找修改时间在一定范围内的文件
    find /path/to/search -mtime -7
    

    这将查找在过去 7 天内修改过的文件。-mtime 后面跟的是相对天数,- 表示“小于”,+ 表示“大于”。

  6. 查找并执行操作
    find /path/to/search -name "*.log" -exec rm {} \;
    

    这条命令将查找所有 .log 文件并执行删除操作,具体解释如下:

    • -exec 选项用于对找到的每个文件执行指定的命令,它允许用户使用 find 找到的文件作为参数,执行任意的操作。
    • {} 是当前找到的文件的占位符。
    • \; 用于结束 -exec 命令。
  7. 查找某个目录下的所有文件和子目录
    find /path/to/search -print
    

    其中-print 选项用于显示找到的每个文件或目录。

find 命令也可以组合使用不同的条件。例如,查找特定类型的文件并按名称过滤:

find /path/to/search -type f -name "*.txt" -o -name "*.md"

这将查找 .txt.md 类型的文件。

文件权限

现在我们着重介绍一下Linux中文件的权限的小知识XD~

i.权限类型

在 Linux 中,每个文件和目录都有与之相关的权限,这些权限控制了用户对文件或目录的访问和操作。权限主要分为三种类型,分别是:

  1. 读权限 ®
    • 允许用户读取文件的内容或查看目录中的文件列表。
    • 对文件来说,读权限表示可以读取文件内容。
    • 对目录来说,读权限允许列出该目录中的文件和子目录。
  2. 写权限 (w)
    • 允许用户修改文件的内容或在目录中添加、删除文件。
    • 对文件来说,写权限表示可以更改文件内容。
    • 对目录来说,写权限允许在该目录中创建新文件或删除现有文件。
  3. 执行权限 (x)
    • 允许用户执行文件或进入目录
    • 对文件来说,执行权限表示可以运行该文件(如果是可执行文件)。
    • 对目录来说,执行权限允许进入该目录并能够访问其子目录。即使没有读权限,也可以通过执行权限访问目录内的文件,只要知道文件名。

ii.权限结构

在 Linux 中,权限是针对三类用户设置的:

  1. 文件所有者 (Owner)
    • 文件或目录的创建者,通常拥有该文件的所有权限。
  2. 所属组 (Group)
    • 文件或目录的用户组,组中的用户可以共享一定的权限。
  3. 其他用户 (Others)
    • 除了文件所有者和所属组外的所有其他用户。

iii.权限表示

权限常用的表示形式是一个 10 字符的字符串,通常看起来像这样:

-rwxr-xr-- 

每个字符的含义如下:

  • 第一个字符表示文件类型(- 表示文件,d 表示目录)。
  • 接下来的三个字符表示文件所有者(Owner)的权限(rwx 分别表示读、写和执行权限)。
  • 中间的三个字符表示所属组(Group)的权限。
  • 最后三个字符表示其他用户(Others)的权限。
补充:权限的八进制表示法

在Linux中,权限也可以用数字表示,通常称为八进制表示法,每种权限(读、写、执行)都有一个对应的数字:

  • 读权限 ® = 4
  • 写权限 (w) = 2
  • 执行权限 (x) = 1

可以将这些数字相加以表示不同的权限组合。例如:

  • 只有读权限:4
  • 只有写权限:2
  • 只有执行权限:1
  • 读和写权限:4 + 2 = 6
  • 读和执行权限:4 + 1 = 5
  • 写和执行权限:2 + 1 = 3
  • 读、写和执行权限:4 + 2 + 1 = 7

因此,文件的权限可以用三个数字来表示,表示分别对应于文件所有者、所属组和其他用户的权限。例如:

  • 权限755:
    • 文件所有者有读、写、执行权限(7 = 4 + 2 + 1)
    • 所属组有读、执行权限(5 = 4 + 1)
    • 其他用户有读、执行权限(5 = 4 + 1)

Ⅳ.修改权限

可以使用chmod命令来修改文件或目录的权限。

上文讲过,权限可以用两种方式来设置:

  • 数字方式:使用0-7的数字表示权限。
  • 符号方式:使用字母表示权限。

我们可以使用数字直接指定修改后的权限:

chmod 755 file.txt

而在符号方式中,使用字母表示用户、权限和操作:

  • 用户类型:
    • u 代表文件所有者 (user)
    • g 代表文件所属组 (group)
    • o 代表其他用户 (others)
    • a 代表所有用户 (all)
  • 权限类型:
    • r 代表读权限 (read)
    • w 代表写权限 (write)
    • x 代表执行权限 (execute)
  • 操作符:
    • + 表示添加权限
    • - 表示移除权限
    • = 表示设置特定权限

例如:

  • 添加权限

    chmod u+x file.txt   # 为文件所有者添加执行权限
    
  • 添加执行权限:

    chmod u+x file.txt
    
  • 移除写权限:

    chmod g-w file.txt
    
  • 删除权限:

    chmod go-w file.txt  # 移除组用户和其他用户的写权限
    
  • 设置权限为只读:

    chmod a=r file.txt
    
常用选项:
  • -R:递归地改变目录及其内容的权限。例如:
chmod -R 755 /path/to/directory
判断文件状态:

可以使用 ls -l 命令查看文件或目录的当前权限。例如:

ls -l file.txt

这个命令将显示文件的权限、文件所有者、组和其他信息。

四.压缩/解压缩

在 Linux 中,有多种工具可以用来压缩和解压缩文件。下面将会列举一些常用的工具及其使用方法。

tar 命令

tar(Tape Archive)是最常用的文件归档工具,可以将多个文件和目录打包为一个文件,并且可以进行压缩。

在Linux中,打包文件的后缀为 .tar ;压缩文件的后缀为 .gz.bz2这取决于压缩方式 ;打包并压缩的文件后缀为 .tar.gz.tar.bz2

常用参数

  1. -c (create)
    • 创建一个新的归档文件,即进行打包。
    • 示例:tar -cvf archive_name.tar /path/to/files
  2. -x (extract)
    • 从归档文件中提取文件,即进行解压缩
    • 示例:tar -xvf archive_name.tar
  3. -v (verbose)
    • 显示运行过程中的详细信息(例如,在创建或提取文件时列出文件名)。
    • 示例:tar -cvf archive_name.tar /path/to/files
  4. -f (file)
    • 指定归档文件的名称。该参数必须紧跟在命令之后。
    • 示例:tar -cf archive_name.tar /path/to/files
  5. -z (gzip)
    • 通过 gzip 压缩归档文件。适用于 .tar.gz.tgz 文件。
    • 示例:tar -czvf archive_name.tar.gz /path/to/files
  6. -j (bzip2)
    • 通过 bzip2 压缩归档文件,适用于 .tar.bz2 文件。
    • 示例:tar -cjvf archive_name.tar.bz2 /path/to/files
  7. -J (xz)
    • 通过 xz 压缩归档文件,适用于 .tar.xz 文件。
    • 示例:tar -cJvf archive_name.tar.xz /path/to/files

压缩文件

  • 创建一个tar归档文件(不压缩):

    tar -cvf archive_name.tar /path/to/directory_or_file
    
  • 创建一个带有 gzip 压缩的 tar 归档文件:

    tar -czvf archive_name.tar.gz /path/to/directory_or_file
    
  • 创建一个带有 bzip2 压缩的 tar 归档文件:

    tar -cjvf archive_name.tar.bz2 /path/to/directory_or_file
    

解压文件

  • 解压缩 tar 归档文件:

    tar -xvf archive_name.tar
    
  • 解压缩 gzip 压缩的 tar 归档文件:

    tar -xzvf archive_name.tar.gz
    
  • 解压缩 bzip2 压缩的 tar 归档文件:

    tar -xjvf archive_name.tar.bz2
    

当然压缩/解压文件也可以直接使用gzipbzip2zipunzip等命令,不过使用上面阐述的命令即可,在此不做赘述。

五.用户命令

我们这里介绍一个sudo命令,这是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。

需要注意的是,Ubuntu是不允许使用root账户登陆的,所以想要使用root权限只能使用sudo命令。

sudo [其他命令]

(Constructing…)


Linux常用命令
https://avisun.moe/archives/linux_cmd_basic
作者
Sunster
发布于
2025年10月25日
许可协议