Linux中一些常见命令(下)
怎么退出vim
直接在命令行模式下输入shift zz
插入模式
i #从光标所在的位置前面开始插入
I #在当前行首插入
a #在当前行尾插入
o #在光标所在行下方新增一行并进入输入模式
O #在当前上面一行插入
移动光标(命令模式)
gg #到文件的第一行,如10gg,表示跳到10行
G #到文件最后一行(也可以用Shift+g)
^ #非空格行首
0 #行首(数字0)
$ #行尾
复制和粘贴
yy #复制整行内容
3yy #复制3行内容
yw #复制当前光标到单词尾内容
p #粘贴
删除
dd #删除光标所在的行,也是剪切操作
ndd #删除光标以下的n行
dw #删除一个单词
x #删除光标所在字符
u #撤销上一次操作
s #替换,删除并进入插入模式
dG #删除光标以下的所有行
ctrl + r #撤销
查找
/ #尾行模式下输入:/ 后面加上要查找的内容,然后输入n,表示从刚才查找的内容中向下查找 ;输入N,表示向上查找
? #命令模式下输入:?后面加上要查找的内容,然后输入N,表示向下查找;输入n,表示向上查找向后搜索
n #在尾行模式下输入n,表示向下查找
N #在尾行模式下输入N,表示向上查找
块操作
v #表示光标所在位置开始选择
V #表示光标当前所在行开始选择
shift + > #往右缩进
shift + < #往左缩进
ctrl + v #表示光标所在的列,按向上的箭头表示从上选择;按向下的箭头表示从下选择,再按shift+<,表示这些列往左缩进,再按shift+>,表示这些列往右缩进
替换
#在尾行模式下输入%s/要替换的/替换成什么的/g
:%s/hello/world/g
在Vim中的书写 python代码
f2 #打开文件目录结构
f3 #换背景
f4 #插入版权信息
f5 #自动执行
f6 #pep8规范
清空文件内容
[root@hadoop001 bigdata]# echo "" > hello.txt20190311
[root@hadoop001 bigdata]# ll
total 12
drwxr-xr-x. 2 root root 4096 Mar 12 15:50 hahh
-rwxr--r--. 1 root root 8 Mar 13 01:57 hello.log
-rwxr--r--. 1 644 root 1 Mar 13 01:57 hello.txt20190311
[root@hadoop001 bigdata]# cat /dev/null > hello.log #为真正的清空
[root@hadoop001 bigdata]# ll
total 8
drwxr-xr-x. 2 root root 4096 Mar 12 15:50 hahh
-rwxr--r--. 1 root root 0 Mar 13 01:58 hello.log
-rwxr--r--. 1 644 root 1 Mar 13 01:57 hello.txt20190311
[root@hadoop001 bigdata]#
注意:
# echo "" > hello.txt20190311 和 echo "" > hello.txt20190311 的区别
echo "" > hello.txt20190311
#为清空,但是还有1个字节,没有完全清空,用shell判断文件是否清空 ,一般是根据字节大小来判断 ,但是不能这么操作
cat /dev/null > hello.log #为真正的清空
如何快速定位到error关键词
-
搜索: 尾行模式输入/error
-
行号: 尾行模式输入
-
set nu #设置行号
-
set nonu #去掉行号
权限
[root@hadoop001 bigdata]# ll
total 8
drwxr-xr-x. 2 root root 4096 Mar 12 15:50 hahh
-rwxr--r--. 1 root root 0 Mar 13 01:58 hello.log
-rwxr--r--. 1 644 root 1 Mar 13 01:57 hello.txt20190311
d rwxr-xr-x
#第一个: d文件夹 -文件 l连接
r: 读 4
w: 写 2
x: 执行 shell脚本 1
-: 0
rwxr-xr-x 755
rwxr--r-- 744
r--r--r-- 444
r-xrwxrw- 576
766 rwxrw-rw-
rwxr-xr-x :三组
第一组: rwx 7 代表文件夹或文件所属的用户的权限: 读写执行
第二组: r-x 5 代表文件夹或文件所属的用户组的权限: 读执行
第三组: r-x 5 代表其他组的所有用户对这个文件或文件夹的权限: 读执行
root root
#第三列: 所属的用户
#第四列: 所属的用户组
#第五列: 字节(文件)
ll -h 只能查看文件大小
du -sh /bigdata 文件夹大小
du -sh hello.txt20190311 文件大小
[root@hadoop001 bigdata]# du -sh hello.txt20190311
4.0K hello.txt20190311
[root@hadoop001 ~]# du -sh bigdata/
12K bigdata/
[root@hadoop001 ~]# cd bigdata/
[root@hadoop001 bigdata]# ll -h
total 8.0K
drwxr-xr-x. 2 root root 4.0K Mar 12 15:50 hahh
-r--r--r--. 1 root root 0 Mar 13 01:58 hello.log
-rwxr--r--. 1 644 root 1 Mar 13 01:57 hello.txt20190311
#第六列: 文件时间
Mar 13 01:57
chmod 444 hello.log
chmod 044 hello.log
chmod 004 hello.log
在生产上:
#一般软件安装mysql数据库 都有自己的所属用户 mysqladmin 用户组 mysqladmin
su - mysqladmin : 有权限创建 读 写 执行
目录 755
chmod -R 777 目录
chown -R haha:haha 目录
chmod -R 755 目录
chown haha:haha 目录/文件
chmod 755 目录/文件
#整套Linux学习过程
-R参数的命令你们就记住这两个 其他都是小r
#赋予一个x权限
./xxx.sh 执行 #!/bin/bash
sh xxx.sh 执行
#文件名称xxx.sh 第一行 #!/bin/bash
#软连接: 快捷键 删除目标路径 原始路径不删除
ln -s 原始路径 目标路径
/xxx/1
/xxx/1.log
1
1.log
上传下载
yum install lrzsz
rz window ==>linux
sz linux ==> window
系统命令 top
[root@hadoop001 bigdata]# top
top - 02:32:17 up 14:09, 5 users, load average: 0.00, 0.00, 0.00
Tasks: 192 total, 1 running, 191 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4040896k total, 1223012k used, 2817884k free, 83700k buffers
Swap: 2097144k total, 0k used, 2097144k free, 708768k cached
.
.
.
上面的输出,load average后面分别是1分钟、5分钟、15分钟的负载情况。数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU 的数目,结果高于5的时候就表明系统在超负荷运转了。
注意:生产服务器 上 load average: 0.00, 0.00, 0.00 ,不要超过10 经验值
[root@hadoop001 bigdata]# ps -ef|grep pid
[root@hadoop001 bigdata]# free -m
total used free shared buffers cached
Mem: 3946 1193 2752 0 81 692
-/+ buffers/cache: 420 3526
Swap: 2047 0 2047
[root@hadoop001 bigdata]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 47G 3.4G 41G 8% /
tmpfs 2.0G 316K 2.0G 1% /dev/shm
/dev/sda1 1008M 62M 896M 7% /boot
/dev/sr0 4.2G 4.2G 0 100% /media/CentOS_6.5_Final
[root@hadoop001 bigdata]#
压缩
zip unzip
zip -r 6.zip 6/*
unzip 6.zip
tar.gz
Examples:
tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.
tar -tvf archive.tar # List all files in archive.tar verbosely.
tar -xf archive.tar # Extract all files from archive.tar.
tar -czvf 6.tar.gz 6/*
tar -xzvf 6.tar.gz
定时调度
[root@hadoop001 ~]# crontab -e # 编辑
* * * * * /root/test.sh >> /root/test.log
第1个: 分
第2个: 小时
第3个: 日
第4个: 月
第5个: 周
*代表 每
思考: 每10秒?
sleep 10s
[root@hadoop001 ~]# cat test.sh
#!/bin/bash
for((i=1;i<=6;i++));
do
date
sleep 10s
done
exit
[root@hadoop001 ~]#
[root@hadoop001 ~]# crontab -l 查看
* * * * * /root/test.sh >> /root/test.log
[root@hadoop001 ~]#
后台执行命令 不交互
./test.sh & #直接输出到控制台
nohup ./test.sh & #直接把内容输出到文件中
nohup ./test.sh > /root/test.log 2>&1 & #直接把文件重定向到文件中