Linux
文章目录
1.linux
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、oracle linux等。
2.命令操作
2.1 基本命令
[root@localhost ~]#
root 当前登陆用户
localhost 主机名
~ 当前所在目录(家目录)
如果是root代表/root;
如果是普通用户user1代表/home/user1
# 超级用户的提示符#
普通用户提示符$
命令格式:
命令 [选项] [参数]
注意: 个别命令的使用不遵循次格式
当有多个选项时,可以写在一起
简化选项与完整选项
-a 等于 --all
2.2 查询:
ls [选项] [文件或目录]
-a 显示所有文件,包括隐藏文件
-l 显示详细信息 (ll简写)
-h 人性化显示文件大小 (ll -lh)
查询所在目录位置:pwd
2.3 创建及切换所在目录
创建文件:touch 用法:touch 文件名
建立目录:mkdir 用法:mkdir -p [目录名]
cd [目录]
命令英文原意: change directory
简化操作:
cd ~ 进入当前用户的家目录
cd 同上
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
2.4 删除
删除空目录:rmdir 用法:rmdir [目录名]
删除文件或目录:rm
用法:rm -rf [文件或目录]
选项:
-r 递归删除目录
-f 强制
复制命令:cp
剪切或改名命令:mv
2.5 文件搜索
whereis 命令名 #搜索命令所在路径及帮助文档所在位置
which 文件名 #搜索命令所在路径及别名
PATH环境变量: PATH环境变量:定义的是系统搜索命令的路径
相当于window下的path
文件搜索命令:
find [搜索范围] [搜索条件]
示例:
find / -name install.log
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
find /root -iname install.log #不区分大小写
find /root -user root #按照所有者搜索
find /root -nouser #查找没有所有者的文件
字符串搜索命令:
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串
find /root -name aa?.avi ? 匹配任意一个字符
find /root -name a*.avi * 匹配任意内容
find /root -name aa[asdf].avi [] 匹配任意一个中括号内的字符
find /var/log -mtime +10
#查找10天前修改的文件
-10 10天内修改文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性时间
mtime 修改文件时间
find . -size 25k
#查找文件大小是25KB的文件,注意k是小写的.
-25k 小于25KB的文件
25k 等于25KB的文件
+25k 大于25KB的文件
find . -size 25M
#查找文件大小是25MB的文件,注意M是大写的.
find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
#-exec {} \;这是固定格式
2.6 帮助
man命令: 用法:man ls #查看ls的帮助
选项帮助:
命令 --help #获取命令选项的帮助
实例:ls --help
但是不适用内部命令,如cd:
help cd
2.7压缩解压
.zip格式:
压缩用法: zip 压缩文件名 原文件
zip -r 压缩文件名 原文件夹
解压用法: unzip 压缩文件
.gz格式:
压缩用法: gzip 原文件 压缩为.gz格式的压缩文件,原文件会消失
gzip -r 目录 压缩目录下的所有子文件,但是不能压缩目录
解压用法:
gzip -d 压缩文件
gunzip 压缩文件
打包命令&解打包:
打包命令: tar -cvf 打包文件名 源文件
选项:
-c 打包
-v 显示过程
-f 指定打包后的文件名
解打包: tar -xvf 打包文件名
选项:
-x 解打包
.tar.gz格式:
选项:-z 压缩为.tar.gz格式
压缩用法: tar -zcvf 压缩包名.tar.gz 源文件 tar -zcvf movie.tar.gz movie
解压用法: tar -zxvf 压缩包名.tar.gz
tar -zxvf 压缩包名.tar.gz -C 指定目录 tar -zxvf movie.tar.gz
2.8 关机重启
shutdown命令:
用法 shutdown [选项] 时间
选项:
-c 取消前一个关机命令
-h 关机
-r 重启
#使用shutdown会在关机的时候帮我们保存数据
其他关机命令:
halt
poweroff
init 0
#使用这三个命令不是特别安全,因为它们不会帮我们保存数据.
其他重启命令:
reboot
init 6
2.9 其他命令
磁盘使用情况df: 选项-h: 格式化显示输出磁盘使用情况
查看操作历史history: 用于显示执行过的历史命令记录
在显示器输出内容:echo
文件查看命令cat
日志监控命令:tail 默认在屏幕上显示指定文件的末尾10行
-f 显示文件最新追加的内容。
-n 行数 在屏幕上显示指定文件的末尾参数设置的行数
查看内存占用:free
查看任务进程:top
3.vi编辑器
Vi编辑器是什么:
Vi编辑器是一款可以用来创建和编辑文本文件的工具,vi就是visual interface(可视化接口)的简写,它有个增强版:vim,就是vi improve,它是一个模式化编辑器: 在不同的模式下,我们的机键动作被解释的意义是不同的。
vi /path/to/filename
如果该文件是不存在的,就是新增文件
如果该文件是存在的,就是修改文件
Vi编辑器的三种模式:
编辑模式(命令模式) :所有的机键动作都会理解为编辑整个文档的操作,默认为编辑模式。
输入模式:大部分机键动作都会理解为输入的字符。
末行模式:在末行模式,输入很多文件管理命令。
如:复制,粘贴,搜索,替换等
1.关闭文件:
在末行模式下
wq: 保存退出
q!: 退出不保存
2.移动光标:
逐字符移动: h:左移动 l:右移动 j:向下移动 k:向上移动
行内跳转(命令模式):
0:跳转到行首
$: 跳转到行尾
行间跳转(末行模式):
num: 跳转到某一行(末行模式)
G: 跳转行最后一行(编辑模式)
gg: 跳转到第一行(编辑模式)
3.翻屏操作:
在编辑模式下: ctrl+f 向下翻一页 ctrl+b 向上翻一页
4.删除命令:
dd: 删除光标所在行 (编辑模式)
3dd:从光标行开始删除3行(编辑模式)
1,4d 删除第一行到第四行(末行模式)
5.复制和粘贴命令:
yy 复制光标所在行 (编辑模式)
2yy 从光标行开始复制2行(编辑模式)
p: 粘贴命令(编辑模式)
6.查找和替换:
/parttern 从前往后查找(末行模式)
?parttern 从后往前查找(末行模式)
n: 下一个匹配的字符串
N: 上一个匹配的字符串
7.文本的替换(末行模式):
startNum,endNums/partter/string/gi
g:全局替换
i:忽略大小写
%s/f/F/gi 全局忽略大小写把f替换成F
.,$s/F/f/gi 当前行到结尾把f替换成F
---> %s/java/c/g
--->1,$s/c/c++/g
4.用户管理
权限:定义资源或服务的访问能力,称之为权限
定义某一个特定的人资源或者服务的访问能力, 用户
定义一类用户具有访问某个资源或服务的能力. 用户组(存放一些列用户的容器),同时用户组还拥有具有访问某个资源的权限
定义一个资源的权限:
① 用户具有该资源的权限(文件所有者,属主)
② 用户组具有该资源的权限(属组)
③ 其他用户(既不是属主,也不是属组)
创建用户组 groupadd 组名 #查看系统用户组:cat /etc/group
修改用户组 usermod #usermod -G [组名] [用户名]
删除用户 userdel 用户 -f:强制删除用户,即使用户已登录
-r:删除与用户相关的所有文件。
删除组 groupdel 组名
设置用户密码 passwd 用户名
创建用户 :useradd [用户名]
创建用户并分配一个组:useradd -G [组名] [用户名]
查看系统用户:cat /etc/passwd
1 用户名
2 用户的密码,用x替代
3 用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。
4 用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,
其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。
然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。
5 用户的账号说明解释
6 用户的家目录文件夹
7 用户使用的shell,如果换成/sbin/nologin/就是默认没有登录环境的。
5.文件基本权限
文件权限解释:
示例: -rw-r--r--
- 文件类型(- 文件 d 目录 I 软链接文件)
rw- r-- r--
u所有者 g所属组 o其他人
r读 w写 x执行
修改权限chmod:
chmod [选项] 模式 文件名
选项
-R 递归
模式
[guoa] [+-=] [rwx]
[mode=421]
方式一:
chmod u+x 文件
#给当前用户添加指定文件的x执行权限
chmod g+w,o+w 文件
#给该文件用户组合其他人添加指定文件的w写的权限
chmod a=rwx 文件
#给该文件的当前用户,当前组,其他人 添加rwx可读可写可执行的权限
方式二:
权限的数字表示
r w x
4 2 1
111--->7 rwx
110--->6 rw-
100--->4 r--
示例: rwxr-xr-x 755
chmod 755 文件
修改文件的所有者: 用法:chown 用户名 文件名
修改文件的所属组: 用法:chgrp 组名 文件名
sudo权限:
root把本来只能超级用户执行的命令赋予普通用户执行.
sudo的操作对象是系统命令
visudo
#实际修改的是/etc/sudoers文件
root ALL=(ALL) ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
%wheel ALL=(ALL) ALL
#%组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径)
6.系统服务
系统服务管理:
启动服务:systemctl start <服务名>
关闭服务:systemctl stop <服务名>
重启服务:systemctl restart <服务名>
查看服务状态:systemctl status <服务名>
添加开机启动项:systemctl enable <服务名>
禁止开机启动项:systemctl disable <服务名>
查看开机启动项:systemctl list-unit-files
进程查看:ps:
用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps -ef 显示出的结果:
1.UID 用户ID
2.PID 进程ID
3.PPID 父进程ID
4.C CPU占用率
5.STIME 开始时间
6.TTY 开始此进程的TTY----终端设备
7.TIME 此进程运行的总时间
8.CMD 命令名.
杀死进程:kill -9 pid
7.网略管理
7.1.防火墙
防火墙配置命令:firewall-cmd
防火墙帮助:
fireweall-cmd --help
查看防火墙状态:
firewall-cmd --state
查看所有打开的端口:
firewall-cmd --zone=public --list-ports
开启端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)
更新防火墙规则:
firewall-cmd --reload
删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
8.软件安装
Linux系统是使用软件包管理器来进行软件的安装、卸载和查询等操作的。
软件包管理器又分为后端工具和前端工具。
后端工具有rpm, dpt
前端工具有yum
8.1 常用命令
rpm 常用命令
安装一个包
# rpm -ivh <包名>
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
--force 即使覆盖属于其它包的文件也强迫安装
查询一个包是否被安装
# rpm -q <软件名>
得到被安装的包的信息
# rpm -qi < 软件名>
列出该包中有哪些文件
# rpm -ql < 软件名>
列出服务器上的一个文件或目录属于哪一个RPM包
#rpm -qf <文件或目录名>
列出所有被安装的rpm package
# rpm -qa
卸载一个包
# rpm -e <软件名>
yum常用命令
查看yum库中的所有包
# yum list
安装命令
# yum install <软件名>
查看已经安装的软件包
# yum list installed
卸载软件包
# yum remove <软件名>
jdk安装步骤
1 上网上把jdk的安装包下载到本地
2 把下载好的包上传拿到Linux上
3 进行解压操作 tar -zxvf jdk1.8 -C /usr/local
3.1 修改一个包的名字 mv jdk1.8_01 jdk1.8
4 配置环境变量 vi /etc/profile
export JAVA_HOME =/usr/local/jdk1.8
export PATH=/usr/local/jdk1.8/bin:$PATH
5 source /etc/profile
6 java -version 去查看版本
tomcat的安装步骤
1 上网去吧tomcat的包下载到本地并且上传到Linux服务器上
2 进行解压操作 tar -zxvf 报名 -C /usr/local
3 启动tomcat ,切换到tomcat的bin目录 执行./startup.sh
4 防火墙关闭 systemctl stop firewalld
5 查看tomcat 是否已经启动成功,看日志文件,tail -f -n 50 catalina.out
ps -ef | grep java netstat -ntlp
如果关闭已经启动的tomcat
1 先查询到他的进行信息 ps -ef | grep java
2 kill -9 进程id
项目部署
两种方式 : 1 jar 方式 2 war包的方式
wms的部署
1 新建一个数据库名字叫wms, 并且把wms.sql文件导入进去
2 把wms.war这个包上传到linux上
3 把ROOT 目录下的内容删除了 rm -rf ROOT/*
4 mv wms.war /usr/local/apache-tomcat/webapps/ROOT
5 unzip wms.war 进行解压操作
6 修改db.properties 路径/usr/local/apache-tomcat-7.0.78/webapps/ROOT/WEB-INF/classes
6.1 把密码修改成WolfCode_2017
6.2 连接信息需要加编码useUnicode=true&characterEncoding=utf-8
7 重启tomcat
jar包的部署
1 新建一个springboot项目,把项目打包成jar包
2 把jar包上传到Linux上
3 通过java -jar 运行jar
错误问题
1.在vim界面按了ctrl+s,进入假死状态,按ctrl+q退出
2.You may not specify more than one `-Acdtrux' or `--test-label' option
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local 中的 -c 写成了小写
tail -f -n 50 catalina.out