26、tar-对文件压缩解压缩
该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。它的常用参数如下:
- -c :新建打包文件
- -t :查看打包文件的内容含有哪些文件名
- -x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录
- -j :通过bzip2的支持进行压缩/解压缩
- -z :通过gzip的支持进行压缩/解压缩
- -v :在压缩/解压缩过程中,将正在处理的文件名显示出来
- -f filename :filename为要处理的文件
- -C dir :指定压缩/解压缩的目录dir
注意:-c,-t,-x不能同时出现在同一条命令中
通常我们只需要记住下面几条命令即可:
# 压缩 tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称 # 查询 tar -jtv -f filename.tar.bz2 # 解压 tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录 # 注:上面文件名并不定要以后缀tar.bz2结尾,这里主要是为了说明使用的压缩程序为bzip2 # 解压elasticsearch-5.5.2.tar.gz tar -zxvf elasticsearch-5.5.2.tar.gz 复制代码
27、zip/unzip/gzip/gunzip-对文件压缩解压缩
用于压缩、解压缩文件,zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz,相应的解压缩命令则是 gunzip 和 unzip。
# 将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip: zip -q -r html.zip /home/html # 如果在我们在 /home/html 目录下,可以执行以下命令: zip -q -r html.zip * # 从压缩文件 cp.zip 中删除文件 a.c zip -dv cp.zip a.c # 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件 zip -r myfile.zip ./* # 把myfile.zip文件解压到 /home/bunny/ # -o:不提示的情况下覆盖文件 # -d:-d /home/bunny 指明将文件解压缩到/home/bunny目录下 unzip -o -d /home/bunny myfile.zip # 它会将文件压缩为文件 test.txt.gz,原来的文件则没有了,解压缩也一样 gzip test.txt # 它会将文件解压缩为文件 test.txt,原来的文件则没有了,为了保留原有的文件, # 我们可以加上 -c 选项并利用 linux 的重定向 gunzip test.txt.gz # 这样不但可以将原有的文件保留,而且可以将压缩包放到任何目录中,解压缩也一样 gzip -c test.txt > /root/test.gz # 解压缩 gunzip -c /root/test.gz > ./test.txt 复制代码
28、adduser/useradd/userdel-增加删除用户
adduser/useradd为创建用户命令,使用权限:系统管理员,root用户。常用参数说明如下:
- -c comment:加上备注文字。备注文字会保存在通常是 /etc/passwd)的备注栏位中。
- -d home_dir:设定使用者的根目录为 home_dir ,预设值为预设的 home 后面加上使用者帐号
- -e expire_date:设定此帐号的使用期限(格式为 YYYY-MM-DD),预设值为永久有效
- -f inactive_time:帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1
- -g <群组>:指定用户所属的群组。
- -r :建立一个系统的帐号,这个帐号的 UID 会有限制 (/etc/login.defs)
# 添加一个一般用户 useradd kk # 添加用户kk # 为添加的用户指定相应的用户组 useradd -g root kk # 添加用户kk,并指定用户所在的组为root用户组 # 创建一个系统用户 useradd -r kk # 创建一个系统用户kk # 为新添加的用户指定/home目录 useradd -d /home/myf kk //新添加用户kk,其home目录为/home/myf # 当用户名kk登录主机时,系统进入的默认目录为/home/myf 复制代码
用户删除命令:userdel,语法如下:
userdel [login ID] 复制代码
删除用户kk:
userdel kk 复制代码
29、passwd-修改用户密码
更改使用者的密码,常用参数如下:
- -d:删除密码
- -l:停止账号使用
- -S:显示密码信息
- -u:启用已被停止的账户
- -x:设置密码的有效期
- -g:修改群组密码
- -i:过期后停止用户账号
# 修改用户密码 passwd runoob # 设置runoob用户的密码 # 显示账号密码信息 passwd -S runoob # 删除用户密码 passwd -d lx138 复制代码
30、time-测算一个命令的执行时间
该命令用于测算一个命令的执行时间。就像平时输入命令一样,不过在命令的前面加入一个time即可。
在程序或命令运行结束后,在最后输出了三个时间,它们分别是:
- user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;
- system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;
- real:实际时间,从command命令行开始执行到运行终止的消逝时间;
time ./process.sh # 查看process.sh脚本执行时间 time ps aux # 查看ps aux命令的执行时间 复制代码
31、free-显示内存的使用情况
显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参数说明:
- -b:以Byte为单位显示内存使用情况。
- -k:以KB为单位显示内存使用情况。
- -m :以MB为单位显示内存使用情况。
- -g :以GB为单位显示内存使用情况。
- -o :不显示缓冲区调节列。
- -s <间隔秒数>:持续观察内存使用状况。
- -t:显示内存总和列。
# 显示内存使用情况 free # 显示内存使用信息 # 以总和的形式显示内存的使用信息 free -gt # 以总和的形式查询内存的使用信息,以GB为单位 # 周期性的查询内存使用信息 free -g -s 10 # 每10s执行一次命令,以GB为单位 复制代码
32、crontab-定时任务
用来定时的去跑一些脚本或者程序,linux内置的cron进程能帮我们实现这些需求,精确到分,设计秒的我们一般自己写脚本。
相关配置文件说明:
- /var/spool/cron/目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
常用参数说明:
- -u :省略该参数,表示操作当前用户的crontab
- -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
- -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
- -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
- -i:在删除用户的crontab文件时给确认提示
注意:-r,-i尽量不要执行
常见操作命令如下:
crontab -e # 编辑定时任务 * * * * * sh /opt/lampp/test.sh # 每分钟执行一次test.sh,crontab使用 crontab -l # 查看定时任务 * * * * * sh /opt/lampp/test.sh # 重启定时任务进程crond service crond reload # 查看日志 # /var/log/cron只会记录是否执行了某些计划的脚本 sudo tail -100f /var/log/cron 复制代码
定时任务配置实例如下:
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed # 每1分钟执行一次myCommand * * * * * myCommand # 每小时的第3和第15分钟执行 3,15 * * * * myCommand # 在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * myCommand # 每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * myCommand # 每周一上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 myCommand # 每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart # 每月1、10、22日的4 : 45重启smb 45 4 1,10,22 * * /etc/init.d/smb restart # 每周六、周日的1 : 10重启smb 10 1 * * 6,0 /etc/init.d/smb restart # 每天18 : 00至23 : 00之间每隔30分钟重启smb 0,30 18-23 * * * /etc/init.d/smb restart # 每星期六的晚上11 : 00 pm重启smb 0 23 * * 6 /etc/init.d/smb restart # 每一小时重启smb * */1 * * * /etc/init.d/smb restart # 晚上11点到早上7点之间,每隔一小时重启smb * 23-7/1 * * * /etc/init.d/smb restart