初识linux
相信大家对Linux都有所耳闻。和Windows一样,Linux也是一种操作系统。不过,Windows通常运行在我们的桌面上,我们平时玩游戏、听歌、上网都离不开它。然而,当我们在网站上购买商品、浏览新闻时,这些活动其实都是在服务器上进行的。而在服务器上,大部分操作系统用的是Linux。
那么,Linux这个名字是从哪里来的呢?它又有什么具体含义呢?其实,Linux有两重含义。广义上来说,它指的是一种操作系统;而狭义上,它指的是由Linus(一位芬兰的天才程序员)编写的开源操作系统的内核。Linus Benedict Torvalds也因此被誉为Linux之父。
Linux系统和Windows系统的操作界面存在显著差异。Linux主要采用命令行格式进行操作,这与Windows的图形界面操作截然不同。之所以有不同的操作形式,是因为服务端和客户端的职责截然不同。服务端更注重系统的稳定性,因此无需华丽的界面,这也是Linux采用命令行操作形式的原因。那么,如果想在自己的电脑上体验Linux,应该怎么办呢?
学习linux之前的环境准备
- 云主机。例如阿里云、腾讯云、华为云等云服务提供商已经非常普及,而且一些云厂商还会举办活动,让用户有机会免费体验服务器。
- 无数据的PC(不推荐多系统混跑)
- 虚拟机(推荐方式)。在windows或者mac系统上安装虚拟机,及时在操作过程中出现问题,也不会影响系统的安全,不会影响电脑现有系统的运行。
linux命令
1、万能的帮助命令
man 帮助
man是manual的缩写,我们一般简单说成man。
语法:man 命令名称
bash
man ls
man cd
man mkdir
help 帮助
语法:help 命令名称
操作:
1、内部命令使用help 帮助
help cd
2、外部命令使用help 帮助
ls --help
备注:help 帮助命令为什么有两种形式区分?因为 命令也有两种区分,一种是 shell(命令解释器)自带的命令称为内部命令,其他的是外部命令。
可以使用 type 命令区分外部命令还是内部命令:
bash
type cd
type ls
info 帮助
info 帮助比help更加详细,作为help的补充。
语法:info 命令名称
操作:
bash
info ls
info cd
info mkdir
使用网络资源(搜索引擎和官方文档)>
2、磁盘管理
在Linux系统中,与Windows系统中的"盘符"概念有所不同。Linux系统使用的是分区和挂载点的概念。每个分区或存储设备(如硬盘、SSD、USB驱动器等)在Linux中被挂载到文件系统的某个目录下,这个目录就是该设备的访问点,而不是通过盘符来访问。
df 命令
区别于windows系统中,点击我的电脑,会有图形化界面清楚的列出当前电脑的磁盘分区以及各个分区的大小,使用情况。在linux中通过 df 命令显示磁盘空间的使用情况。它会列出文件系统的总空间、已用空间、可用空间、已用百分比以及挂载点等信息。
语法:df [选项] [目录]
操作:
1、显示所有已挂载文件系统的磁盘空间使用情况(以人类可读的格式)
df -h
2、显示特定文件或目录所在文件系统的磁盘空间使用情况,比如查看www目录下demoVue目录的大小
df -h /www/demoVue
注意:df 命令实际上并不会针对单个文件或目录显示空间使用情况,而是会显示该文件或目录所在文件系统的磁盘空间使用情况。在这里例子中将会显示/www/demoVue目录所在文件系统的磁盘空间使用情况。
du 命令
du 全称disk usage(磁盘使用情况),它可以快速查看指定目录或文件所占用的磁盘空间大小。在 df 命令不能查看指定文件的大小,du 命令弥补不足,可以准确查看
语法:du [选项] [目录或文件]
常用选项:
- -a: 显示目录中所有文件和目录的大小,包括隐藏文件
- -h: 以人类可读的格式(如K、M、G)显示文件大小
- -s: 只显示总计,即只列出指定目录的总大小,而不列出其子目录的大小
- -d: 限制目录显示的深度,N为最大深度。例如,du -d 1只显示当前目录下一级子目录和文件的大小
- -c: 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
- --exclude=PATTERN: 排除符合PATTERN模式的文件或目录
- --exclude-from=FILE: 从FILE中读取要排除的文件或目录模式
操作:
1、显示demoVue目录的大小,-h(以人类可读的格式)
du -h ./demoVue
2、限制目录显示的深度为1
du -h --max-depth=1 ./
fdisk
可以用于创建、删除、调整和查看磁盘分区。
操作:
1、列出所有磁盘分区表
fdisk -l
3、文件管理相关命令
文件管理既是linux管理的基础,又是linux管理的核心,因为在linux中有个非常重要的概念,叫做一切皆文件。像大家熟知的windows系统中,可能会有注册表,设备管理器等各个组件,而在linux中,我们控制linux通通都是文件,所以文件管理是linux中非常重要的内容。
文件信息查看
pwd:显示当前的目录名称。 有点类似windows的资源管理器,需要知道当前在c盘还是d盘。
cd:更改当前的操作目录。
当我们看到自己当前操作的目录之后,可能想要到其他文件目录中去操作,例如windows中当前在c盘,想要去d盘,这种情况下,在linux中,就会用到cd命令。
bash
cd /path/to/...绝对路径
cd ./path/to/...相对路径
cd ../path/to/...相对路径
ls:查看当前目录下的文件。
ls类似于资源管理器,通过ls命令可以查看文件的名称,文件的权限,文件的类型,修改时间,以及文件的很多很多信息。
语法:ls 路径
操作:
1、显示root目录下有哪些
ls /root
2、显示root目录和www目录有哪些
ls /root /www
3、ls带选项语法:
ls -l 长格式显示,也可以写成ls -l . 表示在当前目录下操作
例如:
第一列(dr-xr-xr-x)代表文件的类型和权限。第一列第一个字符代表文件的类型。如果是一些普通文件,类似于windows中文本文件,音乐文件,一般都是以"-"表示。如果是目录,也就是windows中文件夹,那么就是"d"来表示。实际上linux也会把目录当作文件去处理。除去第一个字符,剩下的9个字符表示目录或者文件的权限。
第二列(5)的数字表示目录下文件的个数。
第三列(root)表示谁创建了文件或目录,显示的是名字。
第四列(root)表示这个人是属于哪个用户组的。
第五列(4096)表示文件或目录的大小
剩下列:表示文件或目录的最后修改时间
最后一列:文件或目录的名称
4、ls -a 显示隐藏文件
备注:在linux中,文件或者目录以.开头,就表示它是隐藏文件
5、ls -r 以逆向的方式进行排序,通常情况下配合 ls -l 一起使用。默认情况下以文件名的方式进行逆向显示
ls -l -r -t 以时间方式进行逆向。多个选项可以缩写为 ls -lrt
6、ls -R和ls -r是不同的,所以在使用的时候要特别注意大小写,会有不同的含义
7、ls -R表示递归显示目录内容,如果目录里边还有内容,会一并显示出来
创建和删除目录
在windows中我们可以对文件夹进行操作,比如新建、删除、移动、重命名等操作。在linux中同样提供了相关命令。
mkdir:建立一个空的目录。
操作:
1、在根目录下创建一个a目录
mkdir /a
2、在当前目录下创建一个a目录,可以省略./ mkdir ./a
bash
mkdir a
mkdir ./a
3、建立多个目录
mkdir a b c
备注:如果创建一个已经村存在的目录,那么会提示无法创建
4、创建多级目录
mkdir /a/b
5、连续创建多级目录,使用-p
mkdir -p /a/b/c
rmdir:删除目录。rmdir有一个要求,只能删除一个空白的目录,如果目录下有任何内容,都将无法删除。
操作:
继续上边的代码
1、删除a目录,将会提示失败,删除"/a"失败:目录非空
rmdir /a
备注:上述命令中,虽然a目录下的b和c都是空目录,但是也无法删除,这也充分说明在linux中一切皆文件,linux会把目录当成文件。
如果想要删除非空目录,可以执行rm命令。
rm命令执行的时候,如果想要删除目录,需要带一个参数-r,即使有多个目录,并且它们都不是空的。
操作:
1、删除a目录
rm -r /a
备注:如果想要系统不进行一层一层提示,那么可以在命令后边加上-f选项,这样系统就不会进行提示,直接删除。
rm带 -f 选项,直接删除(谨慎使用)
rm -rf /a
复制和移动
cp 命令进行文件的复制,cp其实是copy的缩写。
语法:cp [源文件或目录] [目标位置]
操作:
1、对a进行复制,把a目录复制到demoVue中
cp单独使用的时候只能复制文件,如果要复制文件的话需要新增选项-r
cp -r ./a ./demoVue
使用 cp -v 命令时,系统会在终端中输出关于复制过程的额外信息,比如哪些文件正在被复制,以及它们被复制到哪里。
cp -p 命令在 Linux 中用于复制文件或目录,同时保留原文件或目录的修改时间和访问权限。
-p 选项实际上是 --preserve 的缩写,但在这里它主要用于保留文件的模式(即权限)、所有权和时间戳。这意味着复制后的文件将具有与源文件相同的访问权限、文件所有者、文件组以及最后修改和访问时间。
touch
touch命令创建一个文件。如果指定的文件不存在,touch命令会创建一个空文件。如果存在,更新文件的时间戳。
语法:touch [文件名 ]
操作: 1、创建一个test.txt文件
touch test.txt
mv
mv命令在linux中有两个功能,一个是文件和文件夹的移动功能,一个是重命名功能。
语法:mv [选项] 源文件或目录 目标位置或新名称
- 源文件或目录:你想要移动或重命名的文件或目录的路径。
- 目标位置或新名称:如果是移动操作,则是文件或目录要移动到的目标路径;如果是重命名操作,则是文件或目录的新名称(通常在同一目录下)。
常用选项:
- -i:在覆盖目标文件之前提示用户确认
- -u:只有在源文件比目标文件新,或者目标文件不存在时,才移动文件
- -v:显示详细的操作信息
- -n:不要覆盖任何已存在的文件
操作:
1、移动文件 将名为 example.txt 的文件从当前目录移动到名为 documents 的子目录中
mv example.txt documents
2、重命名,重命名操作在linux底层其实就是把文件的移动。将filea文件改名为fileb
mv /filea /fileb
3、移动并重命名文件。将名为 example.txt 的文件移动到 documents 目录下,并同时重命名为 document.txt
mv example.txt documents/document.txt
4、如果在进行复制、移动或者删除的时候,有很多相似的文件或目录,可以使用通配符(通用的匹配符号)进行操作。除了在cp、mv命令中使用,可以在ls命令中。
- *表示当前目录下要操作的文件和目录
- ?
- [xyz] 匹配xyz任意一个字符
- [a-z] 匹配一个范围
- [!xyz] 或 [^xyz] 不匹配
5、移动当前目录下所有文件
cp * /a
6、把以file开头的文件移动到b目录下
cp file? /b
文件查看相关命令
在之前我们一直强调在linux中一切皆文件。在linux中,甚至对linux的管理工作都是通过文件实现的,这些文件存储着linux的配置。所以我们要学习如何查看linux中的文件。
linux中文本查看命令包括cat、head、tail、wc
cat
cat 命令主要用于查看、连接、创建文件内容。cat 是 concatenate(串联)的缩写,它经常被用于简单地查看文件内容。
基本用法:cat 文件名称
操作:
1、查看文件的所有内容,会把text.txt内容完整的显示出来 cat ./text.txt
head
head 查看文件的开头,默认显示10行
语法:head 文件名称
操作:
1、查看文件开头5行
head -5 ./text.txt
tail
tail 查看文件的结尾,默认显示10行
语法:tail 文件名称
操作:
1、查看文件末尾5行
tail -3 ./text.txt
-f 选项可以追踪文件的变化。如果文件的内容实时变化,那么可以使用tail -f 文件名称显示最新的内容。同时可以使用 ctrl + c 退出,停止一直显示的操作。
tail -f ./text.txt
wc
wc(word count)统计文件内容信息。当我们不知道这个文件有多少行,wc -l 命令可以显示文件有多少行。
wc -l ./text.txt
补充:其他命令,比如more 和 less也都是文本查看的命令。
打包和压缩
在windows中,我们经常会见到.zip和.rar格式,这两种格式是最常见的文件夹打包和压缩的格式。在windows中这是一个功能,但是在linux中打包和压缩是两个功能。
打包最开始是linux的备份命令,在早期的时候linux备份是要备份到磁带这种设备上,备份的时候使用的就是tar命令。备份到磁带中后需要对文件进行压缩,压缩的命令使用的是gzip和bzip2。在linux中,我们想要把一个文件夹进行压缩,其实是要经过两个步骤的,一个就是把它进行打包,一个是进行压缩。这样的传统方式一直流传到现在,所以现在我们看到打包和压缩是分开的。
tar
用于打包和压缩文件或目录。它可以将多个文件和目录打包成一个文件。
语法:tar [选项] [文件]
常用选项:
显示特定文件或目录所在文件系统的磁盘空间使用情况。全称是disk usage(磁盘使用情况),它可以快速查看指定目录或文件所占用的磁盘空间大小。
- -c:创建新的存档文件(Create)
- -x:从存档文件中提取文件(eXtract)
- -t:列出存档文件中的内容(lisT)
- -v:显示 tar 命令执行的详细信息(Verbose)
- -f:指定存档文件的名称(File)。注意,-f 选项后面必须紧跟存档文件的名称,而且 -f 选项通常放在选项的最后
- -z:在创建或提取存档文件时使用 gzip 压缩算法来进行压缩或解压缩
- -j:在创建或提取存档文件时使用 bzip2 压缩算法来进行压缩或解压缩
- -J:在创建或提取存档文件时使用 xz 压缩算法来进行压缩或解压缩
- -C:指定 tar 命令的工作目录(Change directory)
操作:
1、把一个目录打包成文件,把etc目录打包成etc-backup.tar,并且放在tep目录下
tar cf /tmp/etc-backup.tar /etc
当我们打包成一个问价以后,可以是用gzip或者bzip2进行压缩。同样解压缩的时候也使用这两个命令。
其实tar命令已经把这两个命令集成进去了,打包的同时就可以压缩,在使用tar命令的时候传入对应的选项,如上,就可以实现相应的功能。
2、为了方便告诉其他使用者用的是哪种压缩方式,会在末尾拼死.gz扩展名,采用双扩展名的方式,方便其他人对其进行操作。(gzip压缩)
bzip2压缩,尾缀可以是.bz2或者bzip2,它们都是同样的含义。
tar cjf /tmp/etc-backup.tar.bz2 /etc/
解压
对/tmp/etc-backup.tar进行解压,并且把解压后的文件放到/root目录下
tar xf /tmp/etc-backup.tar -C /root
当我们从网上下载文件,可能会见到.tar.bz2 或者 .tbz2 或者.tgz,这两种格式其实就是上边两个尾缀形式的缩写,其实是为了方便在网络上传输,把双扩展名合并成一个。
关于linux中文件管理的相关命令就这么多,如果不全请在评论区补充,我会及时进行更新!!!
作者:洞窝-美阳