Linux基础
一、基本命令
二、目录操作命令
2.1 目录切换 cd
2.2 目录查看 ls [-al]
2.3 目录操作【增,删,改,查】
三、文件操作命令
3.1 文件操作【增,删,改,查】
3.1.1 新建文件【增】touch
3.1.2 删除文件 【删】 rm
3.1.3 修改文件【改】 vi或vim
3.1.4 文件的查看【查】
3.1.5 重定向输出>和>>
重定向输出,覆盖原有内容;>> 重定向输出,有追加功能;示例:
cat /etc/passwd > a.txt 将输出定向到a.txt中
cat /etc/passwd >> a.txt 输出并且追加
ifconfig > ifconfig.txt
3.1.6管道
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。示例
ls --help | more 分页查询帮助信息
ps –ef | grep java 查询名称中包含java的进程
ifconfig | more
cat index.html | more
ps –ef | grep aio
3.2 权限修改
四、压缩文件操作
五、查找命令
5.1 grep
5.2 find
5.3 which
六、su、sudo
6.1 su
6.2 sudo
七、系统相关
1.服务
service --status–all 查看系统中所有后台服务
netstat –nltp 查看系统中网络进程的端口监听情况
2.系统管理
top 实时显示 process 的动态
top -p 查看进程的pid
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
3.日期管理
date [参数选项]
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息
设置时间 date -s "2019-12-11 16:15:00"
显示时间 date
八、网络管理
8.1 主机名配置
hostname 查看主机名
hostname xxx 修改主机名 重启后无效
如果想要永久生效,可以修改/etc/sysconfig/network文件
8.2 IP 地址配置
ifconfig 查看(修改)ip地址(重启后无效)
ifconfig eth0 192.168.12.22 修改ip地址
如果想要永久生效
修改 /etc/sysconfig/network-scripts/ifcfg-eth0文件
DEVICE=eth0 #网卡名称
BOOTPROTO=static #获取ip的方式(static/dhcp/bootp/none)
HWADDR=00:0C:29:B5:B2:69 #MAC地址
IPADDR=12.168.177.129 #IP地址
NETMASK=255.255.255.0 #子网掩码
NETWORK=192.168.177.0 #网络地址
BROADCAST=192.168.0.255 #广播地址
8.3 域名映射
/etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用,相当于windows系统的C:\Windows\System32\drivers\etc\hosts文件的功能
8.4 网络服务管理
如果没有命令 安装yum install iptables-services
service network status 查看指定服务的状态
service network stop 停止指定服务
service network start 启动指定服务
service network restart 重启指定服务
service --status–all 查看系统中所有后台服务
netstat –nltp 查看系统中网络进程的端口监听情况
防火墙设置
防火墙根据配置文件/etc/sysconfig/iptables来控制本机的”出”、”入”网络访问行为。
service iptables status 查看防火墙状态
service iptables stop 关闭防火墙
service iptables start 启动防火墙
chkconfig iptables off 禁止防火墙自启
九、用户管理
Linux账号管理
1) 添加用户
useradd 选项 用户名
- 选项:
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
2) 用户口令
超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令
passwd 选项 用户名
可使用的选项:
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
3) 修改用户
usermod 选项 用户名
usermod -l czbk2019 czbk :将用户czbk用户名修改成czbk2019
4) 删除用户
userdel 选项 用户名
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件
userdel czbk2019 此命令删除用户czbk2019
Linux用户组
1) 增加用户组
groupadd 选项 用户组
使用的选项有:
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
groupadd czbk-it 新增用户组czbk-it
2) 修改用户组
groupmod 选项 用户组
常用的选项有:
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
groupmod -n czbk-it-2021 czbk-it 将组czbk-it的组名修改为czbk-it-2021。
3) 查询用户所属组
groups 用户名
groups aa 查询用户aa属于某个用户组
4) 删除用户组
groupdel 用户组
groupdel czbk-it-2021 删除czbk-it-2021用户组
将用户添加到组
1、创建一个新的组,并添加组ID(需要切换到root用户)
groupadd -g 8888 itbj2020group
2、创建3个用户(需要切换到root用户)
useradd itbeijinguser1
useradd itbeijinguser2
useradd itbeijinguser3
3、将上面三个用户添加到组itbj2020group
我们通过passwd命令将三个用户添加到组
gpasswd [可选项] 组名
gpasswd -a itbeijinguser1 itbj2020group
gpasswd -a itbeijinguser2 itbj2020group
gpasswd -a itbeijinguser3 itbj2020group
查看效果
grep 'itbj2020group' /etc/group
用户操作
显示用户
logname [--help][--version]
显示登录账号的信息 logname
su切换账户
su -c ls root 变更帐号为 root 并在执行 ls 指令后退出返回原使用者
id命令
id [-gGnru][--help][--version][用户名称]
- -g或--group 显示用户所属群组的ID。
- -G或--groups 显示用户所属附加群组的ID。
- -n或--name 显示用户,所属群组或附加群组的名称。
- -r或--real 显示实际ID。
- -u或--user 显示用户ID。
- -help 显示帮助。
- -version 显示版本信息。
常用的也就是id命令,不带参数的 看他的uid和组信息
十、其他命令
Linux 通过RPM包安装 MySQL 8.0
安装前,我们可以检测系统是否自带安装 MySQL:
rpm -qa | grep mysql
如果你系统有安装,那可以选择进行卸载:
// 普通删除模式
rpm -e mysql
// 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
rpm -e --nodeps mysql
安装 MySQL:
接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源包,下载地址:https://dev.mysql.com/downloads/repo/yum/
这里我们选择使用wget下载:
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
安装:
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum install mysql-server
安装过程中会需要提示下载依赖,按y确认下载即可:
初始化MySQL:
mysqld --initialize
1
启动 MySQL:
service mysqld start
查看 MySQL 运行状态:
service mysqld status
验证 MySQL 安装
在成功安装 MySQL 后,一些基础表会被初始化,在服务器启动后,你可以通过简单的测试来验证 MySQL 是否工作正常。
使用 mysqladmin 工具来获取服务器状态:
mysqladmin --version
linux上该命令将输出以下结果,该结果基于你的系统信息:
如果以上命令执行后未输入任何信息,说明你的Mysql未安装成功。
使用 MySQL Client(Mysql客户端) 执行简单的SQL命令
你可以在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到Mysql服务器上,默认情况下Mysql服务器的密码为空,所以本实例不需要输入密码。
命令如下:
mysql -uroot -p
以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:
安装问题错误解决:
1.Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details. 错误
根据提示,分别使用service mysqld status和journalctl -xe查看服务启动失败的原因,发现是目录权限不足造成的,通过查看mysql目录发现目录下有的文件归属还是root,改成mysql即可
ll /var/lib/mysql |grep mysql
chown -R mysql:mysql /var/lib/mysql
2.ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO) 错误
停止mysql服务:
service mysqld stop
修改配置文件无密码登录:
vi /etc/my.cnf
在最尾部加上:
skip-grant-tables
保存,启动mysql:
service mysqld start
登录mysql:
mysql -u root
查询mysql数据库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
选中mysql数据库:
mysql> use mysql;
Database changed
首先更新root密码为空字符串:
update user set authentication_string='' where user='root';
退出,删除之前步骤加上的 “skip-grant-tables” 然后重启mysql:
// 1,退出
exit
// 2,修改,删除最后的skip-grant-tables
vim /etc/my.cnf
// 3,重启
service mysqld restart
然后在登陆Mysql:
mysql -uroot
使用ALTER修改root用户密码,方法为 ALTER user ‘root’@’localhost’ IDENTIFIED BY ‘新密码’。如下:
ALTER user 'root'@'localhost' IDENTIFIED BY '你的密码';
然后再用exit退出,再次登陆mysql就需要使用密码了,密码就是刚刚修改的密码
linux环境彻底删除mysql步骤
1,使用命令查看mysql的安装情况
rpm -qa | grep mysql
结果:
[root@iZwz947of4lcxm9pai1f8vZ ~]# rpm -qa | grep mysql
mysql-community-common-5.7.24-1.el7.x86_64
mysql-community-libs-5.7.24-1.el7.x86_64
mysql-community-client-5.7.24-1.el7.x86_64
mysql57-community-release-el7-9.noarch
mysql-community-server-5.7.24-1.el7.x86_64
2,停止mysql服务,删除所安装的mysql服务
rpm -e --nodeps mysql服务名称(上面命令查询的服务),如:
rpm -e --nodeps mysql-community-common-5.7.24-1.el7.x86_64
rpm -e --nodeps mysql-community-libs-5.7.24-1.el7.x86_64
rpm -e --nodeps mysql-community-client-5.7.24-1.el7.x86_64
rpm -e --nodeps mysql57-community-release-el7-9.noarch
rpm -e --nodeps mysql-community-server-5.7.24-1.el7.x86_64
3,查找mysql的目录和库文件,并删除
[root@iZwz947of4lcxm9pai1f8vZ ~]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/etc/logrotate.d/mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/bin/mysql
删除对应的mysql目录
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /etc/logrotate.d/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql
rm -rf /usr/bin/mysql
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
4,再次查询mysql的安装情况
rpm -qa | grep mysql
安装jdk8及环境变量配置
jdk下载
- 进入jdk下载页面
https://www.oracle.com/technetwork/java/javase/downloads/index.html - 下拉找到JavaSE8,点击右侧jdk下的download按钮
- 下载jdk-8u301-linux-i586.tar.gz
- 这里选择使用Xshell的Xftp工具
- 先新建一个文件夹,目录是/usr/local/java
mkdir /usr/local/jdk
6.在左侧的Windows目录中找到下载的jdk源码包,双击传入Linux的/usr/local/java目录
jdk解压
1. 命令行进入/usr/local/java文件夹
cd /usr/local/java
2.解压:tar zxvf 压缩包
tar zxvf jdk-8u191-linux-x64.tar.gz
环境变量
编辑/etc/profile文件
- 编辑/etc/profile文件
vi /etc/profile
- 按
Insert
或者I
键,切换成编辑模式。
找到内容末尾,按图片输入下面一段话。
在unset i
的前面输入
export JAVA_HOME=/usr/local//jdk/jdk1.8.0_301
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#(!!!注意:JAVA_HOME的路径是你实际解压后的JDK的路径,千万别写错了)
3.按Esc
退出编辑模式,输入:wq
保存并退出
4.生效环境变量
对于/etc/profile编写完成之后是不够的,还需要最后一个步骤,就是让刚刚我们修改的文件变成有效起来,所以我们再输入一个命令,让修改生效。
source /etc/profile
验证
java -version
显示版本号就是安装成功了
如果报错:/jdk/jdk1.8.0_301/bin/java: 没有那个文件或目录
1:首先检查环境变量是否都正确
2:环境变量都正确还是报“-bash: /usr/local/jdk1.8.0_271/bin/java: 没有那个文件或目录”,执行如下命令:
yum install glibc.i686
Linux系统下安装tomcat
安装tomcat需要先安装jdk
1. 下载Apache tomcat
在左边,可以选择下载各种版本的tomcat。根据服务器操作系统选择下载。Linux操作系统就下载tar.gz包。
我们下载Core 下的tar.gz包 apache-tomcat-9.0.52.tar.gz
2. 检查linux是否安装tomcat
rpm -qa|grep tomcat
查看下系统信息,确认是32位还是64位:uname -a
3. 上传服务器、解压缩tomcat
使用WinSCP或者Xftp等工具将tar.gz压缩包上传到 /usr/local 目录中,以下操作命令都需要在root账户下操作。
进入目录解压安装包
进入目录:cd /usr/local/Apache
解压文件:tar -zxvf apache-tomcat-9.0.52.tar.gz
将目录apache-tomcat-9.0.52重命名为tomcat9,方便一些
重命名文件:mv apache-tomcat-9.0.52 tomcat9
4. 配置环境变量
输入:vim /etc/profile 打开配置文件,按 i 进入编辑模式,在profile文件尾部 unset -f pathmunge 后面添加如下内容:
编辑完之后,按Esc 并输入 :wq(小写) 保存并退出编辑,然后输入以下指令:source /etc/profile 刷新环境配置使profile文件立即生效
5. 正常启动
运行 /usr/local/tomcat8/bin/startup.sh 就会启动tomcat,在浏览器中访问http://localhost:8080了,能看到如下界面,说明访问成功。
6. 正常关闭
运行 /usr/local/tomcat8/bin/shutdown.sh 就会关闭tomcat
7. 修改tomcat配置
进入 /usr/local/tomcat8/conf 目录修改server.xml中的tomcat端口
运行 vim server.xml,用“/8080”定位到8080端口。可以修改端口,默认8080,然后按ESC键,然后按 :wq(注意有一个英文冒号),保存并退出。
8. 局域网内无法访问解决办法
访问本地:http://localhost:8080/正确。但局域网内无法访问,而且服务器可ping通
先查看防火墙开放端口列表对于Centos7系统 firewall-cmd --zone=public --list-ports
如果没有8080端口,添加端口
- 如果是firewalld防火墙 (对于Centos7系统),开启防火墙端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 并且重新加载防火墙 firewall-cmd --reload
- 如果是iptables防火墙 ,执行 vi /etc/sysconfig/iptables 加入下面内容 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
如上配置并重启iptables就可以在局域网内访问8080端口了
在不同Linux系统中,操作指令会有细微的差别,Centos6防火墙相关命令:
service iptables status 查看防火墙状态
service iptables start 开启防火墙
service iptables stop 关闭防火墙
service iptables restart 重启防火墙
对于Centos7系统来说,只有使用下面的指令,才可以对Linux防火墙进行启停。
查看防火墙开放端口列表命令:firewall-cmd --zone=public --list-ports
开启防火墙8080端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent
关闭防火墙命令:systemctl stop firewalld.service
禁止防火墙开机启动命令:systemctl disable firewalld.service
重新加载防火墙命令:firewall-cmd --reload
9. 其他一些问题
启动以后,可以利用命令 ps -ef|grep tomcat 查看tomcat是否正常启动。
如果正常启动以后无法访问,可以先不修改8080端口,尝试用8080端口访问。如果可以通过8080端口正常访问,则说明80端口被其他应用占用。
或者使用 netstat -an|grep 8080 命令查看是否有程序占用8080端口。