查看系统时间、设置中国时区
# 查看时间
date
# 设置时区,注意:如果timezone是一个文件夹,可以先删除,再执行以下指令
echo "Asia/Shanghai" > /etc/timezone
编辑文件 (vim)
# 打开编辑一个文件
$ vim <文件名>
命令模式下的一些交互操作
- 检索
输入:/要搜素的字符串
。
按下n
跳到下一个匹配 ,按下N
跳到上一个匹配。 - 光标跳转
按下NG
→ 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)
按下gg
→ 到第一行。(陈皓注:相当于1G,或 :1)
按下G
→ 到最后一行。 - 全选
按下ggVG
- 显示行号
输入: set number
- 删除一行
按下dd
解压、压缩 (tar)
基本语法
# 解压
tar -zxvf xxx.tar
unzip xxx.zip
# 打包+压缩指定文件
tar -zcvpf <自定义的文件名>.tar <要打包的文件或目录名>/
# 打包+压缩指定文件当前目录所有文件
tar -zcvpf wp5.4.tar *
-p : 保留其原权限
-z : gz压缩
-c : 打包
-x : 解包
压缩、解压示例
tar
解包:tar zxvf filename.tar
打包:tar czvf filename.tar dirname
gz命令
解压1:gunzip filename.gz
解压2:gzip -d filename.gz
压缩:gzip filename
.tar.gz 和 .tgz
解压:tar zxvf filename.tar.gz
压缩:tar zcvf filename.tar.gz dirname
压缩多个文件:tar zcvf filename.tar.gz dirname1 dirname2 dirname3.....
bz2命令
解压1:bzip2 -d filename.bz2
解压2:bunzip2 filename.bz2
压缩:bzip2 -z filename
.tar.bz2
解压:tar jxvf filename.tar.bz2
压缩:tar jcvf filename.tar.bz2 dirname
bz命令
解压1:bzip2 -d filename.bz
解压2:bunzip2 filename.bz
.tar.bz
解压:tar jxvf filename.tar.bz
z命令
解压:uncompress filename.z
压缩:compress filename
.tar.z
解压:tar zxvf filename.tar.z
压缩:tar zcvf filename.tar.z dirname
zip命令
解压:unzip filename.zip
压缩:zip filename.zip dirname
删除 (rm)
# 删除目录或文件
rm -rf 文件或目录名
# 删除当前文件夹内的所有目录或文件
rm -rf *
# 只删除具体文件,不删除目录、不递归删除子目录内的文件
rm -f <文件名>
定时任务 (crontab )
语法
# 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.编辑定时任务,以root用户身份执行定时任务
$ crontab -e -u root
# 2.编写表达式以及样例
# 意思是每两个小时重启一次apache
0 */2 * * * /sbin/service httpd restart
#意思是每天7:50开启ssh服务
50 7 * * * /sbin/service sshd start
#意思是每天22:50关闭ssh服务
50 22 * * * /sbin/service sshd stop
#每月1号和15号检查/home 磁盘
0 0 1,15 * * fsck /home
#每小时的第一分执行 /home/bruce/backup这个文件
1 * * * * /home/bruce/backup
#每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;
#意思是每月的1、11、21、31日是的6:30执行一次ls命令
30 6 */10 * * ls &>/dev/null # &>/dev/null 表示不发送邮件
# 3.重启
$ systemctl restart crond
# 4.查看运行日志
tailf /var/log/cron
# 注意
使用定时任务来执行脚本,脚本内所引用的目录或文件建议使用绝对路径,否则可能会执行失败。
参考
https://www.runoob.com/linux/linux-comm-crontab.html
ls的用法
# 普通列出文件和文件夹
ls
#查看某文件夹下文件的个数,包括子文件夹里的。
ls -l |grep "^-"|wc -l或find ./company -type f | wc -l
#查看某文件夹下文件夹的个数,包括子文件夹里的。
ls -lR|grep "^-"|wc -l
ls -lR|grep "^d"|wc -l
说明:ls -l 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep "^-" 这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l 统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
查看文件大小(du)
du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序
du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量
du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。
du -sk filename 查看指定文件大小
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh
du常用的选项:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小
查看磁盘和分区的大小 (df)
df -lh
查看inode总数 (df)
#查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令。
df -i
查找文件 (find)
# 查找文件名中包含某字符(如"elm")的文件
find /home/lijiajia/ -name '*elm*'
# 查找当天创建或编辑过的 *.php文件
find ./ -mtime +0 -name "*.php" ;
# 查找10天前创建或编辑过的 *.php文件
find ./ -mtime +9 -name "*.php" ;
# 查找10天前创建或编辑过的 *.php文件 (不查找子目录)(-maxdepth 1 表示查找深度为1)
find ./ -mtime +9 -name "*.php" -maxdepth 1
# 查找5分钟前创建或编辑过的 *.php文件
find ./ -mmin +5 -name "*.php" ;
# 查找并删除10天前的创建或编辑过的 *.php文件
find ./ -mtime +9 -name "*.php" -exec rm -f {} \;
# 查看每个目录下的文件数量
for i in /home/iffamacao/www/*; do echo $i; find $i | wc -l; done
查看服务器负载
#实时监控 ,更多命令查看:
top
# 查看运行的所有程序
ps -ef
#内存消耗最多的前10个进程
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
查看服务器版本
如果只想知道是哪个操作系统,有个简单的办法,即看看/etc/这个目录下有哪个命令就大概知道了:
例如,查看操作系统版本
cat /etc/redhat-release