浅识Linux
LInux安装使用:
-
先装VMware
-
打开虚拟机软件,创建新的虚拟机,选择自定义安装
-
硬件兼容性(默认选项即可)
-
稍后安装操作系统,只创建一台裸机
-
中间一些按需选择即可。。。。。。。。。。。
-
指定网络连接方式为NAT(有需要虚拟机与宿主机处于同一网段的情况选桥接模式,有需要虚拟机访问外部网络的情况选NAT模式。)
- 桥接模式:虚拟机会直接接入宿主机网络中,相当于虚拟机相当于网络中的一个普通计算机,有自己的ip地址和MAC地址,可以访问网络上其他的设备。适用于需要虚拟机与宿主机处于同一网段的场景,如测试、网络应用开发等。
- NAT模式:虚拟机通过虚拟化的NAT网络与宿主机连接,宿主机向虚拟机提供网络访问能力,虚拟机之间不能相互访问。NAT模式适用于虚拟机需要访问外部网络,但只有一个公共IP地址的情况下使用。
-
创建新的虚拟磁盘
-
指定硬盘容量
-
虚拟机差不多配完了,现在装操作系统
-
接下来开启虚拟机,相当于现实中给电脑通电
-
接下来,要处理三件事:
第一个:安装目的地
第二个:设置root密码
第三个:软件选择 -
设置root密码时允许root远程SSH登录
-
差不多就可以了
Xshell安装使用
-
Xshell是一款用于在本地计算机上远程连接到服务器,并进行命令操作,文件管理等功能的SSH客户端软件。
-
在Xshell中编写Linux命令和在Linux系统中的终端上编写命令是一样的。
-
使用终端的ifconfig命令查看服务器的IP地址
-
新建会话
-
设置连接属性
-
设置身份
- 接受并保存(安全警告)
Xftp安装使用:
-
Xftp是一款功能强大的Windows环境下的FTP客户端软件,用于在本地计算机与远程FTP服务器之间进行文件传输。
-
新建会话
-
拖拽上传:
Linux资源管理方式:
-
linux操作系统采用一个文档树来组织所有的资源。
-
这棵树的根目录的名字叫做:/
-
/ 是一个目录名字,是linux操作系统中所有文件的根。
-
比较重要的几个目录概述:
- /bin目录:包含一些常用的二进制可执行文件,如cat、ls、mkdir、rm等。这些二进制文件在系统运行时始终可用,可以被任何用户运行。
- /etc目录:包含了系统的大多数配置文件,如网络配置、用户登录信息、软件包安装配置等。大多数应用程序在安装后都会在这个目录下创建自己的子目录,以便存储自己的配置文件。
- /home目录:包含Linux系统用户的家目录,每个用户的数据和个人文件都存放在这里。
- /lib目录:包含一些共享库文件,应用程序可以通过这些共享库文件调用系统的功能,如libc.so,是C语言函数库的共享库。
- /root目录:是系统管理者(超级用户)的家目录。
- /tmp目录:是系统中的一个临时目录,所有用户都可以在这里创建临时文件,文件系统会定期清空该目录,以防止文件滞留。
- /usr目录:包含系统启动后,所有用户能访问的应用程序和数据文件。
- /var 目录:包含可变数据的文件。包括日志、数据库、Web服务器、邮件队列等文件。它是一个经常被修改的目录,如果在其他目录有可变数据的话,它们都应当被链接到 /var 中。
LInux命令:
-
pwd:查看当前所在位置
-
man和–help:查看某个命令的具体用法
-
ls:列出当前目录下的子目录和子文件
-
ls -a:列出包含隐藏文件在内的所有的文件
-
ls -l: -l 参数表示使用长格式输出:long format
-
输出结果中每一列的含义如下:
-
-
ls -al: ls -a + ls -l的功能
-
-
cd :change directory
-
cd … 回到上级目录
cd …/… 回到上级目录的上级目录
cd ~ 回到主目录
cd / 回到根目录
-
-
clear: 清屏
-
mkdir: 新建目录
- mkdir abc (mkdir是新建目录的命令,abc是一个目录名)
mkdir -p a/b/c (-p参数表示,一次创建多重目录)
mkdir -p a/kk/ff (虽然a已经存在了,但是不会报错,直接在a目录下新建kk目录,kk目录下新建ff目录。)
- mkdir abc (mkdir是新建目录的命令,abc是一个目录名)
-
touch: 新建文件
- touch 文件名,例如:touch Hello.java 表示在当前目录下新建一个文件Hello.java
touch a.txt b.txt c.txt 一次性在当前目录下,新建多个文件,文件名之间采用空格分隔。
- touch 文件名,例如:touch Hello.java 表示在当前目录下新建一个文件Hello.java
-
rm: 删除
- rm a.txt(删除当前目录下的a.txt文件)。这种方式会询问,是否删除,输入y表示删除,输入n表示不删除。
- 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: 拷贝
- cp a.txt aa.txt(复制当前目录下的a.txt文件,粘贴到当前目录下并且生成新文件aa.txt)
- cp 目录名1 目录名2
- cp -rf /home/powernode/a /home/powernode/x (将/home/powernode/a目录拷贝到/home/powernode/x目录下) -rf (-r递归拷贝,-f强行拷贝)
-
mv: 移动
- mv Hello.java x(将当前目录下的Hello.java文件移动到x目录下)
-
文件搜索
在CentOS中,可以使用以下方式进行文件搜索:
- find命令:使用find命令可以在指定目录下搜索文件。可以使用不同的选项来指定搜索的文件类型、大小、修改时间等条件。例如:
find /usr/local -name "catalina.out"
- whereis命令:使用whereis命令可以在系统中搜索指定的命令的位置。例如:
whereis startup.sh
- which命令:使用which命令也可以在系统中搜索指定的命令的位置。例如:
which command
-
文件的inode号
在Linux操作系统中,每一个文件都有自己的身份证号:inode号(index node:索引节点号)
每个文件都有自己的inode号,并且不会重复,在Linux操作系统中通过inode来区分两个文件。
查看文件的inode号:ls -i HelloWorld.java
-
data:查看系统当前时间
-
su 用户名:切换用户
-
sudo 命令:表示使用超级管理员身份执行该命令,如果你当前不是管理员,希望以管理员身份执行某个命令时,使用sudo,需要输入超级管理员的密码:
-
echo:输出
-
sort命令可以对文件中的内容以“行”为单位进行升序和降序排列
-
diff命令可以用来比较两个文件的不同之处
-
输出重定向
:以覆盖的形式写到文件中。
:以追加的形式写到文件中。
凡是在控制台上能够打印出来的,统一都可以重定向,可以将其打印到控制台的行为重定向到文件或其它设备。例如:
将 ls -al的执行结果重定向到 ls.txt 文件中。
ls.txt文件内容如下:
以上方式是采用覆盖的方式,所谓覆盖方式指的是,每一次执行时,都会把 ls.txt 文件全部清空,然后重新写入。
如果要以追加的方式,则需要使用 >> ,这个可以自行测试一下。输入重定向
<:将文件内容输入给某个命令,这是一种默认的行为,通常 < 是可以省略的。例如:
a.txt文件内容如下:
将 a.txt 文件中的内容输入给 sort命令:
<<:可以接收键盘的输入,例如:
EOF是一个结束符,随意的,当键盘输入EOF之后,键盘输入则自动结束,然后sort命令将键盘输入的内容进行排序。 -
grep命令 :在某段内容中搜索
例如: grep 0 a.txt (在a.txt中搜索0) -
管道 | :将前面命令的输出作为后面命令的输入,可以叠加,例如:
-
ps [命令参数]:查看系统进程
常用参数:
-e :显示当前所有进程
-f :显示 UID,PPID,C 与 STIME 栏位信息UID:该进程的所属用户
PID:进程id
PPID:父进程id
C:CPU使用百分比
STIME:启动时间
TTY:启动该进程的终端设备是哪个
TIME:耗费的CPU时间
CMD:该进程对应的命令 -
sleep
: 用于暂停程序的执行一段时间。 -
kill : 杀死进程
-
top
命令是用于查看正在运行的系统进程信息的命令。它会实时动态地显示系统资源的使用情况,如 CPU 占用率、内存使用情况、进程情况等。通常用于系统监控和性能调优。僵尸进程:在操作系统中,僵尸进程 (Zombie Process) 是指一个已经执行结束的进程,但其进程描述符仍然留在进程列表中,它不再执行任何其他操作,但仍然占用一定内存空间。
交换分区(Swap),也称虚拟存储器,是一种在计算机内存不足时,为了增加内存所采用的一种技术。当系统内存不足时,操作系统会把暂时不需要的内存数据和程序信息通过交换机制存储到硬盘上的交换分区中,以节省内存的使用,从而保证共享内存的进程正常运行。q:退出top命令。
-
free命令
free
命令可以用于查看物理内存和交换分区的使用情况。下面是一条可能的free
命令的输出结果的示例: -
df命令
df
命令是 Linux 系统中的一个磁盘空间使用情况查询命令,用于显示当前文件系统的磁盘空间使用状况,以及文件系统的挂载点、磁盘大小、已用空间、可用空间、使用占比等信息。df
命令是 “disk free” 的缩写。
对于程序员来说,应该重点关注以上红框中的内容,已用空间超过80%则需要重点注意,以防磁盘已满导致数据无法写入而丢失。 -
reboot: 重启
-
shutdown -h now: 关机
-
查看文件内容的常见命令
- cat
- more 和 less
- head 和 tail
- nl
- tailf
-
查看网卡的ip地址。在windows当中是:ipconfig。在linux当中是ifconfig
-
查看计算机之间是否可以正常通信
语法:- ping ip地址
- ping 域名
-
curl命令: 模拟用户访问,模拟浏览器行为。
- 例如:curl http://www.baidu.com (可以直接查看百度首页的前端代码)
-
wget:下载资源
- 语法:wget 资源地址
-
netstat查看网络连接状态及端口
在实际开发中,netstat最常用的操作是查看网络连接情况。通过使用netstat命令,开发人员可以快速了解当前系统上的所有网络连接,包括正在监听的端口、建立的连接、连接状态等信息。这对于排查网络问题和监控系统状态非常有用。另外,netstat还可以用于检查网络安全,例如查看哪些端口正在被占用,是否有不安全的连接等。
以下是netstat命令的常用参数和用法:
- 查看所有的网络连接状态:
netstat -a netstat -an 添加-n参数的目的是:不将端口和IP地址转换为名称,而是直接显示数字格式的IP地址和端口号
LISTENING 状态:表示该端口已占用,正在监听,等待客户端的连接。
CONNECTED状态:表示网络连接已建立,但并没有开始数据传输。
ESTABLISHED 状态:表示网络已连接,数据正在传输中。
TIME_WAIT 状态:表示连接已经被终止,在双方都完成数据传输后,该连接会进入TIME_WAIT
状态,并等待一段时间后关闭。- 查看所有处于监听状态的连接:
netstat -l
- 查看所有TCP连接状态:
netstat -t
- 查看所有UDP连接状态:
netstat -u
- 查看所有处于CONNECTED状态的连接:
netstat -o
- 查看指定端口的网络连接状态:
netstat -an | grep 端口号
例如,查看80端口的网络连接状态:
netstat -an | grep :80
-
软链接
软链接类似于windows操作系统中的快捷方式。
软链接的作用:方便操作。快捷。。。有些经常被操作的文件,藏的很深,每一次找很麻烦,怎么办,可以给这些经常操作的文件创建软链接。通过软链接快捷的操作目标文件。
怎么创建软链接呢(在linux当中怎么创建快捷方式呢)?
ln -s HelloWorld.java HelloWorld.java2
- 表示给hello.java文件创建一个hello2.java的快捷方式(软链接)
- hello.java是目标文件。hello2.java文件是软链接,属于快捷方式
软链接和目标文件实际上是两个文件,在软链接中存储的是目标文件的路径。软链接关联的目标文件如果被删除,软链接这个快捷方式也就失效了。
可以通过查看inode号,来证明软链接是两个不同的文件:
硬链接
怎么创建硬链接?(把软链接创建过程中的 -s 去掉就是创建硬链接的语法。)
创建硬链接的语法:
ln HelloWorld.java HelloWorld.java2
通过测试得知:inode号一致,说明创建的硬链接和原文件是同一个文件。
通过操作硬链接,目标文件会改变吗?操作目标文件,硬链接会改变吗? 答案是:当然会。
硬链接的特点:
- 主要是用来做:重要文件备份。
- 目标文件删除之后,硬链接只要在,文件其实就没有被删除。或者说硬链接删除之后,目标文件还在。总结一句话:目标文件或者硬链接只要有一个存在,文件就没有被真正的删除。
- 硬链接机制和复制粘贴还不一样,复制粘贴之后的文件,修改其中之一,另一个不会变,但是硬链接就不一样了。
-
tar是在linux系统当中完成压缩和解压缩的命令。
压缩后的文件又被称为归档文件。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 编辑器使用
第一步:使用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命令:在光标后面插入。 -
第一个模式:命令行模式。(此时键入的都是命令)
- 第二个模式:编辑模式。(此时键入的内容都会写入文件)
- 进入vi编辑器时是命令模式:键入i命令进入编辑模式
- 从编辑模式回到命令模式:按一下esc键
第三步:保存。在命令模式下,输入以下命令:
- :wq 这是一个命令,这个命令可以保存并退出。
- :q! 这是一个命令,这个命令可以强行退出vi编辑器,并且不保存。
注意:vi编辑器打开的文件如果不存在,则自动新建。
vi编辑器常用命令
dd:删除光标所在行
yy:复制光标所在行到缓冲区
p:粘贴缓冲区中的内容
gg:光标回到文件第一行
GG:光标回到文件最后一行
^ :光标移动至当前行的行首
$ :光标移动至当前行的行尾
/关键字:按斜杠/键,可以输入想搜索的字符,然后确定进行搜索,如果第一次查找的关键字不是想要的,可以一直按 n 键往后查找到想要的关键字为止
o命令:在下一行插入。
x命令:命令行模式下,x命令会删除单个字符。
a命令:在光标后面插入。