Linux学习-基本命令(一)

本文最后更新于:December 3, 2021 pm

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统。主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版。

Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙。Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。

目录

1.文件管理

1.1 文件类型

符号 文件类型
- 普通文件
d 目录文件
i 链接文件
c 字符设备
b 块设备

1.2 ls 命令

  1. 显示当前目录下所有的文件和文件夹
1
ls
  1. 显示指定目录下所有子目录与文件,包括隐藏文件
1
ls -a

其中,Linux文件或者目录名称最长可以有265个字符,点号(.)表示当前目录,两点(..)表示上一级目录,以点号(.)开头的文件为隐藏文件,需要用 -a 参数才能显示。

  1. 以列表方式显示文件的详细信息
1
ls -i
  1. 配合 -i 以人性化的方式显示文件大小
1
ls -h

1.2.1 通配符

  1. 文件代表文件名中所有字符
1
*
  1. 查找以 te 开头的文件
1
ls te*
  1. 查找结尾为 html 的文件
1
ls *html
  1. 代表文件名中任意一个字符
1
?
  1. 只找 第一个字符任意,后缀为 .c 的文件
1
ls ?.c
  1. 只找 只有 3 个字符,前 2 个字符为 a. ,最后一个字符任意的文件
1
ls a.?
  1. “[“ 和 “]” 将字符组括起来,表示可以匹配字符组中的任意一个。“-” 用于表示字符范围
1
[]
  1. 匹配 a、b、c中任意一个
1
[abc]
  1. 匹配从 a 到 f 范围内的任意一个字符
1
[a-f]
  1. 找到从 a 到 f 范围内的任意一个字符开头的文件
1
ls [a-f]*
  1. 查找文件名为 a-f 的文件,当 “-” 处于方括号之外失去通配符的作用
1
ls a-f
  1. 如果要使通配符作为普通字符使用,可以在其前面加上转义字符。 “?” 和 “*”处于方括号内时不用使用转义字符就失去通配符的作用。
1
\
  1. 查找文件名为 *a 的文件
1
ls \*a

1.3 pwd 命令

显示当前的工作目录。

1
pwd

1.4 cd 命令

切换工作目录。需要注意的是,cd 后面可跟绝对路径,也可以跟相对路径

1.4.1 特色用法

  1. 切换到当前用户的主目录(/home/用户目录),用户登录的时候,默认的目录就是用户的主目录
1
cd
  1. 切换到当前用户的主目录(/home/用户目录)
1
cd ~
  1. 切换到当前目录
1
cd .
  1. 切换到上级目录
1
cd ..
  1. 可进入上次所在的目录
1
cd -

1.5 > 命令

输出重定向,Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

1
ls > tet.txt

需要注意的是,如果文件不存在,则创建,存在则覆盖其内容。

1.6 >> 命令

输出重定向,Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

1
ls >> test.txt

需要注意的是,如果文件不存在,则创建,存在则追加到文件尾部。

1.7 cat 命令

查看或者合并文件内容。

1
cat test1.txt test2.txt > test.txt

1.8 head 命令

查看文件。

  1. 默认显示前 10 行
1
head test.txt
  1. 显示前 n 行
1
head -n test.txt

1.9 tail 命令

查看文件。

  1. 默认显示前 10 行
1
tail test.txt
  1. 显示后 n 行
1
tail -n test.txt

1.10 less 命令

查看文件。

1
less

敲 Enter 键往下走一行,敲空格键,往下走一页,可以向上翻页,键盘上的 pageup,pagedown。

1.11 more 命令

分屏显示,查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用 more 命令,每次只显示一页,按下空格键可以显示下一页,按 q 键退出显示,按 h 键可以获取帮助。

1
more

1.12 wc 命令

一次显示文件行数、字节数、文件名信息。

1
wc

1.13 |(管道) 命令

名称:管道。
一个命令的输出可以通过管道做为另一个命令的输入。
管道 我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 “|” 的左右分为两端,左端塞东西(写),右端取东西(读)。

1
|

1.14 echo 命令

输出内容。

1
echo

1.15 clear 命令

清除终端上的显示。

1
clear

1.16 mkdir 命令

创建一个新的目录(文件夹)。

1
mkdir 

需要注意的是,是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

  1. 递归创建目录
1
mkdir a/b/c/d -p

1.17 touch 命令

创建一个新的普通文件。

1
touch

1.18 rmdir 命令

删除一个目录。需要注意的是,目录必须为空目录。

1
rmdir

1.19 rm 命令

删除文件或目录,删除的文件不能恢复。

1.19.1 参数

  1. -i 以进行交互式方式执行
1
-i
  1. -f 强制删除,忽略不存在的文件,无需提示
1
-f
  1. -r 递归地删除目录下的内容,删除文件夹时必须加此参数
1
-f

1.20 cp 命令

将给出的文件或目录复制到另一个文件或目录中。
格式:

1
cp 文件名 目标目录

1.20.1 选项

  1. -a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性
1
-a
  1. -f 已经存在的目标文件而不提示
1
-f
  1. -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
1
-i
  1. -r 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
1
-r
  1. -v 显示拷贝进度
