少年的肩膀,就该这样才对嘛,什么家国仇恨,浩然正气的,都不要急,先挑起清风明月、杨柳依依和草长莺飞,少年郎的肩头,本就应当满是美好的事物啊

磁盘管理

windows和Linux磁盘管理的区别

windows资源管理方式

image.png

  • 系统一般安装在C盘
  • C盘下的”Windows”目录是操作系统的核心
  • C盘下的”Program Files”目录下安装软件
  • C盘下的”用户”目录是所有的用户,包括超级管理员也在其中
  • windows操作系统分为C盘、D盘、E盘等,每个磁盘下采用文档树的形式组织文件

Linux资源管理方式

image.png
linux操作系统采用一个文档树来组织所有的资源。
这棵树的根目录的名字叫做:/
/ 是一个目录名字,是linux操作系统中所有文件的根。
/ 目录下又有很多其他的子目录,比如:dev home lib …..

比较重要的几个目录概述:

  1. /bin目录:包含一些常用的二进制可执行文件,如cat、ls、mkdir、rm等。这些二进制文件在系统运行时始终可用,可以被任何用户运行。
  2. /etc目录:包含了系统的大多数配置文件,如网络配置、用户登录信息、软件包安装配置等。大多数应用程序在安装后都会在这个目录下创建自己的子目录,以便存储自己的配置文件。
  3. /home目录:包含Linux系统用户的家目录,每个用户的数据和个人文件都存放在这里。
  4. /lib目录:包含一些共享库文件,应用程序可以通过这些共享库文件调用系统的功能,如libc.so,是C语言函数库的共享库。
  5. /root目录:是系统管理者(超级用户)的家目录。
  6. /tmp目录:是系统中的一个临时目录,所有用户都可以在这里创建临时文件,文件系统会定期清空该目录,以防止文件滞留。
  7. /usr目录:包含系统启动后,所有用户能访问的应用程序和数据文件。
  8. /var 目录:包含可变数据的文件。包括日志、数据库、Web服务器、邮件队列等文件。它是一个经常被修改的目录,如果在其他目录有可变数据的话,它们都应当被链接到 /var 中。

pwd

在终端中输入该命令,可以查看当前所在位置,例如:
image.png
可以看到,当前所在位置是根目录。

man和–help

man命令

man命令可以查看某个命令的具体用法,例如:man pwd。如果一个命令具体的用法你不知道的话,问那个男人就行了。
man命令怎么进行翻页?空格
man命令怎么退出?q

–help参数

–help,也可以查看一个命令的帮助,一次性列出。用法:touch –help

ls

ls

ls命令是list的意思:列出,列表等。
通过ls命令可以查看当前目录下的子目录和子文件。例如:
image.png

ls -a

a是all的意思,表示所有。
列出包含隐藏文件在内的所有的文件。(在Linux操作系统中隐藏文件的文件名通常以”.”开始)
image.png

ls -l

-l 参数表示使用长格式输出:long format
输出结果中每一列的含义如下:
image.png

注意权限部分:
image.png

ls -l 可以简写为:ll

ls -al

ls -al等同于:ls -a + ls -l的功能。
可以简写为:ll -a

ll -a /home/powernode

可以指定查看某个目录下的所有文件详情。

cd

cd命令:change directory
cd命令用法:

1
cd 路径名

cd .. 回到上级目录

cd ../.. 回到上级目录的上级目录

cd ~ 回到主目录

cd / 回到根目录

cd /home/powernode 切换到 /home/powernode目录下

cd abc 切换到当前目录下的abc目录中

  • 这里的abc没有以 / 开始,表示这个路径是相对路径,相对路径指的是从当前所在目录作为起点开始找。
  • 以 / 开始的路径被称为绝对路径。
  • cd 命令后面既可以是相对路径,也可以是绝对路径。只要路径正确即可。

clear

清屏

文件管理

新建目录

mkdir abc (mkdir是新建目录的命令,abc是一个目录名)
mkdir -p a/b/c (-p参数表示,一次创建多重目录)
mkdir -p a/kk/ff (虽然a已经存在了,但是不会报错,直接在a目录下新建kk目录,kk目录下新建ff目录。)

新建文件

touch 文件名,例如:touch Hello.java 表示在当前目录下新建一个文件Hello.java
touch a.txt b.txt c.txt 一次性在当前目录下,新建多个文件,文件名之间采用空格分隔。

删除文件

用法:rm 文件名

rm a.txt(删除当前目录下的a.txt文件)。这种方式会询问,是否删除,输入y表示删除,输入n表示不删除。

不想让系统询问你是否删除,怎么进行强行删除呢? -f 参数可以做到。

  • rm -f a.txt(强行删除a.txt文件,不询问)

