Linux基础
# 1.Linux基础
# 目录结构
- bin:存放常用命令的目录,如vi,su
- boot:存放引导系统启动的相关文件
- dev: 用于存放设备文件
- etc:存放系统配置相关文件
- home:存放普通用户的相关文件
- lib: 存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt:默认挂载光驱和软驱的目录,系统管理员安装临时文件系统的安装点
- opt:这是给主机额外安装软件所摆放,如安装oracle数据库就可放到该目录下默认为空。
- proc:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
- root:存放root用户的相关文件
- sbin:存放二进制可执行文件,要具有一定权限才可以使用命令
- srv:service缩写。该目录存放一些服务启动之后需要提取的数据
- sys:这是linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统
- tmp:这个目录是用来存放一些临时文件的
- var:存放经常变化的文件,如网络连接的sock文件 、日志
- usr:安装一个软件的默认目录,相当于windows下的program files
- del:类似于windows的设备管理器,把所有的硬件用文件的形式存储
- meda:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
- selinux:selinux是一种安全子系统,它能控制程序只能访问特定文件。
# Linux常用命令
# 命令基本格式
cmd [options] [arguments]
用空格分隔开- Linux是区分大小写的 一般来说,后面跟的选项如果单字符选项前使用一个减号-。单词选项前使用两个减号--
# 磁盘管理
- 切换目录:
cd 目录名
- 列出当前目录下目录及文件:
ll,ls
- 显示当前所在目录位置:
pwd
# 文件管理
- 创建目录:
mkdir 目录名
- 删除文件或目录:
rm , rm -rf
(r:递归 f:强制删除) - 复制文件:
cp , cp -rf
- 查看文件全部内容:
cat 文件路径
- 分页查看文件内容:
more 文件路径
- 查看文件开头的n行数据:
head -n数字
- 显示文件尾部的n行数据:
tail -n数字
- 文件内搜索:
grep 搜索的内容 文件名1,文件名2
# 系统命令
- 显示系统日期和时间:
date
- 切换用户:
su 用户
- 清除屏幕:
clear
- 重启系统:
reboot
- 关机:
shutdown
- 查看系统进程:
ps -ef
- kill进程:
kill pid
# 压缩/解压
- tar压缩:
tar -zvcf 压缩文件名 压缩的文件列表
tar -zvcf txtfile.tar.gz a.txt - 查看压缩文件:
tar -tf
- tar解压:
tar -zxvf 压缩文件名
- tar解压到:
tar -zxvf 压缩文件名 -C 目录
unzip -o -d /usr/local myfile.zip
把myfile.zip文件解压到 /usr/local-o
:不提示的情况下覆盖文件;-d
: 指明将文件解压缩到/usr/local目录下。
# 网络通讯
- 查看ip信息:
ifconfig
- 测试网络连接:
ping url
- 查看端口连接:工具 nmap
- 扫描此ip开放的端口
nmap ip -sS
- 扫描此ip开放的端口
# 网络访问
- 使用url访问网络的文件传输工具:
curl www.baidu.com
- 测试网络访问
- 模拟用户访问
- 下载:
wget 下载的资源的地址
# 权限管理
- 执行ll显示
- 常见权限设置 -rwx-xr-x 等于761 -U(所属用户)-G(所属用户组)-O(其他) r--read 读权限 4 w--write 写权限 2 x--execute 执行权限 1 常见 644,755,777
- 修改文件权限:
chmod UGO权限 文件/目录
chmod 646 a.txt - 修改文件拥有着:
chown 新拥有者 文件
# 管道和重定向
- 重定向输出覆盖:
>
echp "hello" > a.txt
- 重定向追加:
>>
- 管道:
|
cat a.txt | grep hello
# vi和vim编辑器
# 启动vi编辑器:vi 文件名
- 命令模式:按esc进入
- 编辑模式;a,i,o 进入,
:wq
保存退出:q!
不保存退出
# 编辑文件命令
- dd:删除光标所在行
- yy:复制光标所在行到缓冲区
- p:粘贴缓冲区中的内容
- gg:光标回到文件第一行
- GG:光标回到文件最后一行
^
:光标当前行的行首$
:光标当前行的行尾/
:/+搜索的字符,按n下一个搜到的字符
# 安装软件
- 查找软件包命令:
yum search 安装包名称中的部分关键字
yum search java
- 安装指定的软件命令:
yum instal 安装包名称
- 删除软件包命令:
yum remove 安装包名称
- 列出所有已安装的软件包命令:
yum list installed
- 清除已安装软件包的下载文件命令:
yum clean all
yum命令下载的安装包都在/var/cache/yum 下
# 远程
- ssh 远程
登录
ssh 用户名@ip
- -p 端口
登出
logout
- -p 端口
登出
# 开发相关
# 安装JDK8
使用xftp将下载好的jdk压缩包上传到Linux的/home/soft(提取码 ljx9:Linux-jdk8 (opens new window) )
从/soft解压到:
tar -zxvf jdk压缩文件名 -C /usr/local/
到
cd /etc
目录下,vim打开profile文件vim profile
在末尾添加以下内容,相当于Windows配置环境变量 (修改前备份cp profile /home/soft
)export JAVA_HOME=/usr/local/jdk1.8.0_161 export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export PATH=JAVA_HOME/bin:PATH
输入
source /etc/prifile
编译profile检查配置是否生效
java -version
# 安装Tomcat
- 使用xftp将下载好的tomcat压缩包上传到Linux的/home/soft(提取码 ottb:Linux-tomcat8 (opens new window))或者wget。
- 解压安装和jdk一样,不需要配置,安装即可用。
# 启动/关闭 --Tomcat
- 在**/usr/local/apache-tomcat-8.5.56/bin路下
**./startup.sh**
启动tomcat,.sh相当于Windows的.bat** ps -ef | grep tomcat
查看是否启动tomcat- 输入
curl 127.0.0.1:8080
出现html 说明tomcat本地可以运行 - 如果用外网登录不上可能是以下几种原因
- 使用的阿里云服务器未开启8080端口的安全组,需要自己配置一下
- Linux防火墙会阻挡8080端口,所以需要关闭防火墙
systemctl stop firewalld
,查看状态sysytemctl status firewalld
出现 Active: inactive (dead)就说明已关闭防火墙然后就可以访问Linux的tomcat:http://ip:8080 (opens new window) (云服务器使用公网ip)
- 使用的阿里云服务器未开启8080端口的安全组,需要自己配置一下
- /logs下使用
tail -f localhost_access_log.2020-..-...txt
查看tomcat 实时访问日志 - /bin 下
./shutdown.sh
关闭tomcat
# 使用云数据库MySQL-RDS版
- Linux想要访问购买的云数据库,需要在安全组中设置开放3306端口。
- 创建账号和数据库
- RDS云数据库中设置白名单,将127.0.0.1删除,添加ecs的内网ip和Windows的ip,这样内外网都可以连接
- 在基本信息中申请外网连接地址。
- 用navicat测试外网连接
- Linux安装MySQL客户端
yum install mysql
,自动安装到/usr/share下。 然后输入mysql -h 内网地址 -p端口 -u 用户名 -p mysql
回车 ,然后输入密码。到此内外网成功连接,更多请参考阿里云文档 (opens new window) 。
# 安装本地 MySQL
用云数据库,可以不用安装本地。 参考MySQL官方文档 (opens new window)
- 上传MySQL压缩文件到Linux
- 检查系统是否安装了mariadb ,
yum list installed | grep mariadb
,如果出现信息就卸载yum -y remove mariadab-libs.x86_64
。 因为mariadb是mysql的一个分支,会有冲突。 - 解压mysql
tar -zxvf 压缩包名.tar.gz -C /usr/local/
- 为区分版本建议修改mysql名字
mv 压缩包名 改成对应版本名
- 创建数据文件夹data
mkdir data
- 创建用户执行mysql命令
useradd mysql
检查用户是否创建id mysql
- 初始化MySQL
在mysql安装目录的bin目录下执行
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql-8.0/data --basedir=/usr/local/mysql-8.0
出现初始密码保存起来。datadir: 该参数指定了 MySQL 的数据库文件放在什么路径下。数据库文件即我们常说的 MySQL data 文件。 basedir: 该参数指定了安装 MySQL 的安装路径。
- 启动安全功能:
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-8.0/data
- 修改mysql安装目录的权限:chown -R mysqll:mysql /usr/local/mysql-8.0
- 启动MySQL:
./myslqd safe &
(&表示后台启动),查看进程ps -ef | grep mysql
- 使用mysql客户端进入mysql:
./mysql -u root -p
密码是之前保存的那个。 - 修改root密码:
alter user '用户名'@'主机域名或ip' identified by '新密码'
- 授权远程访问:
grant all privileges on *.* to root@'%' identified by '密码'
,刷新flush privileges
- 测试mysql(navicat)客户端访问mysql
- 关闭MySQL服务:
./mysqladmin -u root -p shutdown
输入密码关闭
# 使用VMware创建Linux系统的虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量 作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
- 下载链接:VMware-Workstation (opens new window)
- 下载好后检查虚拟网卡
存在就继续
# 安装Centos
- 下载链接:centos (opens new window) 下载dvd标准安装版
- 打开VMware创建虚拟机,选择下载的centos路径
没说明的默认就好
- 选择虚拟机的安装空间(大于20G)
- 设置虚拟机的配置
- 启动虚拟机安装Linux操作系统 出现pane is dead 在设置里把CD/DVD(IDE)autoinst.iso移除就ok 然后进入点安装
- 设置系统语言 选择英文,中文有时候会出现异常
- 设置支持的语言和时间,还有网络
- 设置密码,然后等待安装
- 重启系统,勾选协议,然后设置一个除root以外的用户,然后登录就可以了。
# 工具
远程连接 | 系统 | 名称 | 链接 |
---|---|---|---|
win | XShell | https://www.netsarang.com/zh/all-downloads/ (opens new window) | |
win/mac | FinalShell | http://www.hostbuf.com/ (opens new window) | |
文件传输 | win | Xftp | |
上次更新: 2022/04/01, 15:14:40