Linux!!
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于 POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好梁、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。目前Linux存在着许多不同的Linux发行版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。
Linux出现于1991年,是由芬兰赫尔辛基大学学生,Linus Torvalds和后来加入的众多爱好者共同开发完成。
特点
完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。同时丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,出色的速度性能
。
linux目录结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c9ABIidF-1619875913545)(linux.assets/image-20210501093444407.png)]
常用命令
文件相关命令
ls 显示文件和目录列表
-l 长格式显示文件和目录信息
-a 显示所有文件和目录(包含隐藏文件和目录)
-R 递归显示指定目录下的文件清单,即会显示指定目录分支内各子目录中的文件清单。
cd 切换目录
pwd 显示当前目录
touch 创建空文件
mkdir 创建目录 -p 可以创建多级目录
cp 复制文件 -r 递归复制,指定当前目录以及里面的文件一并复制
mv 移动文件,改名文件
rm 删除文件 -r 同时递归删除目录下所有文件
-f 强制删除
cat 查看文本 文本太多不适用
more/less less最好用 pageup pagedown翻页 q退出
head/tail 查看文件头部 尾部 -n 指定查看行数
tail -f 循环读取(相当于实时监听文件变化)
echo “文本” >> aa.txt 将文本写出文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-35CA9nwR-1619875913548)(linux.assets/image-20210501101616043.png)]
第一个信息(1位)
d 代表当前类型为目录
-代表当前类型为文件.
第二个信息(总数为9位)
a.前面3位 代表当前文件创建者的操作权限 r(读)w(写)x(执行) user
b.中间3位 代表当前文件创建者的同组用户对该文件操作权限 group
c.最后3位 代表当前文件创建者的不同组用户对该文件操作权限 other
第三个信息 链接数—般文件链接数为 1一般目录链接数为2
第四个信息
当前文件创建者
第五个信息
当前文件创建者所属的组是哪个组
第六个信息
当前文件占用空间大小
第七个信息
文件的最后一次修改时间
网络相关命令
ip addr 查看ip地址(简写 ip a)
ping 测试网络联通
tar命令
-z 是否需要用gzip压缩
-c 建立一个压缩文件的参数指令(create)
-× 解开一个压缩文件的参数指令(extract)
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在f之后要立即接档名(file)
通常组合使用:
tar -cvf aaa.tar file1.txt file2.txt 将file1和2打包成aaa.tar
tar -zcvf aaa.tar.gz file1.txt file2.txt 将file1和2打包成aaa .tar并压缩
tar -zxvf aaa.tar.gz 将aaa.tar.gz解压
tar -zxvf apache-tomcat-8.5.0.tar.gz -C /usr/ 指定目录 -C
systemctl服务命令
systemctl status服务名 说明:查看某个服务的运行状态
systemctl start服务名 说明:启动某个服务
systemctl restart服务名 说明:重启某个服务
systemctl stop服务名 说明:停止某个服务
进程相关命令
#1.ps询在当前控制台上运行的进程
ps -aux说明:查询系统中所有运行的进程,包括后台进程,其中参数a是所有进程,参数x包括不占用控制台的进程,参数u显示用户。
ps -ef说明:查询系统中所有运行的进程,包括后台进程,而且可以显示出每个进程的父进程号。
常用:
ps -aux|grep 关键字
# 2.top命令动态显示系统进程
#3.kill 杀死进程
kill 3029 说明:上述命令中3829是进程号;一般在执行kill命令之前,先用ps或pstree来查询一下将要被杀掉的进程的进程号。
kill -9 3029 说明:强制终止3029号进程的运行,其中参数-9代表强制的意思,实际上kill命令是向该进程发送信号,
该进程接到信号后决定是否停止运行,有些守护进程必须要收到参数9才终止运行
vi编辑器
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命令
PM是RedHat Package Manager (RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、Cent0S、 SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便,
#rpm命令
i:安装应用程序(install)
e:卸载应用程序(erase)
vh:显示安装进度;(verbosehash)
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、Cent0S中的Shell前端软件 包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
使用YUM命令必须连接外部网络
yum install gcc-c++
yum remove gcc-C++
yum update gcc-c++
用户和组相关命令
#1.查看当前用户: whoami#2.查看登录用户: who -m或am I只显示运行who命令的用户名、登录终端和登录时间 -q或--count只显示用户的登录账号和登录用户的数量#3.退出用户: exit#4.添加、删除组账号: groupadd、groupdel#5.添加用户账号:useradd -g 指定组名称 说明:如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。#6.设置用户密码:passwd[用户名]#7.su切换用户 su root
权限相关命令
Linux文件有三种典型的权限,即r读权限、w写权限和x执行权限。在长格式输出中在文件类型的后面有9列权限位,实际上这是针对不同用户而设定的。r=4, w=2,x=1
#chmod字母法:chmod u/g/o/a +/-/= rwx 文件名数字法:chmod 761 文件名[ u/g/o/a ]含义u user 表示该文件的所有者g group 表示与该文件的所有者属于同一组( group )者,即用户组o other 表示其他以外的人a all 表示这三者皆是[ + - =]含义+ 增加权限- 撤销权限= 设定权限rwx含义r read表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。w write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。x excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。
如何联网?
-
查看当前ip地址
ip a 查看默认网卡是否在ip地址
ens33 默认没有ip地址
-
编辑网络配置在每次启动时自动获取ip地址
配置当前vmware软件网路配置为NAT模式
开启centos自动ip获取
vi /etc/sysconfig/network-scripts/ifcfg-ens33[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p5f1a6MF-1619875913550)(linux.assets/image-20210501150153616.png)]
修改 onboot 改为yes
-
重启网络服务
systemctl restart network
-
测试
ping www.baidu.com
安装软件
jdk安装
解压jdk到/usr
/usr/jdk1.8.0_261 jdk的home目录
配置环境变量
vi /etc/profile 文件末尾添加 export JAVA_HOME=/usr/jdk1.8.0_261export PATH=$PATH:$JAVA_HOME/bin
重新加载配置
source /etc/profile
安装vim
yum install vimyum install -y vim 无人值守 不需要一直点确认(输入y)
安装tomcat
tar -zxvf apache-tomcat-8.5.0.tar.gz -C /usr/
启动
进入tomcat的bin目录 ./startup.sh
关闭防火墙
systemctl stop firewalldsystemctl disable firewalld
安装mysql
CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDB和MySQL可能会冲突,故先卸载MariaDB。
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
---
安装顺序
rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm
---
启动MySQL
service mysqld start //启动mysql
service mysqld status //查看mysql启动状态
chkconfig mysqld on //设置mysql开机自启动
---
登录MySQL
grep 'temporary password' /var/log/mysqld.log //生成随机密码
mysql -uroot -p //使用随机密码登陆
解决密码过于简单问题
set global validate_password.policy=LOW;
set global validate_password.length=4;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; //修改密码
---
### Navicat连接问题
1.打开终端,进入mysql
2.use mysql; //选中mysql中的 `mysql` 表
3.update user set host = '%' where user = 'root'; //更新权限,修改为允许全部连接
4.select host, user from user; //查看是否修改成功
5.flush privileges; //刷新表的权限