目录
一,Linux的目录结构
在Linux文件系统中有两个特殊的目录
. :代表当前的目录,也可以使用 ./ 来表示;
.. :代表上一层目录,也可以 ../来代表。如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以 默认方式查找时,不显示该目录或文件。
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)用于存放运行时需要改变数据的文件
开发人员关注目录:
- 配置目录etc:软件安装后配置文件选择放入的地址。
- 软件安装目录:usr/local
- 安装应用程序目录:opt,部署的API程序一般放在这个目录。部署的API放入用户的目录:/home/用户名
- 注意:Linux系统的文件系统是以斜杠“/”开始,不是windows中的盘符概念。
二,Linux的用户
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
1,用户分类
用户账户一般非为两大类:超级管理员和普通用户。
- 超级管理员:用root表示,root用户在系统中拥有最高权限。
- 普通用户:除了root之外的用户。
2,查看用户信息
#语法 cat /etc/passwd
- root: 用户名
- x: 密码 :已经加密 ,密码存放在 vi /etc/shadow 密码文件
- 0: 账号id ,userId
- 0: 组id ,groupId
3,创建用户
useradd 选项 用户名
- -c comment: 指定一段注释性描述。
- -d 目录: 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组: 指定用户所属的用户组。
- -G 用户组:指定用户所属的附加组。
- -s Shell文件: 指定用户的登录Shell。
- -u 用户号: 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
useradd lina02
4,删除用户
userdel 选项 用户名
- -r是常用的选项,表示将用户的主目录一起删除。
5,用户口令管理
用户口令的管理其实就是用户密码的管理。用户账号刚创建时(useradd)没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的命令是 passwd 。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
passwd 选项 用户名
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
修改当前用户的口令。
切换到用户lina,下面的命令修改该用户自己的口令:PS:linux操作系统中密码部分不予显示,所以看起来是空白的,实际已经输入了密码。
如果是超级用户,可以用下列形式指定任何用户的口令:
普通用户修改自己的口令时,passwd命令会要求先输入原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
三,Linux的常用命令
1,Linux目录管理
Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
绝对路径与相对路径:
- 绝对路径:由根目录 / 写起,例如: /usr/share/doc 这个目录。
- 相对路径:不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。
1.1 查看目录
ls 选项
- ls :查看当前路径下的文件名称
- ls -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
- ls -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- ls -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
- ll: 等价于ls -l
- ls -al :目录下的所有文件列出来(含属性与隐藏档)
1.2 切换目录
cd是Change Directory的缩写,这是用来变换工作目录的命令。
cd [相对路径或绝对路径]
#使用绝对路径切换到 local 目录
cd /usr/local/
# 表示回到自己的家目录,亦即是 /root 这个目录
cd ~
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
cd ..
1.3 显示当前目录
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
pwd
1.4 创建目录
mkdir (make directory)用来创建新的目录。
mkdir [-mp] 目录名称
- -m :配置文件的权限!直接配置,不需要看默认权限的脸色
- -p :直接将所需要的目录(包含上一级目录)递归创建起来!
cd /tmp
mkdir kkb
mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': No such file or directory <== 没办法直接创建此目录!
mkdir -p test1/test2/test3/test4
1.5 删除目录
rmdir 命令用来删除空的目录。
rmdir [-p] 目录名称
-p :连同上一级『空的』目录也一起删除
2,文件操作
2.1 查看文件内容
cat 查看所有内容
cat 由第一行开始显示文件内容
more 一页一页的显示文件内容
more 文件名称
例如:more /etc/man_db.config
....(中间省略).... --More--(28%) <== 重点在这一行!你的光标也会在这里等待你的命令
在 more 这个程序的运行过程中,你有几个按键可以按的:
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
less 一页一页翻动
less 文件名称
例如:less /etc/man.config
....(中间省略).... :
<== 这里可以等待你输入命令!
less运行时可以输入的命令有:
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
q :离开 less 这个程序;
2.2 创建文件
touch 创建一个空白的普通文件
#示例:
[root@centoslina01 /]# cd kkb
[root@centoslina01 kkb]# touch lina01.txt
[root@centoslina01 kkb]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 11 10:08 lina01.txt
[root@centoslina01 kkb]#
2.3 写入内容
echo 把内容重定向到指定的文件中 ,有则打开,无则创建
echo '内容'>文件名称 覆盖模式
echo '内容'>>文件名称 追加模式
#示例:
[root@centoslina01 kkb]# echo 'jiaobaoyu'>lina01.txt
[root@centoslina01 kkb]# echo 'jiaobaoyu'>lina01.txt
[root@centoslina01 kkb]# cat lina01.txt
jiaobaoyu
[root@centoslina01 kkb]# echo 'jiaobaoyu'>>lina02.txt
[root@centoslina01 kkb]# echo 'jiaobaoyu'>>lina02.txt
[root@centoslina01 kkb]# cat lina02.txt
jiaobaoyu
jiaobaoyu
[root@centoslina01 kkb]#
2.4 复制、拷贝文件
cp [-adfilprsu] 来源档(source) 目标档(destination)
- -a:相当於 -pdr 的意思,此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容;
- -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式;
- -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;(覆盖已经存在的目标文件而不给出提示)
- -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
- -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身(不复制文件,只是生成链接文件);
- -p:连同文件的属性(修改时间和访问权限)一起复制过去,而非使用默认属性(备份常用);
- -r:递归持续复制,用于目录的复制行为;
- -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
- -u:若 destination 比 source 旧才升级 destination !
2.5 移动文件
mv 可以移动文件与目录,或修改名称。
mv [-fiu] source destination
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
2.6 删除文件
rm 可以移除文件或目录。
rm [-fir] 文件或目录
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除!常用在目录的删除!这是非常危险的选项!!!
3,打包与拆包
一般Linux 上常用的压缩方式是选用tar 将许多文件打包成一个文件,再以 gzip压缩命令压缩成xxx.tar.gz(或者xxx.tgz)的文件。
打包: tar -cvf xxx.tar 要打包的文件或目录的列表,用空格隔开
打包并且压缩: tar -zcvf xxx.tar.gz 要打包的文件或目录的列表,用空格隔开
解压: tar -xvf xx.tar
tar -zxvf xx.tar.gz -C /usr/kkb 注意-C大写,防止拆包解压的路径找不到
- -c:创建一个新tar文件
- -v:显示运行过程的信息
- -f:指定文件名
- -z:调用gzip 压缩命令进行压缩
- -t:查看压缩文件的内容
- -x:解开tar 文件
4,其他命令
4.1 查看进程快照
ps -axu 显示当前进程的快照
查看Java进程:ps - axu | grep java
查看MySQL进程 ps - axu | grep mysql
4.2 管道 |
管道是Linux中比较重要且常用的一个内容,其作用是将一个命令的输出作为另一个命令的输入,组合使用。
#分页查看帮助信息,按q退出
ls --help | more
四,VIM编辑器
vi 文件名
vim 文件名
vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
1,命令模式
用户刚刚启动 vi/vim(vim是vi的扩展),便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。i
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
2,输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
3,底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。按ESC键可随时退出底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有
五,Linux的文件权限
Linux操作系统中对权限的管理很严格。Linux系统中不仅是对用户与组根据UID,GID进行了管理,还对Linux系统中的文件,按照用户与组进行分类,针对不同的群体进行了权限管理,用他来确定谁能通过何种方式对文件和目录进行访问和操作。
1,文件权限
权限共有10个字符,我们将它分为4大部分来理解:
- --- --- ---
第1部分、表示文件的类型
- - 表示是一个文件
- d 表示是一个目录
- l 表示是一个连接(理解为快捷方式)
第2部分、当前用户具有的对该文件的权限 (owner 属主,缩写u)
第3部分、当前组内其他用户具有的对该文件的权限 (group 属组,缩写g)
第4部分、其他组的用户具有的对该文件的权限 (other 其他,缩写o)
- r:Read 读
- w:Write 写
- x:eXecute 执行
对于文件和目录来说,r,w,x有着不同的作用和含义:
针对文件:
- r:读取文件内容
- w:修改文件内容
- x:执行权限对除二进制程序以外的文件没什么意义
针对目录:目录本质可看做是存放文件列表、节点号等内容的文件
- r:查看目录下的文件列表
- w:删除和创建目录下的文件
- x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权
限)
PS:
- root账户不受文件权限的读写限制,执行权限受限制
- 用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。
2,修改权限
chown 是change owner的意思,主要作用就是改变文件或者目录所有者.
- chmod 修改文件和文件夹读写执行属性。 使用权限:所有使用者
- chown 修改文件和文件夹的用户和用户组属性。使用权限:root
2.1 mode方式
chmod who opt per file
- who:u g o a(all)(u 用户user ,g用户组group,o其他用户,a所有用户默认)
- opt:+添加某个权限 –取消某个权限 =赋予权限
- per:r w x X
chmod u=rwx,g=r lina03.txt
chmod u+x,g+w,o+w test.log
//r 读,w 写 x 执行
2.2 数字方式
例如:-rwxr--r--. 1 root root 10 Oct 16 02:55 yhp.log
- 用户权限=rwx=4+2+1=7
- 所属组权限=r--=4+0+0=4
- 其他用户权限=r--=4+0+0=4
- 组合:744
修改权限: chmod 765 yhp.log
- 给用户组加入写入权限:+2
- 给其他用户加入可执行权限:+1
六,Linux的网络操作
1,主机名操作
hostname :显示主机名
hostname XXX :修改主机名,不推荐,临时生效
永久生效修改主机名需要修改/etc/sysconfig/network文件
2,查询系统完整信息
uname -a
3,IP地址操作
查看IP地址:ip addr
修改IP地址:修改/etc/sysconfig/network-scripts/
重启网络服务:service network restart
4,域名映射
修改 /etc/hosts文件
5,网络服务管理
查看网络服务状态:systemctl status network
启动网络服务:systemctl start network
停止网络服务:systemctl stop network
重启网络服务:systemctl restart network
设置开机启动:systemctl enable network
6,防火墙设置
查看防火墙状态: systemctl status firewalld
启动防火墙: systemctl start firewalld
关闭防火墙: systemctl stop firewalld
查询防火墙服务是否开机启动:systemctl is-enabled firewalld
开机时启用防火墙服务:systemctl enable firewalld
开机时禁用防火墙服务:systemctl disable firewalld
查询已经启动的服务列表:systemctl list-unit-files|grep enabled
查询启动失败的服务列表:systemctl --failed
七,远程上传工具的使用
这里使用secureFX
运行后选择连接的虚拟机
八,Linux安装JDK
1、上传jdk文件到linux
使用SecureFX连linux后,将JDK压缩包上传到新建的mysoft文件夹。
2、解压压缩包
3、测试jdk是否安装成功
注意:这里是在jdk的bin目录下运行的。并且java命令前有“./”
4、配置环境变量
(1)编辑profile文件
(2)在profie文件中添加JAVA_HOME变量
(3)使环境变量及时生效
(4)查看变量是否更新成功
(5)在任意目录下测试环境是否配置成功
九,Linux安装Tomcat
安装Tomcat之前要保证JDK安装成功!
1、上传Tomcat压缩包到根目录的mysoft文件夹,之前已经完成
2、解压:tar -xzvf apache-tomcat-8.5.11.tar.gz
3、启动Tomcat
4、关闭防火墙之后测试访问
5、关闭Tomcat
十,Linux安装MySQL
YUM( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
它基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,无须繁琐地一次次下载、安装.
1、检测系统是否自带安装mysql
yum list installed | grep mysql
2、删除系统自带的mysql及其依赖(防止后面安装发生冲突)
yum -y remove mysql-libs.x86_64
3、给CentOS添加rpm源,并且选择较新的源,RPM软件包管理器缩写
wget --no-check-certificate dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
4、安装第一步下载的rpm文件
yum install mysql-community-release-el6-5.noarch.rpm
yum repolist enabled | grep mysql //列出你所有的yum repo文件
5、使用yum安装mysql
yum install mysql-community-server
安装完毕
6、启动mysql服务
service mysqld start
7、查看mysql是否自启动,并且设置开启自启动
chkconfig --list | grep mysqld
0 1 2 3 4 5 6 代表centOS启动状态
chkconfig mysqld on
8、修改字符集为UTF-8
vim /etc/my.cnf
在[mysqld]部分添加:
character-set-server=utf8
在文件末尾新增[client]段,并在[client]段添加:
default-character-set=utf8
esc退出编辑 :wq保存退出
修改完成后保存重启服务
service mysqld restart
步骤9: 修改默认配置
mysql_secure_installation
按照提示进行配置,这里默认root用户的密码空,直接回车即可。此处输入内容:"y","y","n","y","y"
十一,Linux项目部署
具体过程可以看这里@净重21克【2021最新Linux系统发行版ContOS7演示部署WEB项目】,作者总结的非常详细!
这里对其中的细节部分进行记录
1,如何登录数据库?
按照上面的流程,登录用户名为root,密码为安装过程中自己设置的。
mysql -uroot -p
输入密码
2,上传xxx.sql文件时选择类型?
选择binary类型。
若选择ASCII类型,运行
source /home/xsge/downfiles/demo.sql
会出错
3,IDEA中web项目打包?
参考@返回主页developer【使用Intellij IDEA将web项目导出为war包 】,总结的非常清晰!
上传war包时,同样选择binary类型
我个人用的是IDEA2018.3,亲测有效