Linux基础学习笔记

1、环境搭建

​ 需要一台云服务器,下面的学习都是在阿里云的云服务器上进行的的,也可以在自己的电脑上安装虚拟机,在虚拟机上进行学习。

使用xshell连接远程云服务器,一般还会下载一个xftp来从远程服务器上传和下载文件,也可以使用lrzsz命令实现windowlinux之间文件交换。sz命令从服务器移动到window,rz命令从window到服务器。

xshell、xftp下载地址:https://www.xshell.com/zh/free-for-home-school/

image-20220318105142388 image-20220318105237326

image-20220318105313744

输入登录账号和密码就可以进行连接了,如何password不能填写,需要在买来的服务器上重置一些密码,直接在云服务器商的控制台中重置即可。

2、基础内容

关机命令

shutdown # 关机指令
shutdown -c  # 取消关机命令
shutdown -h 10 # 在10秒后关机
shutdown -h now # 立刻关机
shutdown -h 10:59 # 在这天的10:59会关机
shutdown -h +10 # 10分钟后关机
shutdown -r now # 立刻重启
shutdown -r +10 # 10分钟后重启
reboot # 立即重启
halt # 立即关闭系统
sync # 将数据同步到硬盘中,在重启或关闭需要执行这个操作

目录结构:系统的根目录是 / ,系统的所有东西都都放在这个目录下。

  • /bin:这个目录中存放着使用的命令,所有的命令文件都放在这个目录下。
  • /boot:存放启动Linux时的核心文件,包括一些连接文件和镜像文件。(不要动)
  • /dev:存放Linux的外部设备,例如USB、DVD等等外部设备。
  • /etc:存放系统管理需要的配置文件及其子文件。
  • /home:用户主目录,也可以是 /~这个目录,每个用户都有自己的一个/home文件夹。
  • /lib:存放系统基本的动态连接共享库。(不要动)
  • /lost+found:当系统非法关机时,就会有一些文件,默认这个目录下是空的。
  • /media:会自动识别外部设备,例如U盘、光驱等,Linux识别的设备都会挂架到这个目录下。
  • /mnt:提供用户临时挂载的文件目录。
  • /opt:存放系统中额外安装软件的存放位置,默认是空的。
  • /proc:一个虚拟目录,它是系统内存的映射。( 不要动)
  • /root:系统管理员目录,就是超级管理员的用户主目录。
  • /sbin:存放超级管理员的系统管理程序。
  • /srv:存放一些服务启动之后需要提取的数据。
  • /sys:存放一些系统文件。
  • /tmp:存放一些临时文件,用完就删除的目录,例如可以放一些安装包。
  • /usr:存放用户应用程序和文件,相当于windows中program files目录。
  • /usr/bin:用户使用的应用程序。
  • /usr/sbin:超级管理员使用的应用程序。
  • /usr/src:内核源码存放的目录。
  • /var:存放一些经常修改的文件,例如存放一些日志文件。
  • /run:临时文件目录,存放系统启动以来的数据。当系统重启时,应该删除这个目录下的文件。
  • /www:存放服务器网站相关的资源,例如环境、网站项目等。

3、目录管理

cd命令:用于切换目录。

# 相对路径和绝对路径
# 相对路径:是相当于当前目录下的路径 ./ 表示当前目录
# 绝对路径:在Linux中 / 始终表示系统的根目录
cd ..	# 切换到上一级目录中
cd /	# 切换到根目录下
cd ./test	# 切换到当前目录下的test文件夹下

ls命令:用于列出当前目录下的文件列表。

ls	# 列出目录下的文件列表,不包含隐藏文件
ls -a	# 列出所有文件列表,包括隐藏文件
ls -l	# 列出文件列表,包括文件的属性和权限,不包含隐藏文件
ls -al	# 累出文件列表,包括文件的属性和权限,包含隐藏文件

image-20220318172818911

pwd命令:显示当前目录的路径。

mkdir命令:创建新文件夹。

mkdir 新文件夹名	# 创建一个新文件夹
mkdir -p test1/test2/test3	# 新建多级目录

