Linux常用命令
Linux常用命令(一)
一.基本命令
关机
关机可以使用shutdown或poweroff来实现。
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. 使用文本编辑器
也可以使用文本编辑器(如 nano、vi 或 vim)来创建新文件。这些编辑器允许你编辑文件内容并保存,我们会在修改文件部分详细讲解命令行中的文本编辑器。
- 使用
nano编辑器:
nano myfile.txt
- 使用
vi或vim编辑器:
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这种编辑器。
vi 和 vim 是两种文本编辑器,它们的基本功能和区别如下:
vi:是最初的视觉编辑器,功能相对简单,提供基本的文本编辑功能,如插入文本、删除文本和简单的文件导航。vim(“Vi IMproved” 的缩写):是在vi的基础上开发的,更为强大和灵活,提供了许多额外的功能,如语法高亮、自动补全、分屏编辑、扩展插件支持等。
如何使用Vim呢?
Vim的基本操作模式
首先我们要知道,vim有三种状态:
-
vim有三种主要模式:- 普通模式(Normal Mode):进入
vim的默认模式,使用命令。 - 插入模式(Insert Mode):用于插入文字。
- 命令模式(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
-
- 普通模式(Normal Mode):进入
4.查:查找文件
还是上文介绍过的find命令~,基本语法如下:
find [搜索路径] [搜索条件] [操作]
-
按文件名查找
find /path/to/search -name "filename.txt"这将从
/path/to/search开始查找名为filename.txt的文件。-name是用于查找文件名的选项。 -
按部分文件名查找
find /path/to/search -name "*.txt"这将查找所有以
.txt结尾的文件。使用通配符*可以匹配多个字符。 -
不区分大小写地查找
find /path/to/search -iname "filename.txt"-iname选项用于不区分大小写地查找文件名。 -
查找特定类型的文件
find /path/to/search -type f -name "filename.txt"这里
-type f指定查找常规文件(不包括目录)。如果需要查找目录,可以使用-type d。 -
查找修改时间在一定范围内的文件
find /path/to/search -mtime -7这将查找在过去 7 天内修改过的文件。
-mtime后面跟的是相对天数,-表示“小于”,+表示“大于”。 -
查找并执行操作
find /path/to/search -name "*.log" -exec rm {} \;这条命令将查找所有
.log文件并执行删除操作,具体解释如下:-exec选项用于对找到的每个文件执行指定的命令,它允许用户使用find找到的文件作为参数,执行任意的操作。{}是当前找到的文件的占位符。\;用于结束-exec命令。
-
查找某个目录下的所有文件和子目录
find /path/to/search -print其中
-print选项用于显示找到的每个文件或目录。
find 命令也可以组合使用不同的条件。例如,查找特定类型的文件并按名称过滤:
find /path/to/search -type f -name "*.txt" -o -name "*.md"
这将查找 .txt 和 .md 类型的文件。
文件权限
现在我们着重介绍一下Linux中文件的权限的小知识XD~
i.权限类型
在 Linux 中,每个文件和目录都有与之相关的权限,这些权限控制了用户对文件或目录的访问和操作。权限主要分为三种类型,分别是:
- 读权限 ®:
- 允许用户读取文件的内容或查看目录中的文件列表。
- 对文件来说,读权限表示可以读取文件内容。
- 对目录来说,读权限允许列出该目录中的文件和子目录。
- 写权限 (w):
- 允许用户修改文件的内容或在目录中添加、删除文件。
- 对文件来说,写权限表示可以更改文件内容。
- 对目录来说,写权限允许在该目录中创建新文件或删除现有文件。
- 执行权限 (x):
- 允许用户执行文件或进入目录。
- 对文件来说,执行权限表示可以运行该文件(如果是可执行文件)。
- 对目录来说,执行权限允许进入该目录并能够访问其子目录。即使没有读权限,也可以通过执行权限访问目录内的文件,只要知道文件名。
ii.权限结构
在 Linux 中,权限是针对三类用户设置的:
- 文件所有者 (Owner):
- 文件或目录的创建者,通常拥有该文件的所有权限。
- 所属组 (Group):
- 文件或目录的用户组,组中的用户可以共享一定的权限。
- 其他用户 (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 。
常用参数
-c(create)- 创建一个新的归档文件,即进行打包。
- 示例:
tar -cvf archive_name.tar /path/to/files
-x(extract)- 从归档文件中提取文件,即进行解压缩
- 示例:
tar -xvf archive_name.tar
-v(verbose)- 显示运行过程中的详细信息(例如,在创建或提取文件时列出文件名)。
- 示例:
tar -cvf archive_name.tar /path/to/files
-f(file)- 指定归档文件的名称。该参数必须紧跟在命令之后。
- 示例:
tar -cf archive_name.tar /path/to/files
-z(gzip)- 通过
gzip压缩归档文件。适用于.tar.gz或.tgz文件。 - 示例:
tar -czvf archive_name.tar.gz /path/to/files
- 通过
-j(bzip2)- 通过
bzip2压缩归档文件,适用于.tar.bz2文件。 - 示例:
tar -cjvf archive_name.tar.bz2 /path/to/files
- 通过
-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
当然压缩/解压文件也可以直接使用gzip、bzip2、zip、unzip等命令,不过使用上面阐述的命令即可,在此不做赘述。
五.用户命令
我们这里介绍一个sudo命令,这是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。
需要注意的是,Ubuntu是不允许使用root账户登陆的,所以想要使用root权限只能使用sudo命令。
sudo [其他命令]
(Constructing…)