删除多个文件

  • rm -f b.txt c.txt (删除b.txt和c.txt文件)
  • rm -f *.java(删除所有.java结尾的文件,模糊匹配的方式。)

删除目录

删除目录的时候,必须添加-r参数,这个-r表示删除一个目录,或者递归删除目录下的所有子目录以及子文件。
rm -r x(删除当前目录下的x目录,以及x目录下所有的子目录),但是这种方式需要用户自己输入y进行确认删除。
rm -rf x (强行删除x目录以及x目录下所有的子目录,并且不询问。包括子文件也全部删除。)

文件拷贝

cp a.txt aa.txt(复制当前目录下的a.txt文件,粘贴到当前目录下并且生成新文件aa.txt)

语法如下:

  • cp file1 file2
  • file1就是被拷贝的文件
  • file2就是粘贴之后的文件
  • file1和file2可以添加路径。
  • cp 被拷贝文件的路径 粘贴到哪里的路径

cp Hello2.java a/Hello3.java

目录拷贝

cp 目录名1 目录名2

  • 目录名1 是拷贝源
  • 目录名2 是拷贝到哪里

-rf (-r递归拷贝,-f强行拷贝)

cp -rf a abc(将当前目录下的a目录拷贝到当前目录下的abc目录当中)

cp -rf /home/powernode/a /home/powernode/x (将/home/powernode/a目录拷贝到/home/powernode/x目录下)

移动

mv Hello.java x(将当前目录下的Hello.java文件移动到x目录下)

mv /home/bjpowernode/Hello2.java /home/bjpowernode/x (将/home/bjpowernode/Hello2.java 移动到 /home/bjpowernode/x目录下)

mv x f(将x目录移动到f目录下)

文件搜索

在CentOS中,可以使用以下方式进行文件搜索:

  1. find命令:使用find命令可以在指定目录下搜索文件。可以使用不同的选项来指定搜索的文件类型、大小、修改时间等条件。例如:
1
find /usr/local -name "catalina.out"
  1. whereis命令:使用whereis命令可以在系统中搜索指定的命令的位置。例如:
1
whereis startup.sh
  1. which命令:使用which命令也可以在系统中搜索指定的命令的位置。例如:
1
which command

文件的inode号

在Linux操作系统中,每一个文件都有自己的身份证号:inode号(index node:索引节点号)
每个文件都有自己的inode号,并且不会重复,在Linux操作系统中通过inode来区分两个文件。
查看文件的inode号:

1
ls -i HelloWorld.java

image.png

软链接与硬链接

软链接

软链接类似于windows操作系统中的快捷方式。

软链接的作用:方便操作。快捷。。。有些经常被操作的文件,藏的很深,每一次找很麻烦,怎么办,可以给这些经常操作的文件创建软链接。通过软链接快捷的操作目标文件。

怎么创建软链接呢(在linux当中怎么创建快捷方式呢)?

1
ln -s HelloWorld.java HelloWorld.java2
  • 表示给hello.java文件创建一个hello2.java的快捷方式(软链接)
  • hello.java是目标文件。hello2.java文件是软链接,属于快捷方式

软链接和目标文件实际上是两个文件,在软链接中存储的是目标文件的路径。软链接关联的目标文件如果被删除,软链接这个快捷方式也就失效了。
可以通过查看inode号,来证明软链接是两个不同的文件:
image.png

硬链接

怎么创建硬链接?(把软链接创建过程中的 -s 去掉就是创建硬链接的语法。)

创建硬链接的语法:

1
ln HelloWorld.java HelloWorld.java2

通过测试得知:inode号一致,说明创建的硬链接和原文件是同一个文件。
image.png

通过操作硬链接,目标文件会改变吗?操作目标文件,硬链接会改变吗? 答案是:当然会。

硬链接的特点:

  • 主要是用来做:重要文件备份。
  • 目标文件删除之后,硬链接只要在,文件其实就没有被删除。或者说硬链接删除之后,目标文件还在。总结一句话:目标文件或者硬链接只要有一个存在,文件就没有被真正的删除。
  • 硬链接机制和复制粘贴还不一样,复制粘贴之后的文件,修改其中之一,另一个不会变,但是硬链接就不一样了。

文件压缩与解压缩

tar是在linux系统当中完成压缩和解压缩的命令。
压缩后的文件又被称为归档文件

tar命令详解

tar命令语法格式: tar 参数 要压缩的或解压的文件或目录
tar命令的常用参数:

  • z:指定是否使用gzip压缩方式压缩。(扩展名通常为:tar.gz。特点:速度最快)
  • j:是否需要用 bzip2 压缩方式压缩。(扩展名通常为:tar.bz2。特点:体积最小)
  • c:创建压缩(create)
  • x:解压缩
  • v:是否在压缩的过程中显示文件
  • f:指定归档文件名(file)。f参数后面必须紧跟文件名,不能在f参数后面再加其他参数。
  • t:查看 tarfile 里面的文件
  • C:指定解压到的具体目录。注意是大写C。

