关闭

Vim、Shell及Linux命令的高效使用

95人阅读 评论(0) 收藏 举报
分类:

Vim的使用

目标:把一个每行都是url的txt文件内容,转为一个java代码中使用的string[]数组

源Url

telepathy.kakamobi.com
ai.kakamobi.cn
tpc.kakamobi.cn
dspmnt.autohome.com.cn
dealer2.autoimg.cn
comm.app.autohome.com.cn
x.autoimg.cn
auto.kuailemm.com
online.kuailemm.com
3conline.kuailemm.com
m-api.xcar.com.cn
image.xcar.com.cn
sa-data.xcar.com.cn
m.yiche.com
api.i.yiche.com
api.i.bitauto.com
api.ycapp.yiche.com
i.api.autohome.com.cn
m.autohome.com.cn
www2.autoimg.cn
data.autohome.com.cn
app2.autoimg.cn
cheyouquan.kakamobi.com
789.kakamobi.cn
tiku.jiakaobaodian.com
web.app.kakamobi.cn

打开终端,输入vi,进入vim编辑器,输入i,进入编辑模式,粘贴以上地址
然后ESC退出编辑模式
输入冒号,再输入以下命令,作用是给每行url最前面添加引号

%s/^/"

再输入冒号,再输入以下命令,作用是给每行url最后面添加引号和逗号

%s/\n/",

然后就会得到以下字符串,达成目标

"telepathy.kakamobi.com","ai.kakamobi.cn","tpc.kakamobi.cn","dspmnt.autohome.com.cn","dealer2.autoimg.cn","comm.app.autohome.com.cn","x.autoimg.cn","auto.kuailemm.com","online.kuailemm.com","3conline.kuailemm.com","m-api.xcar.com.cn","image.xcar.com.cn","sa-data.xcar.com.cn","m.yiche.com","api.i.yiche.com","api.i.bitauto.com","api.ycapp.yiche.com","i.api.autohome.com.cn","m.autohome.com.cn","www2.autoimg.cn","data.autohome.com.cn","app2.autoimg.cn","cheyouquan.kakamobi.com","789.kakamobi.cn","tiku.jiakaobaodian.com","web.app.kakamobi.com",

http://www.cnblogs.com/Dennis-mi/articles/5939635.html

vim的其他常用命令

vim longcontent.txt

输入以下命令可显示行号

:set nu

shift + g :跳到文件末尾
shift + a:跳到行尾,并处于编辑模式
shift + $:跳到行尾,并处于命令模式,按x删减最后的内容
gg:跳到文件头
具体行数 + gg,比如222gg:跳转到指定行
shift + 4:跳到行尾
0:跳到行首
dd:删除当前行

ls -l //查看文件具体详细信息列表
ls -lh //查看具体信息,文件大小用对应单位表示,不像上面那个只用字节数表示
pwd // 查看当前目录

Shell的使用

stat:查看文件的详细信息,包括创建时间,改动时间等
history:显示所有已经输过的命令
rm -rf:所到之处,寸草不生的永久删除无法恢复的命令,建议修改bashrc改造成mv命令
mv -b:移动前如果存在就先备份(简单备份)
\mv --backup=numbered 11.txt /trash:选择备份策略,backup的参数值有4个:
none或off : 不备份
numbered或t:数字编号的备份
existing或nil:如果存在以数字编号的备份,则继续编号备份m+1...n:如果之前没有以数字编号的文件,则使用下面讲到的简单备份。
simple或never:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

alias:查看所有别名
\mv:不使用别名
$@:是传给脚本的所有参数的列表
$1 是传递给该shell脚本的第一个参数
df -lh:查看剩余空间
tail -n 100 xxx.txt:查看xxx.txt文件最后一百行
head xxx.txt:查看xxx.txt前10行
ps -aux | grep java:查看java进程
crontab:定时器
*    *    *    *    *    command
分   时   日   月   周   命令
*/30 * * * * date >> /root/mycrontab:每半小时向mycrontab写入一个当前时间字符串
crontab crontabname:执行这个定时器
/etc/init.d/crond restart:重启crontab
/var/spool/cron/用户名:定时器位置
crontab -r:删除crontab
crontab -e:修改crontab

find命令,可以用来制作回收站的清空功能,参考 Linux回收站功能的实现

