【若泽大数据实战第四天】Linux命令进阶

对文件夹的操作命令有: mkdir rm mv cp cd
对文件的操作命令有:   touch rm mv cp

1.vi 文本编辑
vi xxx.log

还有一个从尾行模式到命令行:按键盘上的backspace键进入命令行模式


当修改某个 生产上的 文件 xxx.conf的时候,一般最好先备份一下:

cp xxx.conf xxx.conf20190123
vi xxx.conf

命令行模式常见快捷键:
dd 删除当前行
dG 删除光标以下的所有行   (当前行也会删除)
ndd 删除光标以下的n行       (当前行也会删除,总共删除n+1行)

gg 跳转到第一行的第一个字母
G  跳转到最后一行的第一个字母
shift+$ 行尾

生产场景: 
1.这个文件内容很多很多 我想要清空,重新开始编辑,清空的三种方式:
①用vi 编辑模式:gg  dG           先gg跳到首行首字母,再dG删除光标以下所有行,保存
②echo "" > ruoze.log.1              伪清空 1字节的
echo '' > ruoze.log.1                   伪清空 1字节的  shell判断文件是否清空 一般是根据字节大小来判断 这时就错了

cat /dev/null > ruoze.log.2       真正清空

2.这个文件内容很多很多 我想要追加写文件
G   shift+$   i   朝右箭头按一次+回车 到新的一行


3.当一个文本内容非常多 比如系统的log  想搜索定位某个词

3.1 我想要快速定位到error关键词 
搜索: 尾行模式输入/error    n下一个  N上一个

行号:  尾行模式输入
    set nu
    set nonu

3.2 cat jepson.log |grep filesystem
       grep filesystem jepson.log  (这样也可以查看定位,注意位置顺序)

3.3 上传到window/mac 
    EditPlus编辑器里查看搜索定位

linux vi命令掌握透,生产配置文件、别人的服务的配置,不要随便修改,如果修改最好备份一下。
cp 1.conf 1.conf.20190123
cp 1.conf.20190123  1.conf

2.权限

[root@hadoop001 ruozedata]# ll
total 96
drwxr-xr-x. 3 root root  4096 Jan 19 20:42 1
drwxr-xr-x. 2 root root  4096 Jan 19 20:44 4
drwxr-xr-x. 2 root root  4096 Jan 19 20:44 5
drwxr-xr-x. 2 root root  4096 Jan 19 20:44 6
-rw-r--r--. 1 root root 10033 Jan 19 20:57 install.log.syslog
-rw-r--r--. 1 root root 10033 Jan 19 20:57 install.log.syslog20190119
-rw-r--r--. 1 root root 49566 Jan 23 21:37 jepson.log
-rw-r--r--. 1 root root     1 Jan 23 21:30 ruoze.log.1
-rw-r--r--. 1 root root     0 Jan 23 21:30 ruoze.log.2

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 6                              文件夹大小
du -sh install.log.syslog      文件大小

面试题:查看文件大小的命令:ll -h 或者 du -sh 

               查看文件夹的大小的命令:只能是 du -sh 

第六列: 文件时间
Jan 19 20:42 

生产: 
一般软件安装mysql数据库 都有自己的所属用户 mysqladmin  用户组 mysqladmin
su - mysqladmin :  有权限创建 读 写 执行
目录 755    一般来说,给一个目录755权限就够了。

chmod -R 755 mysqladmin

Linux用户 jepson : 读 
github.com/hackeruncle/mysql

chmod -R 777 目录


chown -R jepso:jepson 目录
chmod -R 755 目录
chown  jepson:jepson 目录/文件          把这个目录/文件的用户用户组修改为jepson和jepson
chmod  755  目录/文件

整套Linux学习过程 
-R参数的命令你们就记住这两个(chmod、chown) 其他都是小r

下面两个可执行文件需要赋予一个x权限
./xxx.sh        可执行      shell脚本   第一行为:      #!/bin/bash 
sh xxx.sh     可执行 

文件名称xxx.sh  第一行 #!/bin/bash 

软连接: 快捷键 删除目标路径 原始路径不删除
ln -s 原始路径 目标路径
      /xxx/1
      /xxx/1.log
      1
      1.log

硬连接可以了解


