学习笔记1
帮助指令
1.man
获得帮助信息(最全且有中文)
例如:man ls
2.help
和man类似,但是是英文的
例如:help ls
3.百度
文件目录类指令
pwd
显示当前所在位置的绝对路径
ls
使用方法ls [选项] [目录或文件]
例如: ls -al /root
显示当前目录信息
- -a:显示当前目录所有的文件和目录,包括隐藏的
- -l:以列表的形式显示
cd
使用方法cd [参数](切换到指定目录)
- cd ~或者cd : 回到家目录
- cd ..返回上一级
mkdir
创建目录
使用方法mkdir [选项] 要创建的目录
常用选项 -p
例如: mkdir -p /home/aaa/bbb/ccc
rmdir
删除目录
基本语法:rmdir [选项] 要删除的目录
rmdir 删除的是空目录,如果目录不为空不能删除
touch
创建一个空文件
例如:touch hello.txt
cp
拷贝文件到指定目录
基本语法
cp [选项] 文件名 目标地址
- -r :递归复制整个文件夹
例如:
cp /home/hello.txt /home/bbb
cp -r /home/bbb/ /opt/
如果已存在会覆盖,覆盖不提示需要使用\cp
例如:\cp /home/hello.txt /home/bbb
rm
删除文件或者目录
基本语法:rm [选项] 要删除的文件或目录
- -r:递归删除整个文件夹
- -f:强制删除不提示
rm -rf /*【禁用,会删除整个系统,获得白手镯一对】
例如:
rm /home/hello.txt
rm -rf /home/bbb/
mv
移动文件与目录或者重命名
基本语法:
mv 老文件名 新文件名(重命名)
mv 需要移动的文件地址 新地址(移动文件)
例如
mv /home/cat.txt /home/pig.txt
mv /home/pig.txt /root/
mv /opt/bbb/ /home/uuu/
cat
查看文件内容【瞄一眼】
基本语法cat [选项] 要查看的文件
- -n:显示行号
例如cat -n /etc/profile
可以拼接管道命令| more
more
是基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。【全加载】
基本操作
- 空格:下一页
- 回车:下一行
- q:退出
- ctrl+F:向下滚动一屏
- ctrl+B:返回上一屏
- =:输出当前行号
- :f:输出文件名和当前行号
less
用来分屏查看文件内容,类似more,但是比more指令更强大,支持各种显示终端,less指令再显示文件内容时,并不是一次加载整个文件后才显示,而是只显示需要加载的【懒加载】
基本操作
- 空格:向下翻一页
- pgup:向上翻
- pgdown:向下翻
- /需要查找的内容:向下搜索;n向下查找,N向上查找【记住一个即可】
- ?需要查找的内容:向上搜索;n向上查找,N向下查找
- q:退出
echo
输出内容到控制台
基本语法echo [选项] [输出内容]
例如:
echo $HOSTNAME(输出环境变量)
echo "hello world"(输入hello world)
head
显示文件开头部分,默认显示前10行
基本语法
head 文件(查看文件前十行)
head -n 5 文件(查看文件前5行)
tail
显示文件末尾内容,默认显示后10行
基本语法
tail 文件(查看文件后10行)
tail -n 5(查看文件后5行)
tail -f 文件(追踪文件的所有更新)ctrl+C可以强制退出
>和>>
>输出重定向
>>追加
基本语法
ls -l > 文件(将查询到的结果写入文件,如果有内容也是覆盖)
ls -al >> 文件(将查询的结果追加在文件的末尾)
cat 文件1 > 文件2(将文件1的内容覆盖文件2)
ln
类似快捷方式
基本语法ln -s [有源文件或目录] [软连接名] 给目标文件或目录创建一个快捷方式
例如
ln -s /root/ myroot
rm myroot
在使用pwd时会仍然在软连接所在位置
history
查看以执行过的命令,也可以执行历史指令
例如
history(查看所有执行的命令)
history 10(最近10条)
!编号(执行历史指令)
date
显示当前日期
- date(显示当前时间)
- date "+%Y"(显示当前年份)
- date "+%Y-%m-%d %H:%M:%S"(显示年月日时分秒,-杠和:冒号为分割符)
- 设置日期
- date -s "字符串时间"(例如"2022-5-29 10:00:00")
cal
查看日历
基本语法cal [选项]
- cal (查看本月)
- cal 2022(查看2022年所有月)
find
指定目录下递归遍历查找,满足条件的文件或目录显示在终端
基本语法find [搜索范围] [选项]
- -name:按照文件名来查找文件
- -user:查找指定用户的所有文件
- -size:查找指定大小的文件 +n大于 -n小于 n等于(单位:k,M,G)
例如:
find /home -name hello.txt(查找home目录下hello.txt文件)
find /opt -user root(查找opt目录下属于root的所有文件)
find /home -size +20M (查找home目录下大于20M的文件)
locate
快速定位文件路径,locate会创建一个数据库,不使用全盘搜索而是查找数据库的方式快速查找
基本语法:
updatedb【更新locate数据库】
locate 搜索文件
which
查看某个命令在哪个目录下
例如which ls
grep指令和管道符号|
grep过滤查找,管道符“|”,表示前一个命令的结果输出给后面的命令处理
基本语法
grep [选项] 查找内容 源文件
- -n:显示匹配行和行号
- -i:忽略字母大小写
例如:cat hello.txt | grep -n "yes"
压缩和解压
gzip/gunzip
gzip压缩,gunzip解压
gzip 文件(压缩文件,只能将文件压缩成*.gz文件)
gunzip 文件.gz(解压文件)
例如:
gizp /home/hello.txt
gun /home/hello.txt.gz
zip/unzip
zip压缩,unzip用于解压,常用于项目打包发布用
基本用法
zip [选项] xxx.zip 将要压缩的内容(将文件/目录压缩成xxx.ziip)
unzip [选项] xxx.zip
- -r:递归(zip常用选项)
- -d<目录>:指定解压后文件的存放目录(unzip常用选项,类似解压到)
例如:
zip -r myhome.zip /home/(将home整个文件夹压缩成myhome.zip)
unzip -d /opt/tmp/ /home/myhome.zip(将home目录下的myhome.zip解压到/opt/tmp)
tar
打包指令,文件名是.tar.gz
基本语法
tar [选项] xxx.tar.gz 打包的内容(打包目录,会将目录一同打包)
- -c:产生.tar打包文件
- -v:显示详细信息
- -f:指定压缩后的文件名
- -z:打包同时压缩
- -x:解压.tar文件
例如:
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt(同时压缩pig.txt和cat.txt取名pc.tar.gz)
tar -zcvf myhome.tar.gz /home/
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2/(将myhome.tar.gz解压到/opt/tmp2)
组管理和权限管理
LInux中的每个用户必须属于一个组,不能独立于组外,在linux每个文件有所有组,所在组,其他组的概念
所有者:谁创建谁就是所有者(可更改)
所在组:所有者所在的组(可更改)
其他组:不是所有者所在的组
查看文件的所有者
ls -ahl或者ll
修改文件所有者
chown 用户名 文件名
例如chown zwj apple.txt
修改文件所在组
chgrp 组名 文件名
例如chgrp mojiao orange.txt
改变用户所在组
usermod -g 组名 用户名(改变组)
usermod -d 目录名 用户名(改变该用户登录的初始目录)
权限的基本介绍
0-9位说明
第0位确定文件类型
l是链接,ln创建的快捷方式
d是目录,文件夹
c是字符设备文件,鼠标键盘等
b是块设备,硬盘
1-3位为所有者权限
4-6位为同组权限
7-9位为其他组权限
rwx作用到文件
- r(read)可以读取,查看
- w(write)可以修改,但不代表可以删除,对目录有些权限才可以
- x(execute)可以执行
rwx作用到目录
- r可以读取,ls可以查看目录内容
- w可以修改,创建删除重命名
- x可执行,可以进入目录
修改权限 chmod
第一种方式:+、-、=变更权限
u:所有者,g:所有组,o:其他人,a:所有人(u+g+o)
- chmod u=rwx,g=rx,o=x 文件/目录名(这个文件/目录的所有者权限为读写执行,所有组权限为读和执行,其他人的权限是可执行)
- chmod o+w 文件/目录名 给其他人添加写的权限
- chomod a-x 文件/目录名 将所有人的执行权限取消
第二种方式:通过数字变更权限
r=4,w=2,x=1
- chmod 751 文件/目录名 = chmod u=rwx,g=rx,o=x 文件/目录名
后台应用任务调度crond
crontab
基本语法crontab (选项)
常用选项
- -e:编辑crontab定时任务
- -l:(L)查看crontab任务
- -r:删除所有crontab任务
例如:
crontab -e
*/1 * * * * ls -l /etc/ > /tmp/to.txt(每分钟执行一次ls -l /etc/ > /tmp/to.txt)
数目 含义 范围
第一个* 一个小时中的多少分钟 0-59
第二个* 一天当中几个小时 0-23
第三个* 一个月当中的第几天 1-31
第四个* 一年中调度第几个月 1-12
第五个* 一周中的星期几 0-7(0和7都是周日,周几和几月几号不建议同时出现)
例子:
- 45 22 * * * 在每天22:45执行一次
- 0 17 * * 1 每周一17:00执行一次
- 0 5 1,15 * * 每月1号,15号5:00执行一次
- 40 4 * * 1-5 每周一至周五4:40执行一次
- */10 4 * * * 每天凌晨4点每隔10分钟执行一次
- 0 0 1,15 * 1 每月1号15号,周一0:00执行一次
执行脚本和执行命令相同,将命令替换成为脚本的目录即可
at定时任务
一次性任务,只执行一次,会由守护进程atd在后台进行,检查作业队列
默认情况下60秒扫描一次,如果时间匹配就执行任务,执行过一次后就不会再次执行了
at [选项] (时间)
Ctrl+D结束at命令输入
ps -ef | grep atd(检查守护进程是否在运行)
- -m:当指定的任务被完成后,给用户发送邮件,即使没有标准输出
- -I:atq的别名
- -d:atr的别名
- -v:限时任务将被执行时间
- -c:打印任务的内容直到标准输出
- -V:显示版本信息
- -q<队列>:使用指定的队列
- -f<文件>:从指定文件读入任务而不是标准输入读入
- -t<时间参数>:一时间参数的形式是提交要运行的任务
例如:
- at 5pm + 2 days
- /bin/ls /home(两天后的下午五点,对home目录执行ls)(ctrl+D退出)
- atq(查看系统中没有执行的任务)
- at 5pm tomorrow
- date > /root/date100.log(明天下午五点执行date > /root/date100.log)
- atrm 编号 (删除任务)
Liunx磁盘分区概念
将目录挂载在磁盘上,目录的实际占用为磁盘占用
查看分区情况 lsblk或者lsblk -f