1
-v

1.21 mv 命令

  1. 移动文件或目录。
1
mv 文件 目标目录
  1. 重命名
1
mv 文件名 文件名

1.21.1 参数

  1. -f 禁止交互式操作,如有覆盖也不会给出提示
1
-f
  1. -i 确认交互方式操作,如果 mv 操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
1
-i
  1. -v 显示移动进度
1
-v

1.22 ln 命令

建立链接文件,Linux 链接文件类似于Windows下的快捷方式。

1.22.1 分类

1.22.1.1 软连接

软链接不占用磁盘空间,源文件删除则软链接失效。
创建:

1
ln -S 源文件 链接文件

需要注意的是,如果软连接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

1.22.1.2 硬链接

硬链接只能链接普通文件,不能链接目录。
创建:

1
ln 源文件 链接文件

需要注意的是,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以 -s 选项是更常见的形式。

1.23 grep 命令

文本搜索,强大的文本搜索工具,grep允许对文本文件进行模式查找,如果找到匹配模式,grep打印包含模式的所有行。

1
grep [-选项] ‘搜索内容串’ 文件名

其中,选项有:

  1. -v :显示不包含匹配文本的所有行(相当于求反)
  2. -n :显示匹配行及行号
  3. -l :忽略大小写

1.24 find 命令

查找文件。

1.24.1 示例

  1. 查找当前目录下所有名为 test.sh 的文件
1
find ./ -name test.sh
  1. 查找当前目录下所有后缀为 .sh 的文件
1
find ./ -name '*.sh'
  1. 查找当前目录下所有以大写字母开头的文件
1
find ./ -name "[A-Z]*"
  1. 查找在 /tmp 目录下等于 2M 的文件
1
find /tmp -size 2M
  1. 查找在 /tmp 目录下大于 2M 的文件
1
find /tmp -size +2M
  1. 查找在 /tmp 目录下小于 2M 的文件
1
find /tmp -size -2M
  1. 查找当前目录下大于 4K,小于 5M 的文件
1
find ./ -size +4k -size -5M
  1. 查找当前目录下权限为 777 的文件或目录
1
find ./ -perm 0777

1.25 which 命令

查看命令位置。

1.26 tar 命令

归档管理,计算机中的数据经常需要备份, tar 是 Unix/Linux 中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

1
tar [参数] 打包文件名 文件

1.26.1 参数

  1. -C :生成档案文件,创建打包文件
1
-C
  1. -v :列出归档解档的详细过程,显示进度
1
-v
  1. -f :指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后
1
-f
  1. -t :列出档案中包含的文件
1
-t
  1. -x :解开档案文件
1
-x

需要注意的是,参数前面可以使用 “-“,也可以不使用;除了 f 需要放在参数的最后,其他参数的顺序任意。

1.27 gzip 命令

tar 与 gzip 命令结合使用实现文件打包、压缩。tar 只负责打包文件,但不压缩,用 gzip 压缩 tar 打包后的文件,其拓展名一般用 xxxx.tar.gz 。

1.27.1 解压

1
gzip [选项] 待解压文件

1.27.2 压缩

1
gzip [选项] 被压缩文件 压缩后文件名

1.27.3 选项

  1. -f 压缩所有子目录
1
gzip -r 1.tar 1.tar.gz
  1. -d 解压
1
gzip -d 1.tar.gz

需要注意的是,tar 这个命令并没有压缩的功能,它只是一个打包的命令,但是在 tar 命令中增加一个选项(-z)可以调用 gzip 实现了一个压缩的功能,实行一个先打包后压缩的过程。

1.27.4 结合 tar

1.27.4.1 压缩
1
tar -cvzf 1.tar.gz *
1.27.4.2 解压
  1. 解压到当前目录
1
tar -xvzf 1.tar.gz
  1. 解压到指定目录
1
tar -xvzf 1.tar.gz -C /temp

1.28 bzip2 命令

tar 与 bzip2 命令结合使用实行文件打包、压缩(用法和 gzip 一样)。tar 只负责打包文件,但不压缩,用 bzip2 压缩 tar 打包后的文件,其拓展名一般用 xxxx.tar.gz2 。在 tar 命令中增加一个选项(-j)可以调用 bzip2 实现了一个压缩的功能,实行一个先打包后压缩的过程。

1.28.1 结合 tar

  1. 压缩 tar -jcvf 压缩包包名 文件…
1
tar jcvf bk.tar.bz2 *.c
  1. 解压 tar -jxvf 压缩包包名
1
tar jxvf bk.tar.bz2

1.29 zip、unzip 命令

通过 zip 压缩文件的目标文件不需要指定扩展名,默认扩展名为 zip。

1.29.1 压缩

1
zip [-r] 目标文件(没有扩展名) 源文件

1.29.2 解压

1
unzip -d 解压后目录文件 压缩文件

1.29.3 unzip解压加密文件

1
2
unzip -p 'password' test.zip
unzip -p '11718' 061076-01.zip

1.30 gedit 命令

是一个 Linux 环境下的文本编辑器,类似 Windows 下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适。



本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/1432562370.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!