常规流程是 vi xxx 进入命令行模式--> 按i进入编辑 --> 按esc退出编辑,按shift+:进入命令行模式 --> 输入wq保存 。但是文件内容一旦过多,这种模式就不太好用了,接下来介绍一些在命令行的快捷方式来进行快速编辑。
[root@hadoop001 ~]# ll total 4 -rw-r--r-- 1 root root 46 Jun 23 11:49 tail.log [root@hadoop001 ~]# echo '' > tail.log [root@hadoop001 ~]# ll total 4 -rw-r--r-- 1 root root 1 Jun 23 11:50 tail.log <-- 伪清空 [root@hadoop001 ~]# ll total 4 -rw-r--r-- 1 root root 46 Jun 23 11:52 tail.log [root@hadoop001 ~]# cat /dev/null > tail.log [root@hadoop001 ~]# ll total 0 -rw-r--r-- 1 root root 0 Jun 23 11:52 tail.log <-- 真正清空 复制代码
命令为 ln -s 源文件路径 软链接所在路径 ,这个命令在实际上使用频率不太高,但是会有以下两个场景会用到。 第一个场景,比如你的代码中使用的是/xxx/ruozedatav1.0路径,但是某天需要升级要使用的路径变成了/xxx/ruozedatav2.0。你不可能会去改代码中的路径,所以这个时候就需要软链接。以下方式创建软链接,就可以避免改代码里的路径。
[root@hadoop001 ~]# ln -s /root/ruozedatav1.0/ /root/rz [root@hadoop001 ~]# ll lrwxrwxrwx 1 root root 20 Jun 23 12:28 rz -> /root/ruozedatav1.0/ [root@hadoop001 ~]# rm -rf rz [root@hadoop001 ~]# ln -s /usr/local/ruozedatav2.0/ /root/rz [root@hadoop001 ~]# ll lrwxrwxrwx 1 root root 25 Jun 23 12:29 rz -> /usr/local/ruozedatav2.0/ 复制代码
第二个场景就是,当你代码中使用的路径磁盘快满了,需要更换到另一个容量较大的磁盘路径时。 当然要注意权限与之前一致。
[root@hadoop001 ~]# mv /data01/ruozedata /data02/ruozedata [root@hadoop001 ~]# ln -s /data02/ruozedata /data01/ruozedata [root@hadoop001 data01]# ll lrwxrwxrwx 1 root root 25 Jun 23 12:29 ruozedata -> /data02/ruozedata 复制代码
主要涉及到两个命令:chmod和chown。chmod是改变文件读写执行权限,chown是改变文件所属用户和用户组。这两个组成文件的权限体系,查看文件权限需要两者结合来看。
drwxr-xr-x. 2 root root 4096 Jun 12 22:41 Downloads -rw-r--r--. 1 root root 1012 Jun 15 21:46 error.log 第一位字母: d是文件夹 -是文件 l是连接 命令实例(只有chown和chmod使用-R): chown -R jepson:jepson ruozedata chmod -R 777 ruozedata --> 777 代表所有人都有最大权限 读写执 r 读4 w 写2 x 执行 1 shell脚本 - 0 没有任何权限 rwx r-x r-x 第一组 rwx 7 代表文件和文件夹所属的 用户的权限: 读写执 第二组 r-x 5 代表文件和文件夹所属的 用户组的权限: 读执 第三组 r-x 5 代表其他组的所有用户对这个文件或文件夹权限: 读执 复制代码
tar.gz和zip压缩格式是我们常见的,下面简单介绍两种的格式的压缩和解压命令:
tar -zxvf xxx.tag.gz --> 解压,加上-C可以指定解压到某个路径 tar -cxvf xxx.tag.gz /xxx/xxx/* --> 压缩 unzip xxx.zip --> 解压 zip xxx.zip /xx/xx/* --> 压缩 复制代码
[root@hadoop001 ~]# tar -xzvf jdk-8u45-linux-x64.gz -C /usr/java/ [root@hadoop001 ~]# cd /usr/java/ [root@hadoop001 java]# ll total 4 drwxr-xr-x. 8 uucp 143 4096 Apr 11 2015 jdk1.8.0_45 <-- 用户和用户组错误 [root@hadoop001 java]# chown -R root:root /usr/java/jdk1.8.0_45 [root@hadoop001 java]# ll total 4 drwxr-xr-x. 8 root root 4096 Apr 11 2015 jdk1.8.0_45 复制代码
Linux中crontab经常用来做定时任务,下面就是常用到命令:
crontab -e 编辑定时任务 格式 * * * * * 分 小时 日 月 周 * 代表每 常见需求: 1. 每两分钟执行 */2 * * * * 2. 每10秒执行 定时任务执行中以下脚本 [root@hadoop001 tmp]# cat date.sh #!/bin/bash for((i=1;i<=6;i++)) do echo "wwww.ruozedata.com" date sleep 10s done exit 复制代码
网上有些说只需在命令后面加上&就是后台执行,但并不是,执行 nohup 命令 & 才是。
[root@hadoop001 ~]# ./date.sh & [1] 11179 [root@hadoop001 ~]# Sun Jun 23 14:06:33 CST 2019 <--- 还是前台展示 [root@hadoop001 ~]# nohup ./date.sh & [1] 11136 [root@hadoop001 ~]# nohup: ignoring input and appending output to ‘nohup.out’ <-- 输出放在这里 [root@hadoop001 ~]# cat nohup.out Sun Jun 23 14:06:03 CST 2019 复制代码
因为可能不止一个脚本后台运行,所以不能将输出都放在nohup.out里面,我们更多是将输出重定向。
nohup ./date.sh >> /tmp/date.log 2>&1 & 复制代码
free -m 查看内存使用情况 [root@hadoop001 ~]# free -m total used free shared buff/cache available Mem: 15885 292 13054 163 2537 15107 Swap: 0 0 0 记得buff/cache都是算作内存一部分哦 df -h 查看磁盘使用情况 [root@hadoop001 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 4.3G 36G 11% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 16K 7.8G 1% /dev/shm tmpfs 7.8G 164M 7.6G 3% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup tmpfs 1.6G 0 1.6G 0% /run/user/0 top 实时查看整个服务器情况 面板第一行有个load average: 0.00, 0.00, 0.00,这个三个数代表1min,5min,15min服务器的负载。 一般来说三个数在10以下都是比较稳定的。 复制代码