rmdir命令:删除目录。

rmdir 文件夹名	# 删除一个空的文件夹,如果不为空就不能删除
rmdir -p test1/test2/test3	# 删除多级目录的文件夹,删除为空的文件夹,不为空的文件夹不能删除,相当于删除test1目录下的所有空文件夹,如果test1下存在文件,test1也不会删除

cp命令:复制文件或文件夹。

cp 旧目录 新目录	# 将旧的目录或文件拷贝到新的目录下,如果文件重复,它会让你选择是否覆盖当前目录

rm命令:删除文件或文件夹。

rm 文件名	# 删除文件
rm -f 文件	# 强制删除文件
rm -rf 文件或文件夹	# 递归删除文件或文件夹
rm -i 文件或文件夹	# 删除的时候会询问你是否删除

mv命令:移动文件或文件夹。

mv 移动文件或文件夹 新目录下	# 把文件或文件夹移动到新的目录下
mv -f 移动文件或文件夹 新目录下	# 强制移动
mv -u 移动文件或文件夹 新目录下 # 只替换修改的文件,移动的新目录已存在该文件,就会替换修改后文件
mv 旧文件 新文件名	# 用于重命名文件名

4、文件管理

文件属性

Linux是一个典型的多用户操作系统,不同用户拥有不同的权限,我们可以通过ll或者ls -l来查看文件的属性。

image-20220319151138972

文件属性的第一个字母,这个字母表示文件是一个目录、文件、还是链接。

  • d:表示这是一个目录。
  • -:表示这是一个文件。
  • l:表示这是一个链接,相当于是快捷键。
  • b:表示文件里有可提供存储的接口设备。
  • c:表示这是装置文件中的串口设备,例如鼠标、键盘等。

image-20220319151840892

第一个字母后面的九个字母表示,三个为一组,分别是rwx,r表示读,w表示写,x表示执行,没有对应的权限就是 -

image-20220319152432505

lrwxrwxrwx1rootroot7Jul 11 2019
表示文件类型,这是个链接属主的权限,这个文件的拥有者的权限,可读可写可执行属组的权限,属于某个组的用户的权限,可读可写可执行其他用户的权限,系统中其他用户的权限,可读可写可执行文件中个数属主,这个文件属于哪个用户属组,这个文件属于哪个权限组表示文件的大小文件创建的日期

修改文件属性

  • 修改属组:
# 属组名必须存在
chgrp [-R] 属组名 文件名 # 更改文件的属组
# -R 表示递归修改子目录下所有文件的属组名
  • 修改属主:
# 属主必须存在
chown [-R] 属主名 文件名	# 更改文件属主
  • 修改文件的权限:

Linux中文件属性有两种表示方式:1、数字;2、符号;我们通常使用数字来修改文件得权限。

r:4(读)		w:2(写)		x:1(执行)

chmod -R 777 文件名	# 修改文件的权限为可读可写可执行
# 第一个7表示属主的权限 4+2+1 = 7
# 第二个7表示属组的权限
# 第三个7表示其他用户的权限 

# 也可以通过字符来修改文件的属性
chmod u/g/o/a  +/-  r/w/x   文件名
# u表示文件所有者、g表示文件所有者所在组、o表示其他用户、a表示三者全部。可以搭配使用,如ug表示文件所有者及其所在组;
chmod u-x,go+wx index.html

查看文件内容

cat 文件名		# 从第一行查看文件内容
tac 文件名		# 从最后一行查看文件内容,倒序查看
nl	文件名		# 标有行号查看文件内容
more 文件名	# 一页一页查看文件内容,空格是翻页,但是只能向下翻页
less 文件名	# 与more类似,但是可以向上翻页,pageup向上翻页,pagedown向下翻页
head -n 行数 文件名	# 查看文件前20行的内容
tail -n 行数	文件名	# 查看文件后20行内容

# 使用more和less查看内容时:
	# q命令:退出查看
	# /字符串:向下查询字符串
	# ?字符串:向上查询字符串
	# n:向上移动一个查询的字符串
	# N:向下移动一个查询的字符串

