介绍
在开发/部署过程中,我们经常要和Linux打交道,本文比较完整的整理了工作中的常用事项,包括常见命令、各种配置、中间件安装和shell脚本等内容,有助于我们系统的梳理Linux相关知识。如果从开发人员角度来说,能搞定了下面的内容,Linux方面就基本木有什么问题了。
目录
一、目录结构
对于Linux系统,我们首先应该了解它的相关目录结构,知道每个目录的定位与作用,下面列举主要的目录(我这里使用的CentOS 8版本)。
目录 | 说明 |
---|---|
/ | 根目录,Unix和Linux中没有盘符,一个硬盘对应一个根 |
/bin | 系统常用命令目录,包括控制台命令、系统可执行文件、系统核心二进制文件等 |
/etc | 发布目录,保存系统中所有核心内容,要求控制权限高,一般不要随意读写 |
/usr | 用户目录,相当于windows中的program files目录,常用于安装系统所有用户公用 |
/root | 根用户的用户目录,相当于windows中的administrator目录,称为用户主目录 |
/home | 保存其他用户目录的目录 |
/var | 系统运行过程中的数据目录 |
二、路径说明
关于路径了解全路径(绝对路径)、相对路径和一些特殊路径符号就可以了。
路径 | 说明 |
---|---|
全路径 | 以 / 开头,从 filesystem 根目录开始寻找文件 |
相对路径 | 从当前资源路径开始寻找,找到其他资源路径过程,如 …/ 返回上一级 |
特殊路径 | / 表示磁盘根,~ 表示/root |
三、常见命令
下面这些命令就是我们必须掌握的核心内容了,如何对linux中的资源进行增删改查,就靠它们了。
-
pwd
-
全称
print working directory
,输出当前工作目录路径; cd
-
全称
change directory
-,切换目录; ls
- list - 查看当前目录下的内容,默认显示当前目录下的文件列表;
- 查看指定目录,如 ls /usr 查看usr/目录下文件列表;
-
ls -a
查看所有内容,包括隐藏文件,全称list all
; -
ls -l
查看当前目录文件属性:大小、权限、日期、符号链接等,一般简写为ll
,全称list list
; -
ls -al
多参数并行使用 clear
- 清空终端屏幕; touch
-
创建空白文件
touch 新文件名
,文件名可以没有后缀 -
在指定目录创建文件
touch /目录/新文件名
; cat
- 一次性查看文件中全部内容; more
-
分屏显示文件中内容,
more 文件名
,按空格键
显示下一屏幕内容,按回车键
显示下一行内容,按q或ctrl c
退出 head
-
显示文件的前多少行,默认显示前 10 行,
head -行数 文件名
; tail
-
显示文件末尾多少行,默认显示末尾 10 行,
tail -行数 文件名
; mkdir
-
全称
make directory
,创建目录 -
相对路径创建,
mkdir 新目录
-
绝对路径创建,
mkdir /目录/新目录
-
一次创建多级目录,
mkdir -p 新目录1/新目录2
cp
-
全称
copy
,复制,格式cp 源信息 目标信息
-
cp 源文件 复制文件
-
cp 源文件 /目录/复制文件
-
cp /目录/源文件 /目录/复制文件
-
复制目录需要指定
-r
参数,cp -r 目录 新目录
rm
-
全称
remove
,删除,格式rm 文件
-
rm -f 文件
,f
表示force 忽略,执行时不给出提示 -
rm -r 目录及文件
,r
表示递归操作,删除目录及子目录和文件 -
rm -rf 目录及文件
mv
-
全称
move
,移动或重命名 -
mv 源文件 目标目录
-
mv 源文件 重命名新文件
vi | vim
- 编辑文件,vim是vi的增强模式,可做高亮显示
-
vi 文件名
,进入编辑模式 -
dd
删除指定行, 默认 1 行,全称delete line
-
:w
保存,:q
退出,:wq
保存并退出,全称write quit
-
:q!
强制退出不保存 -
:set nu
显示行号 -
G
光标跳到文件尾,gg
光标跳到文件头 -
/关键字
进行搜索 reboot
- 重启系统,但要root用户才有权限 halt
- halt 命令用来关闭正在运行的 Linux 操作系统
属性说明
类型 | 拥有者权限 | 同组权限 | 其他权限 | 类型 | 拥有者 | 所在组 | 容量 | 时间 | 文件名 |
---|---|---|---|---|---|---|---|---|---|
d | rwx | r-x | r-x | 2 | root | root | 6 | May 29 03:10 | app目录 |
- | rw- | r– | r– | 1 | root | root | 0 | May 29 03:10 | readme.txt文件 |
类型为1表示文件,类型为2表示目录。rwx分别表示read、write、execut权限,-表示没有权限。容量单位是字节,所有目录固定容量为4096。
四、时区设置
时区设置是很常用的操作,一般我们安装新系统后,都需要设置为当前时区,不然系统时间会有问题,下面就是具体操作步骤。
1、使用date
命令查看当前系统时间
2、使用tzselect
命令获取当前时区配置,并输入序号4
,选择Asia
地区
3、再选择9
,China
4、再选择1
,Beijing Time
5、再选择1
,Yes
确认提交修改
6、修改.bash_profile
文件,加入TZ='Asia/Shanghai';export TZ
配置设置时区
7、切换到当前用户目录下,使用ls -a
命令,可以找到.bash_profile
文件
8、vi .bash_profile
编辑文件,加入配置
9、使用exit
命令先注销用户,然后重新登录,使用date
命令查看,即可看到系统时间已经设置成功
说明:该时区方式只会对当前用户生效
五、启动网络
CentOS8 中默认没有开始网络配置,所以我们需要手动开启
1、使用ifconfig
无法查看到ip地址,说明网络确实没有开启
2、先执行命令nmcli c up ens33
,再修改vi m /etc/sysconfig/network-scripts/ifcfg-ens33
配置,将ONBOOT
由no
设置为yes
3、再次查看则会显示ip地址
六、文件上传与下载
对于文件上传我们这里使用命令方式来操作,当然也可以借助其它工具(如Xftp)
1、需要安装lrzsz
插件,才能支持上传和下载,使用命令yum install lrzsz -y
2、上传
使用命令rz
,会弹出上传文件的窗口(r全称receive,表示linux服务器接收外部上传的文件资源)
3、下载
使用命令sz 文件名
,会弹出下载文件的窗口(s全称send,表示linux服务器向外发送文件资源)
七、压缩与解压缩
开发过程中我们最常用的就是下面两种格式的压缩文件
1、*.tar.gz 格式
压缩tar.gz文件:使用命令tar -czvf 压缩文件的名称.tar.gz 源文件或者目录名称
解压tar.gz文件:使用命令tar -zxvf 解压文件名称
2、*.zip 格式
解压zip文件:使用命令unzip 压缩文件.zip
解压到指定目录:使用命令unzip 压缩文件.zip -d 解压到指定目录
八、开发工具/中间件安装
1、安装JDK
1.1、上传安装包
在当前用户目录下,mkdir temp
新建一个临时目录存放安装包,再通过rz
命令,将JDK包上传到temp
目录中
1.2、解压
1)解压:使用命令tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
将jdk解压到/usr/local/
目录下
2)重命名:使用命令mv jdk1.8.0_221/ jdk
将其重命名为jdk
,方便后续配置
1.3、环境变量配置
vi /etc/profile
添加如下配置
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
1.4、效果查看
reboot
重启系统后,使用java -version
查看版本(如果只要环境临时生效则使用source /etc/profile
命令)
2、安装Tomcat
2.1、上传安装包
将Tomcat安装包上传到temp
目录中
2.2、解压
1)解压:使用命令tar -zxf apache-tomcat-7.0.68.tar.gz -C /usr/local
解压到/usr/local/
目录下
2)重命名:使用命令mv apache-tomcat-7.0.68/ tomcat
将其重命名为tomcat
2.3、启动服务
1)切换目录:先 cd /usr/local/tomcat/bin/
到bin/
目录下,执行sh startup.sh
启动服务
2)然后再进入cd ../logs/
目录中,查看catalina.out
中的执行日志,如图表示启动成功
2.4、访问测试
因为linux默认只开启22端口,tomcat服务端口为8080,所以正常需要先开通8080端口防火墙才能访问,这里先直接关闭防火墙进行验证。
关闭防火墙:service firewalld stop
启动防火墙:systemctl enable firewalld
禁用防火墙:systemctl disable firewalld
3、安装Mysql
3.1、上传安装包
将Mysql安装包上传到temp
目录中
3.2、解压
1)解压:使用命令tar -zxf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz -C /usr/local
解压到/usr/local/
目录下
2)重命名:使用命令mv mysql-5.7.27-linux-glibc2.12-x86_64/ mysql
将其重命名为mysql
3.3、创建用户组、用户
1)创建用户组:groupadd mysql
,表示创建一个名为mysql的用户组
2)创建用户:useradd -r -g mysql mysql
,/useradd -r mysql表示创建一个叫mysql的用户,-g表示将mysql用户添加到mysql用户组中
3.4、授权
1)切换目录:先cd /usr/local/mysql
到mysql/目录中
2)给用户组授权:chgrp -R mysql .
,用户组由root变成了mysql
3)给用户授权:chown -R mysql .
,用户由root变成了mysql
3.5、初始化
1)切换目录:先cd /usr/local/mysql/bin
到bin/
目录中
2)执行初始化命令:./mysqld --initialize --user=mysql --