3.上传下载命令
yum install lrzsz                先安装lrzsz  rpm包
rz window ==>linux           rz命令是从Windows系统上传到linux系统
sz  linux ==>  window       sz命令是从Linux系统下载到Windows系统 
 

下载到Windows哪地方,可以在CRT软件,设置,设置如下:上面有个download路径可以看到的:

上传如下,rz后会弹出一个对话框,选择就可:

4.系统命令
top  查看负载情况
                  load average:    0.00,    0.00,    0.00

机器到底忙不忙就看:      1分钟    5分钟   15分钟
生产服务器 不要超过10         (之前的经验积累)

这个是实时动态的

如果超过了10 就说明机器非常的繁忙
ps -ef|grep pid

free -m   查看磁盘 查看内存

总共多少M   已经用了多少M 还剩多少M

df -h  查看硬盘

5.压缩 解压
zip unzip

首先安装着两个软件包:yum install  -y zip unzip
zip -r test_zip.zip test_zip/*       表示压缩test_zip文件夹,到test_zip.zip压缩包里。   
unzip test_zip.zip                       表示解压test_zip.zip这个压缩包

tar.gz   还有些压缩包为tar.gz   用法可以看命令帮助
Examples:
  tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.    创建一个tar包
  tar -tvf archive.tar         # List all files in archive.tar verbosely.                 查看tar包里的所有文件,把包里的所有文件列出来
  tar -xf archive.tar          # Extract all files from archive.tar.                        解压tar包

注意上面:参数横杠后面没有‘z’,所以是    .tar    ,如果有‘z’ 的话,就是  .tar.gz   了(如果以后看到带有 gz 的 ,就加个‘z’参数即可):

tar -czf 6.tar.gz 6/*        表示:把文件夹 6 压缩为   6.tar.gz
tar -xzf 6.tar.gz              表示:解压 6.tar.gz

如果压缩、解压的过程想看到的话,就再加个 ‘v’  就可以了:
tar -czvf 6.tar.gz 6/*
tar -xzvf 6.tar.gz

6.wget

从网页上下载文件:wget   +   链接

(如果某个文件名称有空格,那么cat的时候,需要把文件名称用双引号引起来)

7.调度   命令:crontab     

Linux    crontab是用来定期执行程序的命令

当安装完成操作系统之后,默认便会启动此任务调度命令。

crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

而linux任务调度的工作主要分为以下两类:

  • 1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
  • 2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

[root@hadoop001 ~]# crontab -e
* * * * * /root/test.sh >> /root/test.log

-e  表示编辑  -l表示查看   (如果注释的话,最前面加上 #  就可以了)

总共有五个'*'  :*代表 每   :

第1个: 分钟
第2个: 小时
第3个: 日
第4个: 月
第5个: 周

如果想 每10秒执行某个程序  怎么办?用这个:sleep 10s  (面试题)

可以在写一个shell脚本test1.sh(写完之后记得赋  执行 的权限  chmod +x test1.sh  ):

[root@hadoop001 ~]# cat test1.sh
#!/bin/bash

for((i=1;i<=6;i++));
do
        date
        sleep 10s
done

exit 

以上这个脚本是有个for循环,循环6次,每次执行一次date命令,然后休眠10秒,再执行下一次循环;

[root@hadoop001 ~]# cat test.sh
#!/bin/bash

date

以上这个脚本打印时间。

以上这个截图,可以看出,用crontab -l 可以查看调度了哪些程序。

第一个行:每两分钟运行一次test.sh脚本,结果就是每两分钟打印一次时间。(如果把“/2”去掉的话,就是每一分钟运行一次脚本)

第二行:每1分钟运行一次test1.sh脚本,再结合test.sh脚本内容,可以得出结果:每一分钟运行一次脚本,每一次脚本打印6次时间,时间间隔是10秒,所以结果就是没10秒钟打印一次时间

8.后台执行命令 不交互   (希望某个进程在后台执行)

./test.sh &
nohup  ./test.sh &
nohup  ./test.sh > /root/test.log 2>&1  &

(本句话转自其他博客)nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。

在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。

nohup和&的区别

nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行

&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出

那么,我们可以巧妙的吧他们结合起来用就是
nohup COMMAND &
这样就能使命令永久的在后台执行

(以上一段话引用自博客:https://www.cnblogs.com/jinxiao-pu/p/9131057.html

猜你喜欢

转载自blog.csdn.net/liweihope/article/details/87539174