find /trash -mtime +7 -name "*.*" -exec rm -rf {} \  找到并删除trash目录下7天前所有带.的文件及目录
* 3 * * * find /trash/* -mtime +7 -exec rm -rf {} \; 每天三点删除trash目录下7天以前的数据
* 3 * * * find /trash/* -mtime +7 -fls /home/crontab/trash.txt -delete
此命令的意义是每天三点找到并删除/trash目录下7天前的文件,同时把这些文件信息写入指定文件

判断文件是否存在

if [ -z $1 ]; then      #如果没有输入参数,也就是第一个参数的字符串长度为0
    :                          #空语句
else
     if [ -e $1 ]; then       #如果文件存在的话
          if [ -f $1 ]; then   #如果文件是个普通文件?
               echo $1" is a text file."
          elif [ -d $1 ]; then #如果文件是个目录文件?
               echo $1" is a directory."
          elif [ -c $1 ]; then #如果文件是个字符设备?
               echo $1" is a char device."
          elif [ -b $1 ]; then #如果文件是个块设备?
               echo $1" is a block device."
          else #否则
               echo $1" is unknow file."
         fi
    fi
fi

判断文件是否存在2

#include <unistd.h>
int is_file_exist(const char *file_path)
{
  if(file_path == NULL)
        return -1;
  if(access(file_path,F_OK) == 0)
        return 0;
  return -1;
}

解压文件

tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
tar  zxvf  Download/scala-2.12.4.tgz  -C MyConfigure/scala-2.12.4

执行shell脚本
在当前目录下执行

./run_url.sh

如果报权限拒绝的话

chmod a+x ./run_url.sh

如何让脚本继续后台运行,哪怕关掉了终端

nohup ./xx.sh &

或者以下几种

tmux / screen
xxx &! (bash / zsh)
setsid xxx

还有一种工具:supervisord

0
0
查看评论

Linux Shell脚本与Vim常用操作笔记

本篇笔记记录最最基本的vim和shell操作。   ShellScript能干什么 Shellscript类似与Windows的批处理,可以把很多指令汇总到一起,于是可以很容易地通过一个操作执行多个命令。很轻量,有效率。   在Vim中编写 Vim/Vi编辑器很强大,功能非常多,...
  • u012428391
  • u012428391
  • 2014-08-18 19:39
  • 2792

vim 常用命令

vim 常用命令 1.排版: 在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行; 可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。 命令: == //(连按=两次), 或对多行用(n是自然...
  • xiao_yuanjl
  • xiao_yuanjl
  • 2018-01-26 15:20
  • 26

mac 终端常用命令和vim普通命令使用

mac 终端 常用命令 基本命令 1、列出文件 ls 参数 目录名        例: 看看驱动目录下有什么:ls /System/Library/Extensions 参数 -w 显示中文...
  • y2888886
  • y2888886
  • 2016-01-06 13:11
  • 15162

mv移动文件夹及vim精确匹配

格式:mv dir1 dir2 如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。
  • mysee1989
  • mysee1989
  • 2014-06-05 12:08
  • 919

Linux基础-Shell基本命令和Vim介绍

Ubuntu基础入门用过windows,但对于操作系统另一大块内容却一点都不懂,对于linux操作系统基本是没有任何的了解,因此花点时间对之探索一番;对于windows这样的桌面型系统用起来可谓是超级简单,没有任何的技术,基本上拿来就能用,可以慢慢摸索了解。然而对于linux来说就有点难度了,它对于...
  • ahafg
  • ahafg
  • 2015-11-16 21:23
  • 3167

vim 命令(全)

本章提供足够的信息使你用够使用 Vim 来做基本的编辑。这里提供的方法不一定是高效 快捷的。但起码是有效的。花些时间去练习这些命令,这是后面的知识的基础。 |02.1|  第一次运行 Vim |02.2|  插入文本 |02.3|  移动光标 |02.4|  ...
  • zg_hover
  • zg_hover
  • 2006-09-16 22:18
  • 82798

mv命令移动文件夹及其下所有文件

格式: mv [选项(option)] 源文件或目录 目标文件或目录 使用命令: mv webdata /bin/usr/ 可以延伸一下: mv /usr/lib/* /zone 是将 /usr/lib/下所有的东西移到/zone/中。 mv /usr/lib/*....
  • hom_va
  • hom_va
  • 2016-02-01 10:47
  • 27517

vim高效率操作

这篇教程写了在不同工作模式下使用VIM的一些基本技巧 – 即插入模式(insert mode), 命令模式(command mode), 存取文件等。目的是帮助刚刚接触VIM的新手更加有效率的使用这个出色的编辑器。说明:在这篇文章里面,代表Ctrl + X – 就是按住Ctrl键然后再按X。而且你可...
  • u013991521
  • u013991521
  • 2016-08-08 21:00
  • 669

在PowerShell中使用Vim

闲来无事,买了一个Win8系统的小平板,带键盘,准备打造成专门用来写博客的工具(本文就是用它写的第一篇)。捣鼓一圈之后,首先要解决的是用什么看代码。在PC时代,习惯了Linux命令行的方式,一般都是Windows系统+VMWare虚拟机+Linux系统+Vim+SecureCRT,但是这个庞大配置,...
  • IAMNEWTOCODING
  • IAMNEWTOCODING
  • 2014-10-12 15:34
  • 2994

vim 实用命令 将vim置于后台

我们经常需要实用vim,查看代码,然后又要去查看另一个代码,就要切出去到另外一个目录。 如果把这个vim关闭,再去开一个就会显得很麻烦。 这里介绍一个很实用的方法: 1.将vim置于后台, 直接按 ctrl + z可以将当前的vim置于后台 2.然后可以去别的目录再打开一个...
  • kc58236582
  • kc58236582
  • 2016-02-01 10:04
  • 2988
    个人资料
    • 访问:177217次
    • 积分:2801
    • 等级:
    • 排名:第15119名
    • 原创:58篇
    • 转载:5篇
    • 译文:0篇
    • 评论:52条
    联系我吧
    我的App
    博客专栏
    文章分类