注意:c、x、t,这三个参数不能共存,只能出现一个。

压缩

压缩一个文件

  • tar -zcvf mytxt.tar.gz log1.txt

压缩多个文件

  • tar -zcvf mytxt2.tar.gz log1.txt log2.txt log3.txt
  • tar -zcvf mytxt3.tar.gz *.txt

压缩目录

  • tar -zcvf mytxt4.tar.gz test 【将test目录压缩为mytxt4.tar.gz】

查看归档文件

  • tar -tf mytxt.tar.gz

解压

tar -zxvf mytxt.tar.gz 【解压到当前目录下】
tar -zxvf mytxt.tar.gz -C test【将mytxt.tar.gz压缩包解压到test目录】

文件编辑vi & vim

vi与vim概述

vi 和 vim 都是在 Linux 和 Unix 中常用的基于字符终端的文本编辑器。
vi 是 Unix 早期提供的标准命令行下的文本编辑器,是一款非常强大、高效的编辑器,可以对文本进行快速修改和编辑,具有常见编辑器的基本功能。
vim(Vi Improved)是在vi基础上进行了改进和扩展的一个版本,它保留了vi的全部功能,并添加了许多新功能,如基本的 GUI 界面、语法高亮、多级撤销/重做、对齐、插件支持等等。可以说 vim 是强大的文本编辑器之一,被众多的开发者、管理员、写作人员和爱好者使用。
通过 vi 和 vim 命令,我们可以在终端中打开并编辑文本文件,进行各种修改和编辑,保存后退出,是 Linux 和 Unix 系统中非常基础、常用的一种文本编辑方式。
总之,vi 和 vim 均是一款 Linux 和 Unix 中常用的基于字符终端的文本编辑器,其中 vim 是在 vi 基础上进行了改进和扩展的版本。

在 CentOS 中,系统默认安装的是 vim 编辑器,但是为了兼容 vi 编辑器的使用习惯,CentOS 将 vim 的执行文件命名为 vi。因此,实际上在 CentOS 中使用 vi 和 vim 是等价的,都是使用 vim 编辑器进行文本编辑。

vi 编辑器使用

第一步:使用vi编辑器打开文件,语法:vi 文件的路径

  • vi Hello.java(打开当前路径下的Hello.java)
  • vi /home/bjpowernode/Hello.java(打开/home/bjpowernode目录下的Hello.java文件。)

第二步:编辑文件(vi编辑器为用户准备了两个模式)

  • 第一个模式:命令行模式。(此时键入的都是命令)
  • 第二个模式:编辑模式。(此时键入的内容都会写入文件)
  • 进入vi编辑器时是命令模式:键入i命令进入编辑模式
  • 从编辑模式回到命令模式:按一下esc键

第三步:保存。在命令模式下,输入以下命令:

  • :wq  这是一个命令,这个命令可以保存并退出。
  • :q! 这是一个命令,这个命令可以强行退出vi编辑器,并且不保存。

注意:vi编辑器打开的文件如果不存在,则自动新建。

vi编辑器常用命令

dd:删除光标所在行
yy:复制光标所在行到缓冲区
p:粘贴缓冲区中的内容
gg:光标回到文件第一行
GG:光标回到文件最后一行
^ :光标移动至当前行的行首
$ :光标移动至当前行的行尾
/关键字:按斜杠/键,可以输入想搜索的字符,然后确定进行搜索,如果第一次查找的关键字不是想要的,可以一直按 n 键往后查找到想要的关键字为止
o命令:在下一行插入。
x命令:命令行模式下,x命令会删除单个字符。
a命令:在光标后面插入。

nano编辑器

nano编辑器相对于vi编辑器来说出现的较晚,1999年诞生。vi编辑器时1976年诞生。nano编辑器更加简单一些。
以下是nano常用的快捷键,这些快捷键多数是无法在windows环境下使用的,也就是说在xshell中无法使用,因为和windows很多快捷键是冲突的,在linux环境中可以用:

  1. 打开文件:nano Test.java
  2. 保存文件:ctrl + o
  3. 退出nano:ctrl + x
  4. 选中多个字符:shift + 左方向/右方向
  5. 剪切:ctrl + k
  6. 粘贴:ctrl + u
  7. 搜索:ctrl + w
  8. 替换:ctrl + \
  9. 复制选中的:alt + 6
  10. 撤销:alt + u
  11. 重做:alt + e