Linux:
关机命令:halt init0
重启:reboot init6
linux目录结构:
bin 存放系统可执行的命令文件
boot 存放系统文件【相当于windows下的c盘】
dev 存放媒体设备
etc 系统配置文件
home 普通用户家目录
lib 基础软件编译库
opt 用户安装软件目录
proc 设备信息
run 进程任务pid
root 管理员家目录
tmp 临时存放文件目录【php的session文件】
usr 存放自己安装的文件目录【php环境】
var 各种服务的日志,定时任务
linux常用命令:
cd 路径 #切换目录XXXX
sl 展示文件目录【不填路径默认展示当前路径下的目录】
ll 展示文件目录下文件的详细信息
cal【年分-时间可选】 查看日历【添加时间查看指定时间日历】
date 查看时间
yum install xxxx 安装系统软件包
man 命令 查看命令使用说明
rm -rf /* 删除所有文件
fdisk -l 列出文件所属磁盘
cat 不进入文件,列出文件内容
netstat -nltp 查看运行的所有进程
ip addr 查看ip
mkdir 创建文件夹
rm -rf(*) 强制删除文件夹
touch 创建文件
rm -f 删除文件
mv dir1 dir2 dir2不存在 dir1目录名改成dir2
cp -r dir1 dir2 将dir1 的所有内容拷贝到dir2
pwd 查看当前位置
uname [-a] 查看系统版本
top 查看服务器(cpu 内存)运行状态
exit 退出
tree -L n [文件名] 列出文件下的树形图
more 将文件内容分屏查看(空格键下一页,b上一页)
less 将文件内容分屏查看(可以回头看,必须按Q退出)
head 显示文件前几行内容(默认10行)
head -n num 显示文件前num行内容
tail -f 查看文件最后几行内容,并且实时更新(一般用于log日志实时查询)
tailf
wc 查看文件字符数,行数
> 输出重定向 例:echo nihao > test01.txt(将 nihao写进test01.txt里面)
>> 输出重定向 例:echo nihao > test01.txt(将 nihao 覆盖写进test01.txt里面)
< 输入重定向
<< 输入重定向
find /文件名 -name 文件 查找文件
which 命令 查询命令可执行文件
tar:
*.tar 用tar-xvf 解压
*.tar.gz 压缩文件
tar czf 压缩后的名 要压缩的文件名 压缩文件
tar xf 压缩包名称 解压文件
rz 本地上传文件到服务器
unzip 压缩包名称 解压文件【只能解压 .zip格式】
sz 文件名 下载文件到本地
wget 链接地址 下载到服务器
curl
ps -ef 列出所有的进程
kill -9 PID 关闭进程
killall 进程名【MySQL php】 关闭某任务的所有进程
---------------------------------------------------------------
linux编辑器vim命令:
编辑模式: i/a/o
编辑模式切换到命令模式 按ECS
:set num 显示行号
:set nu
:set nu! 不显示行号
:n(行数) 跳转到第n行
:wq 保存退出
:wq! 不保存退出
:q 强制退出
:q! 强制不保存退出
:u 撤销
:s/xx/yy 将光标行查找到xx的第一个替换成yy
:%s/xx/yy 将查找到xx全部替换成yy
:dd 删除光标当前行
:n(行数)dd 删除光标当前行到下n行
yy 复制当前行
nyy 复制光标当前行到下n行
p 粘贴
. 重复一次执行上一个命令
0 到行首
$ 到行尾
G 移动到文件尾
gg 移动到文件首 行号 gg 跳到改行
Ctrl +v 批量操作
:%s# 待替换#要替换#g
/字符串 向下搜索 字符 n 选择下一个 N 选择上一个
?字符串 向上搜索
awk -F '分隔符' ‘{print $1[数值-第多少列]}’文件名 //获取文件第i列的内容
grep '获取值' 文件名 //获取行
grep -V '^查询值' 文件名 //取反
| 管道符 实现多个命令同步操作 例:cat index.php| awk '{print $1}'
wc -l //统计行数
sed -i 's###g' 不进入文件批量替换内容【功能同 %s###g相同】
sort 排序
linux 用户/管理员:
useradd 用户名 添加用户
useradd -g (用户组)用户名 -M (去掉)-s
usermod -g (组id) -d 用户主目录 -u 用户id -l 修改用户名
userdel 用户名 删除用户
userdel -r 删除用户并删除用户对应的主目录
groupadd 创建用户组
groupadd -g 用户组 id 添加用户组的同时指定用户组id
groupmod 修改用户组
groupmod -n 新租名称 旧组名称
groupmod -g 组 id 组名 修改用户组id
groupdel 组名 删除用户组(组里面还有用户,则删除失败)
passwd 修改用户密码
passwd 用户名 修改指定用户的用户名(只有root用户能操作)
---------------------------
查询所有用户:tail -n 5 etc/passwd
查询所有用户组 :tail -n 5 /etc/group
查询当前用户所在用户组:groups id
------------------------
linux用户权限设置命令:
chmod 权限值 文件名 设置用户权限
chnod R 文件名 递归设置用户权限
chown 用户名 文件名 修改文件的所属用户
chown R 用户名 文件名 递归修改文件的所属用户
chgrp 更改文件所属组
--------------------------------------------------------------------------
linux 中级知识
2.1 Shell 脚本编程
文件创建: vim *.sh
脚本格式: #!/bin/bash
脚本执行命令:bin/bash 文件名|修改文件执行权限 ./文件名
2.2变量赋值: name='haha' age=23
变量拼接:echo $name$age
字符串截取: echo ${name:2:4}
数组赋值:username=('haha' 'hehe')
数组输出 echo ${username[0]}
打印数组所有值 echo ${username[*]} | echo ${username[@]}
2.3传值
执行脚本 值1 值2
获取传值个数:$#
获取传入值:$1 $2 .....
获取当前进程PID:$$
查询脚本有无报错:$?[0 没有错误 127有错误]
2.4 流程控制 if
!//非 -o//或者 -a//并且
if [ 条件 ] //条件必须和中括号隔开
then
elif
else
fi
-d//判断目录是否存在 -f//判断文件是否存在 -e //判断目录或者文件是否存在
---------------------------------------------------------------------------------------------------
apache nginx 区别
apache: 1.稳定 2.在处理动态请求有优势 3.功能丰富,但是占用资源多 4.select 模型 阻塞
nginx:轻量级,占用资源小 2.抗并发 3.配置方便
总结:两者最核心区别:apache 是同步多线程模型 nignx 是异步