目录
1、Linux的引言
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix 的 **多用户 、 多任务 、 支持多线程和多CPU的操作系统 。**伴随着互联网的发展, Linux得到了来自全世界软件爱好者、组织、公司的支持 。它除了在 服务器操作系统 方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。目前Linux存在着许多不同的Linux发行版本, 但它们都使用了Linux内核 。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。
一些常见的Linux的版本
2、Linux的诞生
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。
Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;
MacOS是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。 全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志 。 他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。
总结 :Linux出现于 1991年 ,是由 芬兰赫尔辛基大学学生 , Linus,Torvalds 和后来加入的众多爱好者共同开发完成
3、Linux的特点
1、完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
2、多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。 多任务 则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。同时 `丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,出色的速度性能 。
4、Linux之Cent OS
介绍
CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一 ,它是来自于Red HatEnterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS完全开源。
centos 和 readheat区别
目前的Linux操作系统主要应用于生产环境, 主流企业的Linux系统仍旧是RedHat或者CentOS ,他们出自于同样的源代码,但centos完全免费。其独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务.
5、安装Cent OS
1、下载
2、打开VMware Workstation
3、选择菜单File的第一项新建虚拟机
4、选择自定义虚拟机安装
5、选择下一步
6、虚拟机设置之后安装系统
7、选择虚拟机安装系统以及版本
8、选择虚拟机名称与位置
9、设置处理器数
10、设置虚拟机内存
11、选择网络模式
12、选择io总线 下一步
13、选择新建硬盘
14、选择硬盘类型
15、拆分硬盘
16、设置磁盘位置
17、创建完成
6、Linux中的目录结构
- bin (binaries)存放二进制可执行文件 [重点]
- sbin (super user binaries)存放二进制可执行文件,只有root才能访问
- etc (etcetera)存放系统配置文件 [重点]
- usr (unix shared resources)用于存放共享的系统资源 [重点]
- home 存放用户文件的根目录 [重点]
- root 超级用户目录 [重点]
- dev (devices)用于存放设备文件
- lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt (mount)系统管理员安装临时文件系统的安装点
- boot 存放用于系统引导时使用的各种文件
- tmp (temporary)用于存放各种临时文件 [重点]
- var (variable)用于存放运行时需要改变数据的文件
7、Linux中常用指令
指令格式
命令 -选项 参数
如: ls -l /usr
运行级别
- 0:关机
- 1:单用户(找回密码)
- 2:多用户没有网络
- 3:多用户有网络
- 4:系统未使用,留给用户
- 5:图形界面
- 6:系统重启
切换运行级别
切换运行级别:init 3
获取和设置运行级别
获取用户级别:systemctl get-default
设置用户级别:systemctl set-default 运行级别
systemctl set-default multi-user.target
systemctl set-default graphical.target
帮助指令
man
语法:man 指令或者配置文件
help
语法:help 命令(获得shell内置命令的帮助信息)
文件目录命令
pwd
显示当前路劲
ls
列出当前路劲下文件和目录
-a :列出隐藏文件和目录
-l :以列表方式显示信息
cd
切换目录
cd .. :返回上一级目录
cd ~ :返回自己家目录
mkdir
创建目录
语法:mkdir 【选项】 要创建的目录
常用选项
-p 创建多级目录
rmdir
echo I am cool >> aa.txt 说明:将这段
内容输入到文件中
删除目录
语法:rmdir 【选项】要删除的空目录
常用选项
-rf 递归删除目录下所有文件和目录
touch
创建空文件
语法:touch 文件名
cp
拷贝指令
语法:cp 【选项】source dest
常用选项
-r 递归复制所有文件
注意:
\cp 直接覆盖不提示确认
rm
删除文件或目录
语法:rm 【选项】 要删除的文件或目录
常用选项
-f :强制删除不提示
-r 递归删除
mv
移动文件和目录或者重命名
语法:mv 【选项】 oldfile newfile
cat查看文件内容
语法:cat 【选项】 文件名
常用选项
-n 显示行号
more
语法:more 要查看的文件
常用操作:
enter:下一行
空格:下一页
ctr+f :下一屏
ctr+b :返回上一屏
=:输出当前行行号
q:退出查看
:f:输出当前行号和文件名
less
语法:less 要查看的文件(不是一次加载)
常用操作:
空格:下一页
pagedown:下一页
pageup:上一页
/字符串:向下查找字符串 n向下查找 N向上查找
?字符串:向上查找字符串 n向下查找 N向上查找
echo
输出内容到控制台语法:echo 【选项】【输出内容】
输出环境变量:echo $PATH
输出主机名称:echo $HOSTNAME
head
用于显示文件开头部分内容,默认显示前10行
head -n 5 文件:显示文件前5行内容
tail
和head用法一致,作用相反
tail -f 文件 :实时监控文件更新
>和>>
>>输出重定向 >>追加
语法:
ls -l >a.txt:列表内容写入到a.txt(覆盖)
ls -l >>a.txt:列表内容追加写入到a.txt
cat a.txt > b.txt:将文件a的内容覆盖文件b
echo “hello” >>a.txt:将hello字符串追加的a.txt末尾
ln
软连接类似于Windows的快捷方式
语法:ln -s 【源文件或目录】 链接名称
history
查看已经执行过的历史指令,也可以执行历史指令
语法:history
history 10:显示最近执行的10条指令
执行编号为5的指令:!5
网络相关命令
1.ip addr 查看IP地址
或 ifconfig
2.ping 测试网络连通性
ping www.baidu.com
3、chkconfig
查看服务
chkconfig --list | grep xxx
4、systemctl服务管理
语法
systemctl 【start,stop,restart,reload,status】 服务名
systemctl 管理的服务在/usr/lib/systemd/system
systemctl 设置服务的自启动状态
systemctl list-unit-files 【|grep xxx】列出服务的启动状态
systemctl enable 服务名:设置开机启动
systemctl disable 服务名:关闭服务开机启动
systemctl is-enable 服务名:查看某个服务是否自启动
5、打开或关闭防火墙指定端口
firewall指令
打开端口:firewall-cmd --permanent --add-port=端口/协议
关闭端口:firewall-cmd --permanent --remove-port=端口/协议
重新载入才能生效:firewall-cmd --reload
查询某个端口是否打开:firewall-cmd --query-port=端口/协议
压缩和解压命令
1、gzip和gunzip
gizp用于压缩,gunzip用于解压
语法
gzip 文件 只能将文件压缩为*.gz文件
2、zip和unzip
zip用于压缩文件,unzip用于解压
语法
zip 【选项】 xxx.zip 将要压缩的内容
unzip 【选项】 xxx.zip
选项
-r 递归压缩
-d 指定解压目录
3、tar指令
tar指令是打包指令,最后打包的文件是.tar.gz的文件
语法
tar 【选项】 xxx.tar.gz 要打包的文件
选项
-c 建立一个压缩文件的参数指令(create)
-x 解开一个压缩文件的参数指令(extract)
-z 是否需要用 gzip 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)
案例
tar -cvf aaa.tar file1.txt file2.txt 将file1和2打包成aaa.tar
tar -zcvf pc.tar.gz pig.txt cat.txt 将pig.txt和cat.txt压缩到pc.tar.gz
tar -zxvf pc.tar.gz 将pc.tar.gz解压到当前文件夹
tar -zxvf pc.tar.gz -C /aaa 将pc.tar.gz解压到aaa文件夹下
进程相关命令
# 1.ps 询在当前控制台上运行的进程
ps -aux 说明:查询系统中所有运行的进程,包括后台进程,其中参数
a是所有进程,参数x包括不占用控制台的进程,参数u显示用户。
ps -ef 说明:查询系统中所有运行的进程,包括后台进程,而且可
以显示出每个进程的父进程号。
# 2.top 命令 动态显示系统进程
# 3.kill 杀死进程
# 1.ps 询在当前控制台上运行的进程
ps -aux 说明:查询系统中所有运行的进程,包括后台进程,其中参数
a是所有进程,参数x包括不占用控制台的进程,参数u显示用户。
ps -ef 说明:查询系统中所有运行的进程,包括后台进程,而且可
以显示出每个进程的父进程号。
# 2.top 命令 动态显示系统进程
# 3.kill 杀死进程
kill 3029 说明:上述命令中3029是进程号;一般在执行kill命令之前,先用ps或pstree来查询一下将要被杀掉的进程的进程号。
kill -9 3029 说明:强制终止3029号进程的运行,其中参数-9代表强制的意思,实际上kill命令是向该进程发送信号,该进程接到信号后决定是否停止运行,有些守护进程必须要收到参数9才终止运行。
vi命令
vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
----------------重点---------------------------
:set nu 显示行号
:set nonu 取消行号
gg 到文本的第一行
G 到文本的最后一行
:n 到文本的第n行
------------------重点-------------------------
u undo,取消上一步操作
Ctrl + r redo,返回到undo之前
-------------------重点------------------------
Shift+ zz 保存退出,与“:wq”作用相同
:q 退出不保存
:q! 强制退出不保存
:wq 保存退出
:wq! 强制保存退出
软件相关命令
RPM命令
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便
rpm 命令
常用参数:
i:安装应用程序(install)
e:卸载应用程序(erase)
vh:显示安装进度;(verbose hash)
U:升级软件包;(update)
qa: 显示所有已安装软件包(query all)
例子:rmp -ivh gcc-c++-4.4.7-3.el6.x86_64.rpm
YUM命令
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
例子:
yum install gcc-c++
yum remove gcc-c++
yum update gcc-c++
用户操作
添加用户
语法:useradd 用户名,添加用户时默认在家目录创建对应用户名的家目录
指定和修改密码
语法:passwd 用户
删除用户
语法:userdel 用户
userdel 用户:删除用户,保留家目录
userdel -r 用户:删除用户和对应的家目录
查询用户信息
# 1.查看当前用户:whoami
# 2.查看登录用户:who
-m或am I 只显示运行who命令的用户名、登录终端和登录时间
-q或--count 只显示用户的登录账号和登录用户的数量
# 3.退出用户: exit
# 4.添加、删除组账号:groupadd、groupdel
# 5.添加用户账号:useradd
-g 指定组名称 说明:如果创建用户的时候,不指定组名,那么系统
会自动创建一个和用户名一样的组名。
# 6.设置用户密码:passwd [用户名]
# 7.su 切换用户
su root语法:id 用户
查看当前用户/登录用户
语法:who am i
注意:who am i是第一次登录到系统的用户信息
用户组
添加用户组
语法:groupadd 组名
删除组
语法:groupdel 组名
添加用户指定组
语法:useradd -g 组名 用户名
修改用户组
语法:usermod -g 组名 用户名
用户和组的相关文件
- etc/passwd 文件:用户的配置文件存储用户的信息每行含义:用户名:口令:用户表示:组别表示:注释性描述:主目录:登录的shell
- etc/shadow文件:口令配置文件每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- etc/group 文件:组配置文件,记录linux组信息每行含义:组名:口令:组标识:组内用户列表
权限相关命令
Linux文件有 三种 典型的权限, 即r读权限、w写权限和x执行权限 。在长格式输出中在文件类型的后面有9列权限位,实际上这是针对不同用户而设定的。 r=4,w=2,x=1
ll显示如下:
-rw-r–r-- 1 tom tom 33 5月 4 11:08 a.txt
0-9位说明
- 第0位表示文件类型(d目录,-普通文件,l链接,c是字符设备,b是
块设备例如硬盘) - 第1-3位表示所有则 --user
- 第4-6位表示所属组 --group
- 第7-9位表示其他组 --other
rwx
rwx作用到文件
- r:表示可读,可以读取查看
- w:表示可写,可以修改,但不表示可以删除,删除一个文件件的前天是对该文件所在目录具有写权限
- x:表示可以执行
rwx作用到目录 - r:可以读取,ls查看目录内容
- w:可以修改,对目录内创建,删除,重命名目录
- x:表示可以进入该目录
可以使用数组表示对应权限 - r:4
- w:2
- x:1
案例
-rw-r–r-- 1 tom tom 33 5月 4 11:08 a.txt
-rw:tom用户对a.txt拥有读写权限
r–:tom所在组用户对a.txt拥有读权限
r–:其他组对a.txt拥有读权限
1:如果是目录表示目录下得文件个数
修改权限
基本说明
通过chmod指令可以修改文件或目录的权限
语法
第一种方式:+,-,=变更权限
u所有者,g所有组,o其他组,a所有(包含u,g,o)
- chmod u=rwx,g=rx,o=x 文件名/目录名
- chmod u+x 文件名/目录名3. chmod a-x 文件名/目录名
第二种方式:通过数字变更权限
给a.txt所有者添加读写执行权限,给所在组添加读执行权限,给其他组添
加读权限
chmod 754
修改文件所有者权
语法
chown newowner 文件目录 :修改文件所有者
chown newowner:newgroup 文件目录 :修改文件所有者所在组
如果是目录 -R,递归修改所有权限
修改文件所在组
chgrp newowner 文件目录
时间日期类
date
显示当前日期
语法:
date 显示当前日期
date +%Y:显示当前年份
date +%m:显示当前月份
date +%d:显示当前那一天
date “+%Y-%m-%d %H:%M:%S”:按指定格式显示年月日时分秒
date -s 日期字符串 :设置时间
cal
日历指令
cal 2021:显示2021年所有月份日历
搜索查找类
find指令
从指定目录递归查找指定文件
语法:
find 【搜索范围】 【选项】
选项:
-name :按照文件名查找
-size:按照文件大小查找 +大于 -小于
-user:按照所属用户查找
locate
Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的
数据库内,查找合乎范本样式条件的文档或目录。
locate之前先进性updatedb更新数据库
which
查看某个指令在那个目录下
which ls
grep
grep指令一般和管道符|一起实用,过滤查找,将前一个查询结果传递给后
面的处理命令
语法
grep 【选项】查找内容 源文件
常用选项-n :显示匹配行以及行号
-i :字母忽略大小写
案例:在a.txt查找字符串yes并显示行号
cat a.txt | grep -n “yes”
grep “yes” a.txt
8、Jdk安装
1、下载JDK
官网地址
2.通过CRT|XFTP工具将jdk上传到linux系统中
# 1.将JDK解压缩到指定目录
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/
注意:-C参数是将JDK解压之后文件放入usr目录中
# 2.进入jdk解压缩目录查看
cd /usr/jdk1.8.0_171/
# 3.查看详细信息
[root@localhost jdk1.8.0_171]# ls
bin db javafx-src.zip lib man
release THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT include jre LICENSE
README.html src.zip THIRDPARTYLICENSEREADME.txt
# 4.配置环境变量
vi /etc/profile
# 5.在文件末尾加入如下配置
export JAVA_HOME=/usr/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
# 6.加载配置生效
source /etc/profile 加载配置生效
reboot 重启系统
注意: 以上两个选项选择任意一个即可source可以不用重启立即生效,某些
情况下source无法生效时,可以使用重启试试
# 7.测试环境变量
java
javac
java -version
9、安装MySql
在线安装
# 1.添加官方的yum源创建并编辑mysql-community.repo文件
vi /etc/yum.repos.d/mysql-community.repo
# 2.粘贴以下内容到源文件中
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-
community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
注意:如果需要安装mysql5.7只需要将baseurl修改即可
baseurl=http://repo.mysql.com/yum/mysql-5.7-
community/el/7/$basearch/
# 3.安装mysql
sudo yum install mysql-community-server
设置root用户密码
# 1.启动mysql数据库
[root@localhost mysql]# systemctl start mysqld
# 2.修改mysql数据库密码
mysqladmin -u root -p password 回车 输入原始密码 在输入新的密
码
注意:5.7之前版本安装完成之后没有密码,mysql5.7之后的版本的初始密
码是随机生成的,放在了 /var/log/mysqld.log
使用命令 grep ‘temporary password’
/var/log/mysqld.log 读出来即可
# 3.登录mysql
[root@localhost mysql]# mysql -u root -p
开启远程访问
1.安装完成mysql时,发现mysql数据库,不允许我们远程连接需要修改设置
2.登录mysql,并选择使用mysql数据库
3.查看mysql库中的所有表
4.查询user表
5.执行如下命令
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
6.刷新权限
flush privileges;
7.重启服务
systemctl restart mysqld
8.测试连接
10、安装Tomcat
1、下载
下载地址tomcat8
2、1.通过工具上传到Linux系统中
3、2.解压缩到/usr目录中
tar -zxvf apache-tomcat-8.5.46.tar.gz-C /usr/
4、查看解压内容
[root@localhost apache-tomcat-8.5.46]# ls -l
总用量 124
drwxr-x---. 2 root root 4096 10月 13 12:27 bin
-rw-r-----. 1 root root 19318 9月 17 02:19 BUILDING.txt
drwx------. 2 root root 238 9月 17 02:19 conf
-rw-r-----. 1 root root 5407 9月 17 02:19
CONTRIBUTING.md
drwxr-x---. 2 root root 4096 10月 13 12:27 lib
-rw-r-----. 1 root root 57011 9月 17 02:19 LICENSE
drwxr-x---. 2 root root 6 9月 17 02:17 logs
-rw-r-----. 1 root root 1726 9月 17 02:19 NOTICE
-rw-r-----. 1 root root 3255 9月 17 02:19 README.md11.安装MySQL
11.1 环境准备
11.2 本地安装
-rw-r-----. 1 root root 7139 9月 17 02:19 RELEASE-NOTES
-rw-r-----. 1 root root 16262 9月 17 02:19 RUNNING.txt
drwxr-x---. 2 root root 30 10月 13 12:27 temp
drwxr-x---. 7 root root 81 9月 17 02:17 webapps
drwxr-x---. 2 root root 6 9月 17 02:17 work
5、启动tomcat
[root@localhost apache-tomcat-8.5.46]# ./bin/startup.sh
6、关闭网络防火墙
systemctl stop firewalld 关闭网络防火墙
systemctl disable firewalld 关闭开启自启动(永久关闭)
7、在windows中访问tomcat
http://10.15.0.8:8080/
8、显示tomcat实时控制台信息
进入tomcat的logs目录中使用tail -f catalina.out 命令实时查看控制台信息
9、关闭tomcat
在tomcat的bin目录下面使用 ./shutdown.sh
11、安装Nginx
# 0.安装必要依赖
yum install -y gcc pcre-devel zlib-devel# 1.下载Nginx
http://nginx.org/en/download.html
# 2.将Nginx上传到linux中,并解压缩
tar -zxvf nginx-1.11.1
# 3.查看Nginx安装目录
[root@localhost nginx-1.11.1]# ls
auto CHANGES CHANGES.ru conf configure contrib html
LICENSE man README src
# 4.在Nginx安装目录中执行如下命令:(指定安装位置)
./configure --prefix=/usr/nginx
# 5.执行上述命令后,执行如下命令:
make && make install
# 6.编译完成后进入编译安装目录/usr/nginx目录中查看:
[root@localhost nginx]# ls -l
总用量 4
drwxr-xr-x. 2 root root 4096 10月 14 21:17 conf
drwxr-xr-x. 2 root root 40 10月 14 21:17 html
drwxr-xr-x. 2 root root 6 10月 14 21:17 logs
drwxr-xr-x. 2 root root 19 10月 14 21:17 sbin
# 7.启动nginx,进入nginx安装目录的sbin目录中执行:
./nginx
# 8.在windows中浏览器访问,可以看到nginx欢迎页面:
http://10.15.0.8:80/
注意:关闭网络防火墙
# 9.关闭nginx,进入nginx安装目录的sbin目录中执行:
./nginx -s stop
# 10.nginx配置文件在nginx安装目录的conf目录中:
[root@localhost conf]# ls -l
总用量 60
-rw-r--r--. 1 root root 2656 10月 14 21:17 nginx.conf
.......注意:nginx.conf为nginx的配置文件,可以在nginx.conf修改nginx默认
配置