5、链接

​ 在目录管理中,我们知道文件类型中有链接类型,在Linux中链接分为硬链接和软链接(符号链接)。

硬链接:指向源文件,相当于是一个文件,即使删除了源文件,硬链接还是能够指向源文件,通常用于备份文件。

软链接:指向源文件,相当于是windows中的一个快捷键,但是删除了源文件后,软链接也会失效。

ln 源文件 硬链接文件	# 创建一个硬链接
ln -s 源文件 软链接文件		# 创建一个软链接文件
echo "内容" >> 文件		# 将内容输入到文件中

由于硬链接和软链接都指向源文件,所以源文件发生改变,链接文件也会发生改变。

6、Vim编辑器

Vim编辑器:是从vi发展而来的一个文本编辑器,代码补全和编译错误等功能,在Linux中被广泛使用,简单方便。

​ 在Vim中有三种模式:1:命令模式;2、输入模式;3、底线命令模式;

命令模式:用户启动Vim编辑文件就进入命令模式。

vim 文件	# 编辑文件,进入命令模式

命令模式下可执行的操作:

  • i | a | o 键:可以进入输入模式,可以对文件进行编辑,按下i a o 其中一个都可以进入输入模式。
  • x 键:可以删除光标所在行。
  • 输入 : :可以切换到底线命令模式。

输入模式:可以编辑文件的模式,在命令模式下,按下 i 就可以进入输入模式。

输入模式下可执行的操作:

  • ESC键:退出编辑模式,进入命令模式。

底线命令模式:在命令模式下,按下 : 进入底线命令模式,可以在 : 后面输入命令。

底线命令模式可执行的操作:

  • q:退出编辑文件,但是不保存。
  • w:保存文件,但是不退出编辑。
  • wq:保存文件并退出。
  • ESC :退出底线命令模式,进入命令模式。
  • q!:强制退出。
  • w!:强制保存,但是保存的成功与否,更用户的权限有关。
  • wq!:强制对出保存。

如果使用 vim 编辑一个不存在的文件,它会自动创建这个文件。

vim 使用:

  • 在命令模式下,输入 /查询字符串,向下查询字符串。
  • 在命令模式下,输入 ?查询字符串,向上查询字符串。
  • 在命令模式下,输入 n,向上移动一个查询到的字符串。
  • 在命令模式下,输入 N,向下移动一个查询到的字符串。

7、用户账号管理

​ Linux是一个多用户、多任务的分时操作系统,在Linux上可以同时登陆多个用户。用户的管理包括增加用户、修改用户、删除用户等操作。

增加用户:在root用户下可以添加其他用户。

useradd 用户名	# 添加一个用户
useradd -c "备注" 用户名	# 创建一个用户并添加备注
useradd -m 用户名	# 创建一个用户,如果在/home目录下不存在这个用户的目录,则会自动创建一个用户目录,存在就报错,就使用-d来创建

可以在 /etc/passwd 这个文件下查看系统下的所有用户。

删除用户

userdel 用户名 # 删除某个用户
userdel -r 用户名	# 删除用户,并删除用户的目录

修改用户

# -c是备注;-d是用户目录;-g是用户属组;
usermod -c/-d/-g 新内容 用户名 

切换用户

image-20220320172547006

在Linux中,# 表示是超级管理员的命令窗口,$ 表示是普通用户的命令窗口。

hostname 主机名 # 修改主机名称,但是是临时的,重启就失效了
su 用户名	# 切换到指定用户名下
exit # 退出账户,返回到自己用户下
sudo su root # 切换到超级管理员账户下

设置用户密码:如果用户的密码为空,不能远程连接

passwd 用户名 # 修改用户的密码

image-20220320173225081

锁定账户

passwd -l 用户名 # 锁定用户,锁定之后用户就不能登录系统了
passwd -u 用户名 # 解锁用户名

8、用户组管理

