grep
grep
命令肯定经常使用,可以去模糊查询字符串。但还有个功能就是输出当前字符串的前后几行,对于在日志中查error
时效果很好
cat nohup.out | grep -A 10 error # 后10行
cat nohup.out | grep -B 10 error # 前10行
cat nohup.out |grep -C 5 error # 前后各5行
history
history
命令列出命令的历史记录
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ history
1 yum install expect -y
2 su
3 su
4 source .bashrc
5 you-get
6 you-get --debug
7 ll
8 cd software/
...
若你想重复执行某条命令,使用 !index
即可
# 去执行 ll 命令
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ !7
ll
total 432288
drwxrwxr-x 3 danner danner 4096 Nov 24 12:40 app
drwxr-xr-x 2 danner danner 4096 Jun 26 2019 data
-rw-r--r-- 1 root root 13545762 Jun 26 2019 data 123.mp4
-rw-r--r-- 1 danner danner 255809806 Aug 15 12:35 hadoop-2.6.0-cdh5.15.1.tar.gz1
-rw-r--r-- 1 danner danner 173271626 Aug 15 17:48 jdk-8u45-linux-x64.gz
-rw------- 1 danner danner 1512 Jul 30 07:39 nohup.out
drwxr-xr-x 2 danner danner 4096 Jun 26 2019 package
drwxrwxr-x 3 danner danner 4096 Jun 19 2019 project
drwxr-xr-x 8 danner danner 4096 Nov 24 12:39 software
这些历史命令其实就保存在 home 目录
下的 .bash_history
文件中。那如何去清除这些命令历史呢
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ history -c
# 执行命令后,使用 history 查不到历史命令了,
# 但 .bash_history 文件中还有,保险一点是文件中也删除
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ cat /dev/null > .bash_history
alias
alias
是取别名命令,可能平常用的不多。你可以将常用的复杂命令取个简单的别名,这样在敲命令就简单
# 取别名 gg
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ alias gg='cat /home/danner/nohup.out | grep -A 10 error'
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ gg
raise socket.error(msg)
OSError: No socket could be created -- (('0.0.0.0', 8080): [Errno 98] Address already in use)
http://0.0.0.0:8080/
...
是不是简单很多,再也不用敲那些复杂的命令了。但这种方式只在当前 Session
(窗口) 生效,若要全局需要写在配置文件(bash …)里。
sudo
sudo
命令允许用户暂时使用 root 权限
去执行,前提是先配置。
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ sudo ls
[sudo] password for danner:
danner is not in the sudoers file. This incident will be reported
命令输出提示当前用户无法执行 sudo
,我们需要在先使用 root 账号在 /etc/sudoers
配置。
[root@iZbp110y4xddxaifhzq3qiZ danner]# chmod 640 /etc/sudoers
[root@iZbp110y4xddxaifhzq3qiZ danner]# vi /etc/sudoers
# 文件末尾添加并保存
danner ALL=(root) NOPASSWD:ALL
# 现在可以使用 sudo
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ sudo ls
app data data 123.mp4 hadoop-2.6.0-cdh5.15.1.tar.gz1
top
top
实时输出当前机器的 cpu
、内存
的使用情况
[danner@iZbp110y4xddxaifhzq3qiZ ~]$ top
top - 21:18:21 up 51 days, 10:31, 3 users, load average: 0.01, 0.02, 0.00
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2054196k total, 811720k used, 1242476k free, 151524k buffers
Swap: 0k total, 0k used, 0k free, 493668k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1124 root 10 -10 124m 12m 9420 S 0.3 0.6 406:36.00 AliYunDun 6423 danner 20 0 134m 7408 1172 S 0.3 0.4 77:04.68 redis-serve
重要的参数是 load average
负载
load average: 0.01, 0.02, 0.00
# 展示的是 1、5、15 分钟的 cpu 负载,对于物理机小于10都是可以忍受的,但对于云主机可能要小于3
vi
vi
是 Linux 上的一个命令行文本编辑器,通过配置可以化身为强大的 IDE
。这里不介绍如何配置,只列举一些常用的快捷键
# 设置行号
:set nu
# 取消行号
:set nonu
# 删除命令
dd # 删除当前行
dG # 删除当前行以及后面的所有行
ndd # 删除n行包含当前行以及后面的行
# 跳转命令
gg # 跳转到文本的第一个字母
G # 跳转到尾行的第一个字母
gg+dG # 删除整个文件