Linux2
复习
什么是Linux:就是一个操作系统
文件夹命名
创建文件夹:mkdir -p 路径及目录名
移动文件:mv 旧文件/目录 新文件/目录
复制文件:cp -r 旧文件/目录 新文件/目录
删除文件: rm -rf 路径及文件
文件命令:
查看文件
cat 路径及文件名
less
more
创建文件
方法1:touch 路径及文件名
方法2:vi 路径及文件名(注:按【i】键输入,按【:wq】保存并退出)
重定向
echo 内容 > 路径文件名
echo 内容 >> 路径文件名
ctrl + c【强制退出】
ctrl + a【光标回到行首】
ctrl + e【光标回到行尾】
vi编辑器【重要】
1、介绍
vi是linux下一款强大的编辑器,相当于win下的记事本,但是功能比记事本强大N倍
初体验
- 需求:通过vi创建/php.txt文件,写入“张三i李四”
- 语法:vi 路径及文件名
- 说明:文件存在-修改,不存在-创建
步骤1:vi /php.txt
步骤2:按【i】键盘,最下角会出现insert则可以输入内容
步骤3:输入完毕后按【esc】键这时候最下角insert消失,再按【:wq】保存并退出即可
vi三种模式
使用vi操作
1)尾行模式(按esc返回到该模式)
- 退出 和 强制退出 (:q 和 :q!) quit css中(!important)
- 保存并退出 (:wq)
- 查找 并继续向下查找 (/搜索的内容 按回车进行搜索,搜索更多按n键) next
- 显示行号 和 隐藏行号 (set nu 和 set nonu)set number 和 set nonumber
- 跳转指定行 (:数字)
- 跳转行首行位 (:0 和 :$) 正则表达式$
命令行模式
- 复制(yy) copy
数字+yy 当前光标向下复制n行
- 粘贴(p)
- 撤销(u)
- 删除(dd) delete
数字+yy 当前光标向下删除n行
编辑模式
【a】:光标后一位
【A】:光标最后
【i】:插入(光标签一位)
【I】:最前插入
【o】:下另一起行
【O】:上另一起行
5、打开文件
- 【vi 路径及文件名】打开文件(文件存在则修改,不存在则创建)
- 【vi + 路径及文件名】打开文件,把光标定位到最后一行。
- 【vi +数字 路径及文件名】打开文件,把光标定位到第n行。
- 【vi /搜索内容 路径及文件名】打开文件,把光标定位到string 字符串所在的行
︴vim的扩展补充
什么是VIM
vim同vi都是linux下的编辑器,但是功能比vi强大,如:代码高亮或补全代码等
使用
命令:vim 路径及文件名
说明:除了将vi关键词替换成vim其他命令都一样
二、用户和用户组管理【重要】
1、说明
Linux通过配置文件管理用户和用户组
存储用户配置文件:/etc/passwd
php: x: 500: 500: itcast: /home/php: /bin/bash
用户名 密码占位 用户编号 用户组编号 备注 用户家目录路径 shell
存储用户组配置文件:/etc/group
php: x: 500:
组名 组编号
2. 用户管理
1)添加用户 (user add)
- 语法: useradd 参数 用户名
- 参数:
- -g 设置所属用户组(group) 注:创建用户默认也会创建同名用户组
- -d 设置用户家目录(dir) 注:默认创建用户会在/home下创建同名文件夹
- -c 设置用户备注(comment)
#需求:创建php1用户
useradd php1
#需求:创建php2用户并设置用户备注(php12)
useradd -c php12 php2
2)修改用户 (modify)
- 语法:usermod 参数 用户名
- 参数:
- -g 设置所属用户组(group)
- -d 设置用户家目录(dir) 注:默认创建用户会在/home下创建同名文件夹
- -c 设置用户备注(comment)
- -l 更改用户名(login_name)
#将php1更改为php1_update 并且修改备注为【66】
usermod -l php1_update -c 66 php1
3)删除用户 (delete)
语法:userdel 参数 用户名
注意:-r 表示同时删除家目录(注:默认不删家目录)
3、用户组管理
1)添加用户组 (add)
- 语法:groupadd 参数 组名
- 参数:
- -g 设置用户组编号
2)修改用户组信息
需求:将php3组更名为php3_update 并且用户组编号为503
groupmod -g 503 -n php3_update php3
3)删除用户组
语法:groupdel 组名
说明:如果用户组下有用户则不能删除
4. 用户管理(补充)
1)密码管理
- 语法:passwd 参数 用户名
- 参数:
- 不加参数直接回车则设置用户密码
- -S 查看用户状态
- -l 冻结用户不能登录(lock)
- -u 解冻(unlock)
创建php1用户并设置密码123
useradd php1
passwd php1 回车
︴案例1
新建一个songjiang用户,初始组为liangshan组,
并设置密码为 songjiang123
步骤1:创建lianshan组
groupadd lianshan
步骤2:创建宋江用户
useradd -g liangshan songjiang
步骤3:设置密码
passwd songjiang 回车输入密码
︴案例2
把songjiang用户锁定(相当于禁止账号登陆),
passwd -l songjiang
总结
【用户管理】
添加用户:useradd 参数 用户名 (-d 设置家目录,-g 设置所属用户组,-c 设置备注)
修改用户:usermod 参数 用户名(-d 设置家目录,-g 设置所属用户组,-c 设置备注,-l 更改用户名)
删除用户:usedel 参数 用户名 (-r 同时删除用户家目录)
脚下留心:创建用户会同时创建同名家目录和用户组
【用户组管理】
添加用户组:groupadd 参数 组名 (-g 设置用户组编号)
修改用户组:groupmod 参数 组名 (-g 设置用户组编号,-n 修改组名)
删除用户组:groupdel 组名 (用户组有用户不能删除)
【用户管理补充】
设置密码: passwd 用户名 回车设置密码
冻结用户:passwd -l 用户名 (lock)
解冻用户:passwd -u 用户名 (unlock)
查看状态:passwd -S 用户名 (status 和 state)
#创建phpn用户并且属于phpn用户组(注:该用户不能登录)
useradd -s /sbin/nologin phpn
三、权限操作【重要】
1、文件目录权限
概念
从文件本身来说,权限分为:执行(exec)、写(write)、读(read)
从用户角度来锁,权限分为:文件拥有者、同组用户、其他组用户
相对于文件而言,有r权限就有x权限(一般工作中x忽略直接r)
第一列:表示文件的类型,
d – 表示文件夹
– – 表示文件
l – 表示软链接(相当于win下的创建方式) 下午验证
第二大列分(成三组)表示是权限的设置,
红色表示文件主人
绿色表示同组用户
蓝色表示其他组用户
其他列
︴生活案例
用户名 liming ,创建了一个歌词文件 《今夜你会不会来.txt》;四大天王可以查看修改该文件,但是不可以唱
文件主人: liming 权限:rwx可读、可写、可执行(唱)
同组用户: xueyou 权限:rw- 可读、可写
其他组用户: wukong 权限:r– 可读
【代码】
步骤1:创建用户组
group add fourKing
步骤2:创建用户
useradd -g fourKing liming
useradd -g fourKing xueyou
useradd wukong
步骤3:授权
touch /今夜你来不来.txt
chmod -R 764 /今夜你来不来.txt
2、更改文件权限
1)更改文件权限 (change mod)
- 语法1:chmod -R ABC<用数字表示> 待授权的文件
- 说明1:
- ABC分别表示:A-文件主人、B-同组用户、C-其他组用户
- 声明:读(4)、写(2)、执行(1)
- 用数字表示
- – 无权限
- – 可执行
- – 可写
- – 可写 + 可执行
- – 可读
- – 可读 + 可执行
- – 可读 + 可写
- – 可读 + 可写 + 可执行
【 案 例】:新建一个文件,对该文件的权限是7(所有者) 5(同组)5(其他组)
chmod -R 755 /xxx.php
- 语法2:chmod -R {<augo><+=-><rwx>,…,<augo><+=-><rwx>} 待授权文件
- 说明2:
- augo分别代表:
- a-所有用户(all),u-文件主人(user),g-同组用户(group),o-其他组用户(other)
- <权限范围>+<权限设置> 指定范围追加权限
- <权限范围>-<权限设置> 指定范围删除权限
- <权限范围>=<权限设置> 指定范围修改权限
【案例1】比如把 hello.txt 文件,对其他组用户添加 w权限。
touch /hello.txt
chmod -R o+w /hello.txt
【案例2】比如把 hello.txt 文件,对所属组添加 w权限,对其他组删除 w权限
touch /hello.txt
chmod -R g+w,o-w /hello.txt
2)更改文件拥有者 (change own)
语法:chown -R 新拥有者名 待更改拥有者的文件
说明:只能文件主人或者超级管理员设置
3)更改文件所属组 (change group)
语法:chgrp -R 新所属组 待更改组的文件
说明:仅文件组人或者超级管理员
小总结
文件权限分为:读(r 4)、写(w 2)、执行(x 1)
文件用户概念:文件主人、同组用户、其他组用户
问:我怎么知道当前文件属于哪个用户或者哪个用户组
答:ls -l(文件类型 — — —)
授权语法1:chmod -R ABC<用数字表示> 待授权的文件
说明:
ABC分别表示:主人、同组用户、其他组用户
数字权限:
授权语法2:chmod -R <augo><+-=><rwx>,…,<augo><+-=><rwx> 待授权的文件
更改拥有者(change own):chown -R 新主人 文件
更改所属组(change group):chgrp -R 新组 文件
linux创建执行文件
vi test.sh (运行 sh 文件名.sh)
#!/bin/bash
echo 6666
【目录】
x 进入目录
r 看目录内容
w 目录创建删除文件
【文件】:一般都设置r权限
r 可以查看文件内容、可执行
r + w 可读、可写文件、可执行
x 单独用(.sh不行, .out可以 等)
【C代码】
vi test.c
#include <stdio.h>
int main()
{
printf(“hello word!\n”);
return 0;
}
输出 hello word ,
gcc test.c
./test.out
计划任务
1、Linux计划任务【重要】
1)说明
- 概念:在指定时间内去完成指定任务的表现称之为计划任务
- 举例1:通过计划任务定时发布文章
- 举例2:项目开发dev测试完毕通过计划任务指定3点线上服务器更新master分支
2)设置(crontab)
- 设置语法:crontab -e (edit)
- 查看语法:crontab -l (list)
crontab -e相当于vi命令,只不过打开后需要输入指定内容
3)语法
* * * * * 任务
分 时 日期 月 星期几
︴案例:当前时间+1分钟,给/php12/tmp.txt文件追加内容
步骤1:cronta -e
步骤2:输入
* * * * * echo >> /php12/tmp.txt
查看服务器时间:date
修改服务器时间
步骤1:date -s ‘日期’
步骤2:clock -w 写入系统即可
︴案例:每隔1分钟,给/qz1/tmp.txt文件追加内容
#语法
#* * * * * 任务
*/1 * * * * echo 8 >> /php12/tmp.txt
︴综合案例说明
#语法
# * * * * * 任务
# 分 时 日期 月 星期几
45 22 * * * 任务
0 17 * * 1 任务
0 5 1,15 * * 任务
40 4 * * 1-5 任务
*/10 4 * * * 任务
0 0 1,15 * 1 任务
︴案例
定于4月19号,23点45分,开始商品上架(执行一个php文件)
45 23 19 4 * /server/php/php.exe /server/www/shop.php
shop.php里面写mysql修改数据库 上架:1-上架,0-下架
2、window计划任务【了解】
控制面板-> 系统和安全->管理工具->任务计划
Linux运行模式【了解】
1、概念
- 单用户:一台计算机在同一时间仅一个用户可以使用
- 多用户:一台计算机在同一时间多个用户可以使用
- 单任务:用户在同一时间只能运行一个应用程序
- 多任务:用户在同一时间运行多个应用程序
- 现在操作系统一般都是多用户多任务
Linux运行模式
在Linux中一共有7中运行方式/模式,用数字0-6表示,分别为:
0:关机模式(永久禁用)
1:单用户模式
2:多用户模式
3:命令行模式(推荐)
4:保留,未使用
5:桌面模式 (不推荐,仅学习看一下)
6:重启模式(永久禁用)
更改运行模式
- 临时更改:init 数字
- 永久更改:修改vi /etc/inittab即可
六、软链接和硬链接
1、概念
- 软链接 – 相当于win创建快捷方式(快速操作,注:删除源文件,无法继续操作)
- 硬链接 – 相当于将源文件拷贝一份(避免误删,注:数据共享,删除一个另一个还在)
语法
- 软链接 – 【ln -s 源文件 目标文件】
- 硬链接 – 【ln 源文件 目标文件】
练习
1)软链接
rm -rf /test
mkdir -p /test
echo 123 > /test/a.php
ln -s /test/a.php /test/b.php #软链接
echo 4 >> /test/b.php
cat /test/a.php #????? 1234
rm -rf /test/a.php
cat /test/b.php #????? 报错
2)硬链接
rm -rf /test
mkdir -p /test
echo 123 > /test/a.php
ln /test/a.php /test/b.php #硬
echo 4 >> /test/a.php
cat /test/b.php #????? 1234
rm -rf /test/a.php
cat /test/b.php #?????1234
七、shell脚本(补充)
1、什么是shell脚本
- Shell脚本与Windows/Dos下的批处理相似,它是一个用 C 语言编写的程序
shell指linux指令,如:ls、pwd等
shell脚本可以理解为一堆shell的集合
http://www.runoob.com/linux/linux-shell.html
2、初体验(创建第一个shell脚本)
#步骤1:创建一个以sh结尾的文件
#步骤2:在sh结尾的文件头部写入脚本声明
#!/bin/bash
#步骤3:在头声明后面写入shell指令即可【运行脚本:sh 绝对路径/文件名.sh】
判断
Select_Id=3
if [ $Select_Id == 1 ]; then
echo d111
elif [ $Select_Id == 2 ]; then
echo 2222
elif [ $Select_Id == 3 ]; then
echo 3333
else
echo ‘no select id, exit…’
exit 1
fi
菜单选择
echo ”
Please Select Install
# —————————————
1 — Linux + Apache + MySql + PHP5.3 —
2 — Linux + Apache + MySql + PHP5.4 —
3 — Linux + Apache + MySql + PHP5.5 —
— —
4 — PHP UPD 5.3 —
5 — PHP UPD 5.4 —
6 — PHP UPD 5.5 —
— —
7 — don’t install is now —
# ————————————
”
sleep 0.1
read -p “Please Input 1,2,3: ” Select_Id
if [ $Select_Id == 1 ]; then
#bash $sk/lamp/init.sh
echo ‘Linux + Apache + MySql + PHP5.3’
elif [ $Select_Id == 2 ]; then
echo ‘222222’
elif [ $Select_Id == 3 ]; then
echo ‘33333’
elif [ $Select_Id == 4 ]; then
echo ‘44444’
elif [ $Select_Id == 5 ]; then
echo ‘555’
else
echo ‘no select id, exit…’
exit 1
fi
总结
【vi编辑器】
#vi编辑器三种模式:命令行模式、尾行模式、编辑模式
#命令行模式
> yy 复制
> 数字 + yy 复制指定行
> p 粘贴
> u 撤销
> dd 删除
> 数字 + dd 删除指定行
#尾行模式
> :wq 保存并退出
> :q 退出
> :q! 强制退出
> /字符串 搜索,按n向下匹配
> :set nu 显示行号
> :set nonu 隐藏行号
> :数字 跳转指定号(行首:0 ,行尾:$)
#编辑模式
> a 后一个
> A 最后
> i 前一个
> I 最前
> o 下一行
> O 上一行
#打开文件多种方式
# vi 路径及文件 光标第一行
# vi + 路径及文件 光标最后一行
# vi +数字 路径及文件 光标指定行
# vi +/内容 路径及文件 光标匹配行
———————————————–
【用户命令】
> #添加用户: useradd 参数 用户名 (-d指定家目录,-c备注,-g用户组)
> #修改用户: usermod 参数 用户名 (-d改家目录,-c改备注,-g改用户组,-l改用户名)
> #删除用户: userdel -r 用户名 (-r表示删除用户家目录)
> #查看用户: cat /etc/passwd
【用户组命令】
> #添加组: groupadd 参数 用户名 (-g用户组编号)
> #修改组: groupmod 参数 用户名 (-g用户组编号,-n改组名)
> #删除组: groupdel 用户名 (注:用户存在则不能删除)
> #查看组: cat /etc/group
【用户补充】
> passwd 用户名 回车设置密码
> passwd -S 用户名 查看用户状态
> passwd -l 用户名 冻结用户
> passwd -u 用户名 解冻
———————————————–
【权限】
#语法1:chmod -R ABC<用数字表示> 待授权的文件
#说明1:ABC分别表示(A-文件拥有者,B-同组用户,C-其他组用户)
#说明1:数字含义
0 – 无权限
1 – 可执行
2 – 可写
3 – 可写、可执行
4 – 可读
5 – 可读、可执行
6 – 可读、可写
7 – 可读、可写、可执行
#语法2:chmod -R {augo}{=-+}{wrx},…,{augo}{=-+}{wrx} 待授权的文件
#说明2:augo分别表示(a-所有用户,u-拥有者,g-同组用户,o-其他组用户)
#说明2:权限范围
<augo>+<wrx> 追加权限
<augo>-<wrx> 移除权限
<augo>=<wrx> 修改权限(覆盖)
# 更改拥有者:chown -R 新主人 文件
#更改同组用户:chgrp -R 新组 文件
———————————————–
【运行模式】
init 3 命令行模式
init 5 桌面模式
init 6 重启
修改永久的运行模式:vi /etc/inittab文件
———————————————–
软链接:相当于win创建快捷方式【快速操作】
硬链接:相当于复制一份源文件【防止误删】(注:数据共享,删除一个另一个还在)
———————————————–
【shell脚本】
什么是shell脚本:一堆shell的集合
以sh结尾,用【#!/bin/bash】声明的文件
运行shell脚本:sh 绝对路径/文件名.sh