Linux
内核:只提供操作系统的基本功能和特性,如内存管理,进程调度,文件管理等等。
Linux内核: https://www.kernel.org/
发行版:基于linus维护的linux内核,是由一些厂商集成了漂亮易用的桌面和常用的软件而发布的商品。
Linux与Windows的不同
-
Linux严格区分大小写
-
Linux中所有内容都以文件形式保存,包括硬件
-
Linux不靠拓展名区分文件类型:
>压缩包:“.gz”,“.bz2",".tar.bz2”,"*.tgz"等
>二进制软件包:“*.rpm”
>网页文件:“.html",".php”
>脚本文件:“*.sh”
>配置文件:“*.conf”
4.Windows下的程序不能直接在Linux中安装和运行
字符界面的优势:
- 字符界面占用的资源更少
- 字符界面减少了出错,被攻击的可能性
如果windows想要和vmware这个虚拟机进行通讯,windows必须要有vmnet8
Linux系统的目录结构
Linux系统的目录结构是一个树状结构,根目录只有一个 /
命令基本格式
- ls [选项] [文件或目录]:查询目录中的内容
选择:
-a :显示所有文件,包括隐藏文件
-l :显示详细信息 ls -l 简写 ll
-h :人性化形式文件大小 -- ls -l -h 简写 :-ls -lh
- clear: 清屏
- pwd:查询所在目录位置
- touch 文件名:创建文件
- mkdir -p[目录名] :建立目录
- 切换所在目录:cd [目录]
简化操作:
cd ~ 进入当前用户的家目录
cd 同上
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
--------------------------------------
-
删除空目录:rmdir
用法:rmdir [目录名] 创建一个目录 创建层级目录 -p
-
删除文件或目录:rm
用法:rm -rf [文件或目录] 选项: -r 递归删除目录 -f 强制
-
复制命名:cp
复制目录需要加上 -r
- 剪切或改名命令:mv
cp 源文件 新名称 ---->把源文件拷贝一份,名字就是你指定的名字
cp 源文件 目录 ------>把源文件拷贝一份,拷贝到指定目录中,名字和之前源文件的名字相同
cp 源文件 目录/新名字---->把源文件拷贝一份,拷贝到指定目录中,名字是你指定的新名字
mv 源文件 新名称 ---->把源文件的名字改名新名称
mv 源文件 目录------>把源文件剪切到指定目录中,名称和之前的名称一样
mv 源文件 目录/新名称 ---> 把源文件剪切到指定目录中,名称是你指定的新名称
- whereis 命令名 #搜索命令所在路径及帮助文档所在位置
- which* *文件名 #搜索命令所在路径及别名
文件搜索命令
- find [搜索范围] [搜索条件]
示例:
find / -name install.log
//find / -name install.* 匹配多个
//find / -name install.lo? 匹配一个
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
find /root -iname install.log #不区分大小写
find /root -user root #按照所有者搜索
find /root -nouser #查找没有所有者的文件
- 字符串搜索命令 grep [选项] 字符串 文件名:
grep [选项] 字符串 文件名
\#在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串
-
man命令: 用法:man ls #查看ls的帮助
选项帮助: 命令 --help #获取命令选项的帮助 实例:ls --help 但是不适用内部命令,如cd: help cd
压缩与解压缩命令
- .zip格式:
压缩用法: zip 压缩文件名 原文件
zip -r 压缩文件名 原文件夹
解压用法: unzip 压缩文件
- .gz格式:
压缩用法: gzip 原文件 压缩为.gz格式的压缩文件,原文件会消失
gzip -r 目录 压缩目录下的所有子文件,但是不能压缩目录
解压用法:
gzip -d 压缩文件
gunzip 压缩文件
gz格式 去压缩目录的时候是有缺陷的, 他是对于目录里面的文件进行了一个个压缩
打包命令
打包命令&解打包:
- 打包命令: tar -cvf 打包文件名 源文件
选项:
-c 打包
-v 显示过程
-f 指定打包后的文件名
解打包: tar -xvf 打包文件名
选项:
-x 解打包
- .tar.gz格式:
选项:-z 压缩为.tar.gz格式
压缩用法: tar -zcvf 压缩包名.tar.gz 源文件
解压用法: tar -zxvf 压缩包名.tar.gz
tar -zxvf 压缩包名.tar.gz -C 指定目录
关机和重启命令
- shutdown命令:
用法 shutdown [选项] 时间
选项:
-c 取消前一个关机命令
-h 关机
-r 重启
\#使用shutdown会在关机的时候帮我们保存数据
其他重启命令:
reboot
init 6
其他关机命令:
halt
poweroff
init 0
\#使用这三个命令不是特别安全,因为它们不会帮我们保存数据
其他命令
磁盘使用情况df: 选项-h: 格式化显示输出磁盘使用情况
查看操作历史history: 用于显示执行过的历史命令记录
在显示器输出内容:echo
文件查看命令cat
日志监控命令:tail 默认在屏幕上显示指定文件的末尾10行
-f 显示文件最新追加的内容。
-n 行数 在屏幕上显示指定文件的末尾参数设置的行数
查看内存占用:free
查看任务进程:top
Vi编辑器
三种模式:
- 编辑模式
- 输入模式:在编辑模式下按i、a、s、o、I、A、S、O u是撤回
- 末行模式 : :q! 不保存退出 :wq 保存并退出
编辑模式(命令模式)---i,a,s,o---->输入模式
<------esc-------
编辑模式------ : ------->末行模式
<------esc--------
i: 在光标所在字符前开始插入
a: 在光标所在字符后开始插入
o: 在光标所在行的下面另起一新行插入
s: 删除光标所在的字符并开始插入
I: 在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A: 在光标所在你行的行尾开始插入
O: 在光标所在行的上面另起一行开始插入
S: 删除光标所在行并开始插入
移动光标:
逐字符移动: h:左移动 l:右移动 j:向下移动 k:向上移动
行内跳转(命令模式):
0:跳转到行首
$: 跳转到行尾
行间跳转(末行模式):
num: 跳转到某一行(末行模式)
G: 跳转行最后一行(编辑模式)
gg: 跳转到第一行(编辑模式)
翻屏操作
在编辑模式下: ctrl+f 向下翻一页 ctrl+b 向上翻一页
删除操作
dd: 删除光标所在行 (编辑模式)
3dd:从光标行开始删除3行(编辑模式)
1,4d 删除第一行到第四行(末行模式)
1,$d :删除整个文件所有的内容
复制和粘贴
yy 复制光标所在行 (编辑模式)
2yy 从光标行开始复制2行(编辑模式)
p: 粘贴命令(编辑模式)
查找和替换
/parttern 从前往后查找(末行模式)
?parttern 从后往前查找(末行模式)
n: 下一个匹配的字符串
N: 上一个匹配的字符串
文本的替换(末行模式):
startNum,endNums/partter/string/gi
g:全局替换
i:忽略大小写
%s/f/F/gi 全局忽略大小写把f替换成F
.,$s/F/f/gi 当前行到结尾把f替换成F
用户管理
创建用户 :useradd [用户名]
创建用户并分配一个组:useradd -G [组名] [用户名]
查看系统用户:cat /etc/passwd
创建用户组 groupadd 组名 #查看系统用户组:cat /etc/group
修改用户组 usermod #usermod -G [组名] [用户名]
删除用户 userdel 用户 -f:强制删除用户,即使用户已登录
-r:删除与用户相关的所有文件。
删除组 groupdel 组名
设置用户密码 passwd 用户名
文件权限
- 文件权限解释:
示例: -rw-r--r--
\- 文件类型(- 文件 d 目录 I 软链接文件)
rw- r-- r--
u所有者 g所属组 o其他人
r读 w写 x执行
- 修改权限chmod:
chmod [选项] 模式 文件名
选项
-R 递归
模式
[guoa] [+-=] [rwx]
[mode=421]
-
修改文件的所有者: 用法:chown 用户名 文件名
-
修改文件的所属组: 用法:chgrp 组名 文件名
- 参数解析
[root@192 ~]# ll
total 20
...
-rw-r--r--. 1 root root 225 Jun 15 09:17 movie.tar.gz
-------------------------
解析
-rw-r--r--. 1 root root 225 Jun 15 09:17 movie.tar.gz
第一位参数:
如果是 - 表示文件
如果是 d 表示目录
如果是 1 表示软链接
9个占位3个表示一部分
第一部分:
-rw-r--r--中
rw-r:表示文件的所属者拥有的权限
第二部分:
-rw-r--r--中
r--r:表示文件所属权限
第三部分:
-rw-r--r--中
r--:表示其他用户权限
-rw-r--r--. 1 root root 225 Jun 15 09:17 movie.tar.gz
| |
文件所属人|
|
文件所属组
root组: zhangsan
kent组: kent
如果是root用户操作,拥有读 写权限
zhangsan用户操作 : 读权限
kent用户操作:读权限
r:表示读权限
w:表示写权限
x:表示执行权限
- 权限赋权
r-- :4
-w- :2
--x :1
例子-----------------------
-rwxrwxrwx 转成-rw-r--rw-
1.chmod u-x,g-w,g-x,o-x cangls.avi
2.chmod u=rw,g=r,o=rw cangls.avi
3.chmod 646 cangls.avi
- sudo权限:
root把本来只能超级用户执行的命令赋予普通用户执行.
sudo的操作对象是系统命令
visudo
\#实际修改的是/etc/sudoers文件
root ALL=(ALL) ALL
\#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
%wheel ALL=(ALL) ALL
\#%组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径)
系统服务管理:
启动服务: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 命令名.
ps -ef | grep java ---管道符查看java进程信息
杀死进程:kill -9 pid
防火墙
防火墙配置命令: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
软件安装
rpm
rpm 常用命令
安装一个包
# rpm -ivh <包名>
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
--force 即使覆盖属于其它包的文件也强迫安装
查询一个包是否被安装
# rpm -q <软件名>
得到被安装的包的信息
# rpm -qi < 软件名>
列出该包中有哪些文件
# rpm -ql < 软件名>
列出服务器上的一个文件或目录属于哪一个RPM包
#rpm -qf <文件或目录名>
列出所有被安装的rpm package
# rpm -qa
卸载一个包
# rpm -e <软件名>
yum
yum常用命令
查看yum库中的所有包
# yum list
安装命令
# yum install <软件名>
查看已经安装的软件包
# yum list installed
卸载软件包
# yum remove <软件名>
//管道查询
yum list installed | grep httpd
JDK安装
1.把jdk软件通过SecureCRT工具上传到usr/local/software //上传路径
2.cd /usr/local/software中进行解打包操作
tar -zxvf jdk软件包名 -C /usr/local //解压到指定路径
3.mv jdk1.8.0_161 jdk1.8 //改名
4.vi /etc/profile //配置jdk
export JAVA_HOME=/usr/local/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
保存退出
5.source /etc/profile //刷新
6.java -version //查看版本
tomcat安装
1.把tomcat软件安装包上传到Linux中 /usr/local/software
2. tar -zxvf tomcat软件包名 -C /usr/local //解压到指定路径
3.启动tomcat两种方式:
一: /usr/local/apache-tomcat- 7.0.78/bin/startup.sh
二:找到tomcat对应bin目录,输入 ./startup.sh
4.如何确定tomcat是否有启动成功
一: 查看tomcat的logs里面的catalina.out日志文件 tail -f -n 100 catalina.out //查看是否有端口信息
二:ps -ef | grep java 看是否有进程消息
5.如何重启tomcat:首先通过 ps -ef | grep java查看tomcat进程信息
使用 kill -9 进程id 把tomcat进程杀掉,再去重新启动