LInux学习笔记
Linux基础指令学习
开关机
- shutdown -h -now 立刻进行关机
- shudown -h 1 一分钟之后就会关机
- shutdown -r -now 重新启动计算机
- halt 关机
- reboot 现在重新启计算机
- sync 把内存的数据同步到磁盘中
Vim 一些基本命令
- vim + '文件名' 用vim编辑器打开文件
- 默认模式下的命令 | 序号 | 执行方法 | 作用 | |------|-------------|--------| | 1 | {num}dd | 删除行 | | 2 | {num}yy | 复制行| | 3 | P|粘贴| | 4 | GG | 跳转尾行| | 5 | gg | 跳到首行| | 6 | '/{string}'|寻找字符串 再按n不区分大小写寻找| | 7 | i /I |进入编辑模式| | 8 | u |撤销编辑|
- 基本保存命令
- :wq 保存并且关闭 :q退出 :q!强制退出
用户操作基本指令
| 序号 | 执行方法 | 作用 | |------|-------------|--------| | 1 | useradd {username} | 添加用户 | | 2 | useradd -d {文件目录} {username} | 添加用户+指定文件夹 | | 3 | passwd {username} | 修改用户密码 | | 4 | userdel {username} | 删除用户但是留下了home下面的加目录 | | 5 | userdel -r {username} | 删除用户+删除home的家目录 | | 6 | su {username} | 切换用户名 | | 7 | who i am | 当前登陆是谁 su 之后不改变who i am 结果 | | 8 | exit/logout | 退出登录 |
用户组
| 序号 | 执行方法 | 作用 | |------|-------------|--------| | 1 | groupadd {groupname} | 添加用户组 | | 2 | groupdel {groupname} | 删除用户组 | | 3 | usermod -g {groupname} {username} | 将用户移入用户组 | | 4 | useradd -g {groupname} {username} | 添加用户进用户组 | * /etc/passwd文件
用户配置的文件记录用户的各种信息 每行含义:用户名:口令:用户标识号:标组识号L注释性描述:主目录:登陆shell
/etc/passwd文件
口令的配置文件登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件
组的配置文件,记录Linux包含的组的信息每组的含义 组名:口令:组标识号:组内用户列表
运行级别
- 0 关机
- 1 单用户 【找回丢失的密码】
- 2 多用户状态没有网络服务
- 3 多用户状态有网络服务
- 4 系统未使用保留给用户
- 5 图像界面
- 6 系统重启
- 运行方法 init[0-6] 常用运行级别3和5 Centos7 后的运行级别说明(之前的在/etc/inittab中)
- multi-user.target:analogous to level 3
- graphical.target:analogous to level 5
设置默认启动模式
systemctl set-default {Target.target}
得用得用root执行
如何找回root密码
1.进入系统按E找到 linux16字样 进入到这一段的最后加一个空格init/bin/sh 再按ctrl+x
2.输入 mount -o remount,rw /
回车
3.输入 passwd
Enter
4.输入你想要的密码
5.输入touch / .autorelabel
回车
6.输入exec / sbin/init
回车
Linux帮助指令
- man 或者 help
- Linux中.开头的文件是隐藏文件
Linxu 文件操作类
| 序号 | 执行方法 | 作用 |
|------|-------------|--------|
| 1 | mkdir {path/name} | 默认创建一个目录 |
| 2 | mkdir -p {path/name} | 可以创建多级目录 |
| 3 | rmdir {path/name} | 可以删除一个空目录 |
| 4 | rm -rf {path/name} | 强制递归删除(warning) |
| 5 | touch {dcname} | 创建一个文件 |
| 6 | cp {文件名} 目录\ | 复制文件到目录 |
| 7 | cp -r {目录名} 目标目录\ | 复制目录到目标目录 |
| 8 | \cp -r {目录名} 目标目录\ | 加斜杠强制复制+覆盖 |
| 9 | mv {同目录文件} {同目录文件} | 可以修改文件名如 mv xiaoyu.txt xiaodao.txt |
| 10 | mv {目录} {目标目录} | 文件转移 |
| 11 | cat | 查看文件内容不带修改功能(使用时可以搭配/
more或者less进行组合)|
| 12 | echo |输出到控制台|
|13| head +文件名 | 默认显示前10行 |
|14| tail +文件名 | 默认显示后10行 |
|13| head -n 5 文件名 | 默认显示前5行 |
|14| tail -n 5 文件名 | 默认显示后5行 |
|15| tail -f 文件名 | 监控文件的实时变动 |
|16| >
|覆盖原文件的内容|
|17| >>
|追加内容|
|18|cat 文件1 > 文件2
|复制文件1的内容写到文件2中|
|19|ln -s 目录 快捷方式位置加名字
|快捷方式位置加名字中创建一个lnk软连接|
| 20 | history
|查看命令|
| 21 | !{num}
|在history
执行后可以用这个命令直接执行对应指令|
rm {}删除文件 rm -r 是删除文件夹 rm -f是不提示直接强制删除 rm -rf就是危险指令
- more使用说明 (more 会将文件全部加载再显示)
- less使用说明(按需加载)
Linux 日期
- date
- date +%Y
- date +%m
- date +%d
- date "+%Y-%m-%d %H:%M:%S"
- cal 日历指令
- cal 年份 显示指定年份日历
设置系统时间指令
date -s
说人话就是 date 空格 '一段时间'
查找指令 find
find [搜索范围] -查找类型'name/user/size' 条件
size 后 +n 是大于n -小于n n是等于
ls -lh罗列的显示会更好看的
搜寻查找类locate
使用locate会自己先创建一个locate数据库所以使用前必须要先updatedb否则会查找不到文件
使用方法就是locate 文件
which 指令
可以查询指令属于哪个文件目录
grep 检索文件内容 和 | 管道符号连用
grep "文本" 可以查找文件中的内容
使用案例cat -n /home/xiaoyu.txt | grep 'yes'
使用案例2grep -n 'yes' /home/xiaoyu.txt
grep指令中 -n 显示匹配行及行号,-i忽略字母大小写
作用xiaoyu.txt中的yes 在第几行
压缩和解压类
- gzip/gunzip指令(此命令不带指定文件目录的功能)
- gzip用于压缩文件/gunzip用于解压文件
- zip/unzip指令(较为强大)
zip -r myhome.zip /home/ [将home文件夹压缩成myhome.zip]
unzip -d /opt/tmp/ /home/myhome.zip
将myhome.zip解压到opt/tmp下面- tar命令
- -v 显示详细信息(可以不写)
- -c 产生.tar打包文件
- -f 指定压缩后的文件名这个f一定要加不管是解压还是压缩
- -z 打包同时压缩
- -x 解包.tar文件
- -C 指定目录
- 压缩多个文件为more.tar.gz
tar -zcvf more.tar.gz 文件1 文件2 .......
记得加空格 - 压缩文件夹
tar -zcvf 指定压缩名 压缩对象目录
- 解压文件到当前目录
tar -zxvf 压缩包
- 解压到指定目录
tar -zxvf 压缩包 -C 目标目录
Linux 文件组
Linux每一个用户必须属于一个组 不能独立于组外。每一个文件都拥有所有者 所有组 其他组三个选项。
| 序号 | 执行方法 | 作用 |
|------|-------------|--------|
|1|ls -alh
|查看文件所有者|
|2|chown 用户名 文件
|更改文件所有者|
|3|chgrp 组名 文件名
|修改文件所在的组|
|4|usermod -g 新组名 用户名
|改变用户所在的组|
|5|usermod -d 目录名 用户名
|改变该用户登陆的初始目录(用户需要有进入新目录的权限否则将失败)|
|6|cat /etc/group
|查看所有组|
Linux基本权限
-rwxrw-r--
9位字符(0开始)
0位:
d 是目录就是文件夹的意思
l 是链接相当于Windows link
c 是输入设备 鼠标键盘
b 储存设备块设备 硬盘之类的
* - 是普通文件
1-3位 文件所有者拥有该文件的权限 ---User
4-6位 确定所属组(所属组的用户)对文件的权限----Group
7-9 去 确定其他用户拥有对该文件的权限 --- Other
rwx作用到文件
- r 代表read 可以读取查看
- w 代表write 可以修改,但是不代表可以删除该文件,删除一个文件需要拥有此文件所对因的目录的write权限
- x execute 可执行
rwx作用到目录
- r 代表可以read 可以读取
- w 代表 可以修改对目录内能进行create del update rename
- x execute 可以进入该目录
权限可以用数字来命名
可以用数字来表示权限 r = 4 w = 2 x = 1 rwx = 7
修改权限-chmod
方法一 用 + - = 来变更权限
u:所有者 q:所有组 o:其他人 a:所有人
1 chmod u=rwx,q=rx,o=x 文件/目录名
给文件或者目录赋予用户有7权限 组有读和执行权其他人有执行权
2 chmod o+w 文件/目录名
其他人有写权
3 chmod a-x
剥夺所有人的执行权
给abc的所有者读写执行 给所组读写权限 给其他组都执行权限
chmod u=rwx,g=rx,o=rx abc
给abc所有者去除执行权限 增加组写的权限
chmod u-x,g+w abc
给abc文件的素有用户添加读的权限
chmod a+r abc
PS:Linux绿色的文件说明拥有可执行权限
方法二 用 数字 来变更权限
如chmod u=rwx,g=rx,o=x abc
= chmod 751 abc
·
修改文件目录所在组 修改文件所属用户
批量修改文件夹以及子目录文件所有者指令 chown -R 新用户 文件夹
批量修改文件夹以及子目录文件所有组指令 chgrp -R 新组 文件夹
Linux 权限个人细则总结
x权限是保证你能进入这个文件夹但是没办法ls读取目录但是可以对文件操作 r 只有无法进入文件夹 只有r+x才能进入并且浏览文件
Linux任务调度 crond
crontab 进行定时任务的设置 | 序号 | 指令 | 作用 | |0|-e|编辑定时任务| |1| -l| 查询定时任务| |2|-r|删除当前用户所有crontab任务|
简单演示
1.crontab -e
2.*/1 * * * * ls -l /etc/ > /tmp/to.txt
意思是说 每小时每分钟执行 一次命令
| 项目 | 含义 | 范围 |
| ---- | ---- | ---- |
| 第一个*
| 一个小时中的第几分钟 | 0-59 |
| 第二个*
| 一天当中的第几个小时 | 0-23 |
| 第三个*
| 一个月当中的第几天 | 1-31 |
| 第四个*
| 一年当中的第几月 | 1-12 |
| 第五个*
| 一周当中的周几 | 0-7 |
特殊符号说明
特殊案例说明
案例测试
每隔一分钟就将当前的日期追加到/tmp/mydate 文件中
*/1 * * * * date >> /tmp/mydate
每隔一分钟就将当前的日期和日历追加到/tmp/mycal 文件中
1. 写法一 创建sh脚本 vim my.sh 写入代码date >> /home/mycal;cal >> /home/mycal
第二步就是chmod u+x my.sh
赋予其执行权 然后crontab -e */1 * * * * /home/./my.sh
crond相关指令
- conrtab -r 终止任务调度
- crontab -l 列出当前有哪些任务调度
- service crond restart 重启任务调度
at定时任务(一次性任务在使用的适合一定要保持atd进程在运行)
at 定时任务搞定的是job队列的任务执行一次就会移除队列。
ps -ef | grep atd 查看进程atd是否在进行
at [
选项 ]
[
时间 ]
然后输入job队列结束的适合ctrl+D结束at命令输入
at定时任务时间格式
- 接受在当天的hh:mm ( 小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如: 04:00
- 使用midnight (深夜),noon (中午),teatime (饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
- 采用12小时计时制,即在时间后面加上AM (. 上午)或PM (下午)来说明是上午还是下午。 例如: 12pm
- 指定命令执行的具体日期,指定格式为monthday (月日)或mm/dd/yy (月/日/年)或dd.mm.yy (日.月.年),指定的日期必须跟在指定时间的后面。例如: 04:00 2021-03-12
- 使用相对计时法。指定格式为:now+counttime-units,now就是当前时间,time-units是时间单位,这里能够是minutes
- (分钟)、hours (小时)、days (天)、weeks (星期)。count是时间的数量,几天,几小时。例如: now + 5 minutes
- 直接使用today (今天)、tomorrow (明天)来指定完成命令的时间。
管理员已关闭本篇文章评论!