linux 复制文件,并创建不存在的目录

linux复制文件和目录用cp命令,--parents 参数可以确保不存在目录的创建,比如文件 cp --parents java/doc/readme.md ../doc ,如果目录 doc不存在目录:java/doc则会创建。 高级操作: #查找当前目录下所有.md文件,并将它们复制到DataxDoc目录,如果目录不存在则双肩 find . -name "*.md" | xargs -I {} cp --parents {} ../DataxDoc

February 2, 2021

Vim 从入门到精通

什么是 Vim? Vim 是一个历史悠久的文本编辑器,可以追溯到 qed。 Bram Moolenaar 于 1991 年发布初始版本。 Linux、Mac 用户,可以使用包管理器安装 Vim,对于 Windows 用户,可以从 我的网盘 下载。 该版本可轻易添加 python 、python3 、lua 等支持,只需要安装 python、lua 即可。 项目在 Github 上开发,项目讨论请订阅 vim_dev 邮件列表。 通过阅读 Why, oh WHY, do those #?@! nutheads use vi? 来对 Vim 进行大致的了解。 Vim 哲学 Vim 采用模式编辑的理念,即它提供了多种模式,按键在不同的模式下作用不同。 你可以在普通模式 下浏览文件,在插入模式下插入文本, 在可视模式下选择行,在命令模式下执行命令等等。起初这听起来可能很复杂, 但是这有一个很大的优点:不需要通过同时按住多个键来完成操作, 大多数时候你只需要依次按下这些按键即可。越常用的操作,所需要的按键数量越少。 和模式编辑紧密相连的概念是 操作符 和 动作。操作符 指的是开始某个行为, 例如:修改、删除或者选择文本,之后你要用一个 动作 来指定需要操作的文本区域。 比如,要改变括号内的文本,需要执行 ci( (读做 change inner parentheses); 删除整个段落的内容,需要执行 dap (读做:delete around paragraph)。 如果你能看见 Vim 老司机操作,你会发现他们使用 Vim 脚本语言就如同钢琴师弹钢琴一样。复杂的操作只需要几个按键就能完成。他们甚至不用刻意去想,因为这已经成为肌肉记忆了。这减少认识负荷并帮助人们专注于实际任务。 入门 Vim 自带一个交互式的教程,内含你需要了解的最基础的信息,你可以通过终端运行以下命令打开教程: $ vimtutor 不要因为这个看上去很无聊而跳过,按照此教程多练习。你以前用的 IDE 或者其他编辑器很少是有“模式”概念的,因此一开始你会很难适应模式切换。但是你 Vim 使用的越多,肌肉记忆 将越容易形成。 Vim 基于一个 vi 克隆,叫做 Stevie,支持两种运行模式:“compatible” 和 “nocompatible”。在兼容模式下运行 Vim 意味着使用 vi 的默认设置,而不是 Vim 的默认设置。除非你新建一个用户的 vimrc 或者使用 vim -N 命令启动 Vim,否则就是在兼容模式下运行 Vim!请大家不要在兼容模式下运行 Vim。...

January 14, 2021

docker apt-get

为了节省空间,docker 容器里面有很多命令是没有安装的,提示: Reading package lists… Done Building dependency tree Reading state information… Done E: Unable to locate package vim 更新apt-get源 这时候需要敲:apt-get update 这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。 安装vim apt-get install vim 安装telnet apt-get install telnet 安装ifconfig apt-get install net-tools

November 24, 2020

git 查看远程地址

有时需要查看本地开发的git项目的远程仓库地址 git remote -v 可以方便的查看远程仓库的地址 git remote -v origin https://gitee.com/leonardodacn/pixiublog.git (fetch) origin https://gitee.com/leonardodacn/pixiublog.git (push) -v : verbose,冗余的意思

November 9, 2020

简单脚本实现服务监控

服务经常会重启失败,写了个简单的shell叫脚本,可以发现服务端口是否起来,没有发现监听端口会重启服务 1.监控脚本 if [ -z "`lsof -i:443 | grep LISTEN`" ];then echo -e "restart $(date +'%Y-%m-%d %H:%M:%S')" systemctl restart pixiublog fi 2.系统定时任务 */3 * * * * /usr/local/pixiublog/monitor.sh >> /usr/local/pixiublog/monitor.log 2>&1

October 16, 2020

haokiu网站启动脚本

haokiu 的启动脚本,配置 https 可以参考beego 通过acms.sh 使用 https #!/bin/sh siteDir='/usr/local/pixiublog' appName='pixiublogMain' echo "kill the running program" ps -ef | grep $appName | grep -v grep | awk '{print $2}' | xargs kill -9 echo "sleep 3 secons for app to shutdown" sleep 3 echo "start program" cd $siteDir nohup $siteDir/$appName >> $siteDir/console.log 2>&1 &

October 15, 2020

网站部署脚本

网站的部署脚本 #!/bin/sh #部署目录 siteDir='/usr/local/pixiublog' # 源代码目录 cd /root/pixiublog echo "update code" git pull echo "build pixiublog" go build main.go echo "remove old" rm -rf $siteDir/views rm -rf $siteDir/static rm -rf $siteDir/pixiublog echo "mv new program to $siteDir" cp main $siteDir/pixiublog cp -rf views $siteDir/ cp -rf static $siteDir/ echo "kill the running program" ps -ef | grep 'pixiublog' | grep -v grep | awk '{print $2}' | xargs kill -9 echo "start program" cd $siteDir nohup $siteDir/pixiublog >> $siteDir/console.log 2>&1 &

September 17, 2020