Linux中一些常见命令(下)

Posted by JustDoDT on January 18, 2018

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  &   #直接把文件重定向到文件中