​ 每一个用户都对应一个用户组,在这个组中可以集中对用户进行管理,创建了一个用户,也会创建一个对应的用户组。在Linux中对用户组的管理实质就是对 /etc/group 文件的管理。一般在创建用户时,就可以给新建用户设置一个组,通过 -G 组名来设置组

创建用户组

groupadd 组名 # 新建一个用户组
groupadd -g 组id 组名 # 新建一个组,并指定组的id,id是唯一的,如果不指定id默认是最大id自增1

查看所有的组:cat /etc/group

image-20220320211336876

删除组

groupdel 组名 # 删除一个组

修改组

groupmod -g 新组id -n 新组名 修改的组名 # 修改组的id和组名称

9、磁盘管理

查看系统整体磁盘使用量

df # 查看系统整体磁盘使用量,以字节显示
df -h # 以MB单位显示

image-20220321155409105

查看一个目录的具体使用

# 在某个目录下使用 du 命令,查看这个目录的使用情况
du # 不包含隐藏文件
du 
du -a # 包含隐藏文件和子目录文件

image-20220321160423556

挂载和卸载

mount 外部设备 挂载的目录 # 将外部设备,挂载到需要挂载的目录下
umount -f 挂载的目录 # 强制卸载挂载的目录

10、进程管理

进程:在Linux中,每一个程序都有自己的进程,每一个进程都有一个进程编号,也有一个自己的父进程。进程分为两种,一种是前台运行、一种是后代运行的。在Linux中,一般服务都是在后台运行的,其他一般程序是前台运行。以后我们发布的SpringBoot项目需要在后台运行才行。

ps -aux # 查看所有的进程,a表示当前进程,u表示当前用户的进程,x表示后台运行的进程,这三个可以分开使用
ps -ef # 也可以查看所有的进程信息,这个可以看到父进程信息
pstree -pu # 通过目录树查看进程,p显示进程pid,u显示进程的用户组
# 在Linux中 | 这个符号是管道符,通常用于过滤,例如 A | B,就是把A查询的结果输出给B
ps -ef | grep 进程名	# -ef查看所有进程,| 进行过滤,grep查找符合条件的字符串,这个就是查看该进程的信息

image-20220321202435428

结束进程

kill -9 进程pid # 强制结束这个进程pid的进程
kill -s 进程名/进程pid	# 结束某个进程
top	# 实时显示进程的信息,q退出查看
nohup 命令	# 将服务放在后台运行,即使关闭终端,依然在服务器上运行
nohup java -jar /xxx/xxx/xxx.jar >/dev/null 2>&1 &
# >/dev/null 2>&1 &  这一部分表示 /dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉大海,没有任何的日志输出
# 也可以自定义日志输出,log.file就是日志的输出文件
nohup java -jar /xxx/xxx/xxx.jar> log.file 2>&1 &

11、防火墙管理

常用命令

firewall-cmd --list-ports # 查看防火墙开放的端口,如果使用的是阿里云服务器需要在阿里云配置安全组
firewall-cmd --zone=public --add-port=端口号/服务类型(tcp或者udp) --permanent # 开启防火墙某个端口
# --zone表示作用域是public,--add-port添加的端口号,--permanent有这个参数是永久有效,没有这个参数重启就失效
# 开启某个端口后需要重启防火墙
systemctl restart firewalld.service # 重启防火墙

systemctl start <服务名> # 启动某个服务
systemctl stop <服务名> # 停止某个服务
systemctl restart <服务名> # 重启某个服务

12、环境安装

rpm 方式安装:

​ 首先需要去官网下载对应的 rpm 包,然后上传到服务器,也可以通过在线下载 rpm 包。

rpm -qa|grep 包名称	# 查看以安装的rpm包,通过了grep过滤
rpm -e --nodeps 安装的rpm名称	# 卸载已安装的rpm包
rpm -ivh rpm包	# 进行安装rpm包

编译安装

image-20220321212310415

yum 在线安装

cat /etc/redhat-release  # 查看自己系统的版本信息
yum -y install 包名 # 在线安装包名,-y表示遇到需要确定就是是y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值