一、Linux概述
1.简要介绍
1、Linux内核最初只是由芬兰人林纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。(Unix)
2、Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
3、Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2.特点
1、开源:用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。(!=免费)。
2、多用户:各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。
3、多任务:可以多个程序同时独立地运行。
4、良好的界面:Linux同时具有字符界面和图像界面。建议大家使用字符界面(也被称为命令行界面)。
5、支持多平台:可以在多种硬件平台上安装和运行,如X86或嵌入式系统
3.发行版
Linux的发行版说简单点就是将Linux内核与应用软件做一个打包
Linux主要的发行版
1.RedHat Linux:红帽企业级Linux,它有众多的程序支持,同时也可以提供技术服务,由于他是商业化产品,所有不是免费的。
2.CentOS:一款企业级Linux,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标,免费版。
3.其他: Ubuntu、Debain、Fedora、SuSE、OpenSUSE、TurboLinux、BluePoint、RedFlag、Xterm、SlackWare等
Ø1.4.3.Linux应用领域
从嵌入式设备到超级计算机,并且在服务器领域使用非常多。
4.目录结构
1.Linux系统的目录是一个倒树型的结构,最大的目录是/(根目录).
2.二级目录作用如下:
/bin:二进制可执行文件,系统常规命令。
/boot:启动目录,存放系统自动启动文件、内核、初始化程序。
/dev:系统设备管理文件。
/etc:大部分服务的配置文件。
/home:普通用户的家目录。:存放普通用户的主目录。
普通用户的家目录包含在超级用户的家目录中。
在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名。
/lib:函数库:系统开机所需要最基本的动态连接库。几乎所有应用程序都需要用到这些共享库。
/lib64:64函数库:等同lib。
二、常用命令
1.文件管理
1.1.ls命令 显示目录中文件及其属性信息
ls命令来自英文单词”list“的缩写,中文译为“列出”,其功能是用于显示目录中文件及其属性信息,是最常被使用到的Linux命令之一。
1.1.1.语法格式
ls [参数] [文件名]
1.1.2.常用参数
1.1.3.参考示例
ls
显示当前目录中的文件名(默认不含隐藏文件)
ls -a
显示当前目录中的文件名(含隐藏文件)
ls -l
以详细信息模式输出文件名及其属性信息
ls …/bin
显示指定目录中的文件列表
ls /dev/sd*
结合通配符一起使用,显示指定目录中所有以sd开头的文件列表
ls -Sl ./
依据文件内容大小进行排序,显示指定目录中文件名及其属性详情信息
1.2.cp命令 复制文件或目录
cp命令来自英文单词“copy”的缩写,中文译为“复制”,其功能是用于复制文件或目录。cp命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r参数用于递归操作,复制目录时若忘记添加则会直接报错,而-f参数则用于当目标文件已存在时会直接覆盖不再询问,这两个参数尤为常用。
1.2.1.语法格式
cp [参数] 源文件名 目标文件名
1.2.2.常用参数
1.2.3.参考示例
cp ace-quartz.jar ace-quartz.jar_20230724bak
复制指定源文件,并定义新文件名称
cp -r ace-quartz ace-quartz-20230724
复制指定源目录,并定义新目录名称
cp -a ace-quartz.sh ace-quartz-bak.sh
复制文件时,保留其原始权限及用户归属信息
cp -f File1.cfg /etc
将指定文件复制到/etc目录中,并覆盖已有文件,不进行询问
cp File1.cfg File2.cfg /etc
将多个文件一同复制到/etc目录中,如已有目标文件名称则默认询问是否覆盖
1.3.mkdir命令
mkdir命令来自英文词组”make directories“的缩写,其功能是用来创建目录文件。使用方法简单,但需要注意若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。而目录不存在,但具有嵌套的依赖关系时,例如/Dir1/Dir2/Dir3/Dir4/Dir5,要想一次性创建则需要加入-p参数,进行递归操作。
1.3.1.语法格式
mkdir [参数] 目录名
1.3.2.常用参数
1.3.3.参考示例
mkdir Dir1
创建一个目录
mkdir -m 700 Dir2
创建一个目录文件并设置700权限,不让除所有主以外任何人读、写、执行它
mkdir Dir3 Dir4 Dir5
一次性创建多个目录文件
mkdir -p ./Dir1/Dir2/Dir3/Dir4/Dir5
在系统根目录中,一次性创建多个有嵌套关系的目录文件
1.4.mv命令 移动或改名文件
mv命令来自英文单词”move“的缩写,中文译为”移动“,其功能与英文含义相同,能够用于对文件进行剪切和重命名操作。这是一个被高频使用的文件管理命令,我们需要留意它与复制命令的区别。cp命令是用于文件的复制操作,文件个数是增加的,而mv则为剪切操作,也就是对文件进行移动(搬家)操作,文件位置发生变化,但总个数并无增加。 而在同一个目录内对文件进行剪切的操作,实际应理解成重命名操作
1.4.1.语法格式
mv [参数] 源文件名 目标文件名
1.4.2.常用参数
1.4.3.参考示例
mv Dir6/ Dir7
对指定文件进行剪切后粘贴(重命名)操作
mv ace-quartz.log Dir7/
将指定文件移动到/etc目录中,保留文件原始名称
mv ace-quartz.log Dir2/ace-quartz.log_bak
将指定目录移动到/etc目录中,并定义新的目录名称
mv -f /home/* .
将/home目录中所有的文件都移动到当前工作目录中,遇到已存在文件则直接覆盖
1.5.pwd命令 显示当前工作目录的路径
pwd命令来自英文词组“print working directory”的缩写,其功能是用于显示当前工作目录的路径,即显示所在位置的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,可以使用pwd命令快速查看当前所处的工作目录路径,方便开展后续工作
1.5.1.语法格式
pwd [参数]
1.5.2.常用参数
1.5.3.参考示例
pwd
显示当前工作文件目录
1.6.tar命令 压缩和加压缩文件
tar命令的功能是用于压缩和解压缩文件,能够制作出Linux系统中常见的.tar、.tar.gz、.tar.bz2等格式的压缩包文件。对于RHEL7、CentOS7版本以后的系统,解压缩时可以不添加格式参数(如z或j),系统也能自动进行分析并解压。
把要传输的文件先进行压缩再进行传输,能够很好地提高工作效率,方便分享
1.6.1.语法格式
tar 参数 压缩包名 [文件或目录名]
1.6.2.常用参数
1.6.3.参考示例
tar zcvf Dir2.tar.gz Dir2/
使用gzip压缩格式对指定目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.gz
tar zxvf Dir2.tar.gz
解压指定压缩包到当前工作目录
tar zxvf Dir2.tar.gz -C Dir3/
解压指定压缩包到/etc目录
tar tvf Dir2.tar.gz
查看某个压缩包内文件信息(无需解压)
1.7.cat命令 在终端设备上显示文件内容
cat命令来自英文词组”concatenate files and print“的缩写,其功能是用于在终端设备上显示文件内容。在Linux系统中有很多用于查看文件内容的命令,例如more、tail、head……等等,每个命令都有各自的特点。cat命令适合查看内容较少、纯文本的文件。 对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+c键中断命令执行,所以对于大文件,干脆用more命令吧
1.7.1.语法格式
cat [参数] 文件名
1.7.2.常用参数
1.7.3.参考示例
cat ace-quartz.sh
查看指定文件的内容
cat -n ace-quartz.sh
查看指定文件的内容并显示行号
cat /dev/null > ace-quartz.jar_20230724bak
搭配空设备文件和输出重定向操作符,清空指定文件内容
1.8.echo命令 输出字符串或提取后的变量值
echo命令来自英文单词“回声”,其功能是用于在终端设备上输出指定字符串或变量提取后的值,能够给用户一些简单的提醒信息,亦可以将输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息再来进行二次处理,又或是同输出重定向符一起操作,将信息直接写入到文件中。
如需提取变量值,需在变量名称前加入$符号做提取,变量名称一般均为大写形式。
1.8.1.语法格式
echo [参数] 字符串或$变量名
1.8.2.常用参数
1.8.3.参考示例
echo linux
在终端打印指定内容
echo $PATH
输出某个变量值
echo “Hello World” > Doc.txt
搭配输出重定向符一起使用,将字符串内容直接写入文件中
echo -e “First\nSecond\nThird”
输出带有换行符的内容
1.9.rm命令 – 删除文件或目录
rm命令来自英文单词“remove”的缩写,中文译为“消除”,其功能是用于删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。
rm也是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意,如执行rm -rf /*命令则会清空系统中所有的文件,甚至无法恢复回来。所以我们在执行之前一定要再次确认下在哪个目录中,到底要删除什么文件,考虑好后再敲击回车键,时刻保持清醒的头脑。
1.9.1.语法格式
rm [参数] 文件名
1.9.2.常用参数
1.9.3.参考示例
rm Doc.txt
删除文件默认会进行二次确认,敲击y进行确认
rm -f Doc.txt
强制删除文件而无需二次确认
删除指定目录及其内的全部子文件,一并都强制删除
rm -rf Dir2
删除指定目录及其内的全部子文件,一并都强制删除
rm -rf ./*.txt
强制删除当前工作目录内的所有以.txt为后缀的文件
rm -rf /*
【离职小妙招,谨慎!!!】强制清空服务器系统内的所有文件 , 一般不要使用!!!
1.10.grep命令 强大的文本搜索工具
grep来自英文词组“global search regular expression and print out the line”的缩写,意思是用于全面搜索的正则表达式,并将结果输出。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。
与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作是标准搜索命令,那么egrep则是扩展搜索命令,等价于“grep -E”命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于“grep -F”命令,不支持正则表达式,直接按照字符串内容进行匹配。
1.10.1.语法格式
grep [参数] 文件名
1.10.2.常用参数
1.10.3.参考示例
grep root /etc/passwd
搜索指定文件中包含某个关键词的内容行
grep ^root /etc/passwd
搜索指定文件中以某个关键词开头的内容行
grep linuxprobe /etc/passwd /etc/shadow
搜索多个文件中包含某个关键词的内容行
1.11.tail命令 查看文件尾部内容
tail命令的功能是用于查看文件尾部内容,例如默认会在终端界面上显示出指定文件的末尾十行,如果指定了多个文件,则会在显示的每个文件内容前面加上文件名来加以区分。
高阶玩法的-f参数作用是持续显示文件的尾部最新内容,类似于机场候机厅的大屏幕,总会把最新的消息展示给用户,对阅读日志文件尤为适合,再也不需要手动刷新了。
1.11.1.语法格式
tail [参数] 文件名
1.11.2.常用参数
1.11.3.参考示例
tail ace-quartz.2022-09-05.0.log
默认显示指定文件尾部的后10行内容
tail -n 5 ace-quartz.2022-09-05.0.log
指定显示指定文件尾部的后5行内容
tail -f ace-quartz.2022-09-05.log
持续刷新显示指定文件尾部的后10行内容
1.12.find命令 根据路径和条件搜索指定的文件
find命令的功能是用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是Linux系统运维人员日常工作必须掌握的命令之一。
find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate……等的有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源
1.12.1.语法格式
find [路径] [条件] 文件名
1.12.2.常用参数
1.12.3.参考示例
find / -name *.conf
全盘搜索系统中所有以.conf结尾的文件
find /etc -size +1M
在/etc目录中搜索所有大于1M大小的文件
find /home -user es
在/home目录中搜索所有属于指定用户的文件
find /var/log -iname “*.log”
在/var/log目录下搜索所有指定后缀的文件,后缀不需要大小写
1.13.ps命令 显示进程状态
ps命令来自英文单词“process”的缩写,中文译为“进程”,其功能是用于显示当前系统的进程状态。使用ps命令可以查看到进程的所有信息,例如进程的号码、发起者、系统资源使用占比(处理器与内存)、运行状态等等。帮助我们及时地发现哪些进程出现“僵死”或“不可中断”等异常情况。
经常会与kill命令搭配使用来中断和删除不必要的服务进程,避免服务器的资源浪费。
1.13.1.语法格式
ps [参数]
1.13.2.常用参数
1.13.3.参考示例
ps aux
显示系统中全部的进程信息,含详细信息
ps aux > File.txt
结合输出重定向,将当前进程信息保留备份至指定文件
ps -ef | grep ssh
结合管道操作符,将当前系统运行状态中指定进程信息过滤出来
ps -u root
结合管道操作符,将当前系统运行状态中指定用户的进程信息过滤出来
三、其它命令
3.1.防火墙操作
1.关闭/开启防火墙
systemctl stop firewalld.service
systemctl start firewalld.service
systemctl status firewalld.service
若无法开启
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service
2.开启开机自启动
systemctl enable firewalld.service
3.关闭开机自启动
systemctl disable firewalld.service
4.查看防火墙状态
systemctl status firewalld
5.开启端口
#(–permanent永久生效,没有此参数重启后失效) #注:可以是一个端口范围,如1000-2000/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
6.重启防火墙(重新载入,更新配置)
firewall-cmd --reload
7.查询某个端口是否开放
firewall-cmd --query-port=80/tcp
8.移除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 或
firewall-cmd --permanent --remove-port=123/tcp
9.查询已开放的端口列表
firewall-cmd --list-port
3.2.环境变量配置
1.编辑文件
vim /etc/profile
2.输入配置
export JAVA_HOME=/home/language/jdk1.8.0_201
export JRE_HOME=
J
A
V
A
H
O
M
E
/
j
r
e
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
.
:
{JAVA_HOME}/jre export CLASSPATH=.:
JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib:
J
R
E
H
O
M
E
/
l
i
b
e
x
p
o
r
t
P
A
T
H
=
{JRE_HOME}/lib export PATH=
JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH
3.刷新配置
source /etc/profile