常用的linux系统详细教程交流(这几件事你知道吗)
常用的linux系统详细教程交流(这几件事你知道吗)HISTSIZE:定义了history命令输出的命令数 HISTFILE:history记录文件目录 HISTFILESIZE:定义了.bash_history文件保存的命令数 HISTTIMEFOrmAT:命令格式,默认为空这三个环境变量我们可以去修改它去使用:-c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件-新增的方式【.bash_history】; -r:将历史命令文件中的命令读入当前历史命令缓冲区; -w:将当前历史命令缓冲区命令写入历史命令文件中-覆盖的方式【.bash_history】; n:打印最近的n条历史命令 ! 字母:调出最近使用一次以此字母开头的命令 !!: 表示最近使用的一次操作的命令 ! 数字:表示调出历史记录的几条命令 !-数字:调出最近的几条命令在Linux中,每个用户目录下都有一个.bash_history文件用于保存历史命令,当每次注
我们日常工作常用的就是windows系统和Linux系统,当然还有ios系统。Linux系统是当今IT界主流的操作系统,在它上边部署服务,跑应用,很是方便。我们可能每天都会接触一些新的命令,不断的巩固自己对Linux的理解。但是,下面这几个知识却是鲜为人知,值得了解一下,对工作会有很大的帮助。
开篇之前,先了解一下Linux系统的概念,引用自百科:
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、oracle linux等
点开这首音乐,我们开始吧。
一、历史命令
history命令可以查看在命令行执行过的历史命令,这里我们再次看下它的用法:
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件-新增的方式【.bash_history】;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中-覆盖的方式【.bash_history】;
n:打印最近的n条历史命令
! 字母:调出最近使用一次以此字母开头的命令
!!: 表示最近使用的一次操作的命令
! 数字:表示调出历史记录的几条命令
!-数字:调出最近的几条命令
在Linux中,每个用户目录下都有一个.bash_history文件用于保存历史命令,当每次注销时,本次登陆所执行的命令将被写入该文件。所以可以清空该文件,下次登陆后上次保存的命令将消失,清空效果将在下次登陆生效。
HISTSIZE:定义了history命令输出的命令数
HISTFILE:history记录文件目录
HISTFILESIZE:定义了.bash_history文件保存的命令数
HISTTIMEFOrmAT:命令格式,默认为空
这三个环境变量我们可以去修改它去使用:
# 临时生效
NMAE=VALUE
export NAME
#永久生效
echo "export NAME=VALUE" >>/etc/profile
source /etc/profile
如何记录命令执行时间呢
HISTTIMEFORMAT="%Y%m%d-%H%M%S "
HISTTIMEFORMAT="%Y%m%d %T "
HISTTIMEFORMAT="%F %T "
#永久生效,方法同上
history操作
作为替代,Linux提供了一种交互式反向搜索功能来帮你对付上面的烦恼。可以按“Crtl r”键激活命令历史查询功能,可以交互的输入命令内容,并按“Crtl r”键循环在包含输入内容的命令历史中查找。找到后按回车键就可以再次执行,也可以用方向键选中,会将命令再次输入,等待执行。
二、定时任务
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
我们通常就是使用crontab去执行定时任务,这里我们再次看下它的用法:
crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
crontab –l : 显示 crontab 文件。
crontab -r : 删除 crontab 文件。
crontab -ir : 删除 crontab 文件前提醒用户。
时间格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a b c ... 时表示第 a b c ... 分钟要执行,f2 为 a b c ... 时表示第 a b c...个小时要执行,其馀类推
* * * * *
- - - - -
| | | | |
| | | | ----- 星期中星期几 (0 - 7) (星期天 为0)
| | | ---------- 月份 (1 - 12)
| | --------------- 一个月中的第几天 (1 - 31)
| -------------------- 小时 (0 - 23)
------------------------- 分钟 (0 - 59)
# 1.创建定时任务文件
vi my.cron
# 2.使定时任务生效
crontab my.cron
# 3.修改定时任务
crontab -e
# 4.删除定时任务
crontab -r
# 4.查看定时任务
crontab -l
# 定时任务备份文件,默认root
/var/spool/cron/root
# 每隔2分钟输出时间到文件
*/2 * * * * echo `date` >> $HOME>test.txt
# 每月每天每小时的第 0 分钟执行一次 /bin/ls
0 * * * * /bin/ls
# 每天的早上6点到12点,每隔3个小时 0 分钟执行一次 /usr/bin/backup
0 6-12/3 * 12 * /usr/bin/backup
# 每月每天的午夜0点20 分 2 点 20 分 4 点20分....执行 echo "haha"
20 0-23/2 * * * echo "haha" >/dev/null
作为替代者,at命令可以让你在不需要触碰crontab表的情况下实现定时任务。具体用法可以自己查看MAN手册。
at用法示例
三、文件删除
大多数人使用“rm”命令来删除文件,但是事实上真的把文件删除了么?其实系统并未按你预想的那样做,系统会只是将文件系统同磁盘文件间的硬链接删除。这些“0”和“1”的值在其被另一个应用覆盖前一直存在,系统这种处理方式对于敏感数据来说是非常不安全的。“shred”命令是“rm”的绝对方式,当你“shred”文件时,这个文件的物理数据被随机覆盖多次。甚至还可以通过选项用一串零在删除文件后覆盖原来的数据。具体请自行查看MAN手册。
四、快速返回当前目录
工作中我们频繁的切换路径操作,然后再回到最初的位置,大量的cd很是烦恼,这里我们可以使用组命令去完成操作,组命令开启了子shell去执行。如下
(cd /home && echo "hello world")
组命令去避免大量切换目录
到这里就结束,如有出错请指正!喜欢的小伙伴,请点赞、评论、转发、关注,谢谢!
谢谢