4 4 3 3 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 linux articles

wsl2折腾笔记

背景: 学生机上配置好了Hadoop跑WordCount的demo时出现内存不足的问题,尝试解决没有成功。因此只能从本地虚拟机上跑。但是VM挂了,而且体验不是很好,所以打算试试wsl2 + docker的方案迁移过去。 安装 主要参考 ms的文档: https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 (ms的文档其实很棒,步骤清晰并且有常见问题解答) 运行中输入winver查看版本,如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049。 以管理员身份打开 PowerShell 并依次运行以下2条命令: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 下载并安装升级包.【如果下载慢可以尝试迅雷等其它方案,如果安装失败重启可能有帮助】 将 WSL 2 设置为默认版本: powershell中 –>wsl --set-default-version 2 安装Linux 分发版 https://aka.ms/wslstore 其它说明(重要) 每次你可以通过在 power shell中运行 bash 命令来打开wsl2 当你停止使用时在power shell中输入 wsl --shutdown关闭相关进程。 你可以通过 wsl –help查看帮助,借助 wsl的export/import等指令你可以完成快照或将wsl中的操作系统移动到非系统盘。 补充 Ubuntu为例的一些常用操作 配置SSH #1. 重装SSH sudo apt-get purge openssh-server sudo apt-get install openssh-server # 如果需要配置远程开发环境sudo apt-get install openssh-client openssh-server openssh-sftp-server #2.……

Continue reading

linux定时任务

Linux定时任务 背景:寒假在家看到必应每日的壁纸不错,加上在学golang想练手,萌生了把每日壁纸收藏的想法。简单分析后搞定,通过ticker每24小时执行一次任务。一直执行了180+天一切正常。之后莫名panic(tail了下nohup的日志,没看出来….)。一直懒得找原因,于是打算改为Linux定时任务。 cron 简介 cron是Linux系统自带(各发行版均有)的一个定时任务执行工具。通过 ps aux|grep crond可以看到对应的进程。由此也可以了解到此进程为守护进程。 简单使用 crontab -l 命令可列出已经设置当前的任务。 crontab -e 用于编辑计划任务: 按照 分 时 日 月 星期 任务的格式指定在对应时间执行相应的任务。 对于日期格式的指定: “*“表示每一 “,“表示并列多个时间 “-” 指连续,例如你可以设置 20-40则表示在20,40]都执行一次共21次 “/“整除 “L” 年的最后月/月的最后一天 除此之外,日期设置上也可以使用缩写:MON,JUL…等 例如:你可以使用通过 crontab -e并设置内容 " * * * * * echo `date` » $HOME/date.txt " 来指定每分钟输出一次日期并追加到文件 date.txt中。 补充: */2 <==>0/2 ,0,2,4,6… 1/2 则表示减去1能整除2,即1,3,5,7 … 更多参考 man page 一个坑:虽然不能算是cron ​ 从cron启动时的工作目录不是原路径,相对路径失效了。。。 未完待续。。。。……

Continue reading

linux shell编程

preparing 查看当前操作系统的默认shell echo $SHELL vimrc的推荐配置(非必须) set nu set cursorline set autoindent autocmd BufNewFile *.sh 0r ~/.vim/template/sh —>创建新文件的头文件 cd ..;ls #进入上一级目录再执行ls,结束后wd位于.. (cd ..;ls) #进入上一级目录再执行ls,结束后wd位于.(fork,exec) #内建命令&外部命令(通过环境变量) #查看环境变量 env $path 说明:在学习时,以下提到的命令和demo大多可直接在shell中运行,无需编写成shell文件 第一个shell文件(vim sample.sh) #!/bin/bash #指定解析器 #仅支持单行注释,多行可以通过语句块实现 date echo "" echo "we are current in following path" /bin/pwd shell的运行(三种) chmod +x sample.sh ./sample.sh . sample.sh bash sample.sh 数据类型和变量 shell中只有字符串类型,有两种变量类型: 环境变量(类似于全局变量) 本地变量(类似于局部变量) #声明变量 var=10 #不能有空格 #查看变量的值 echo $var #或 echo ${var} [推荐] #删除变量 unset var #控制语句 if,else,switch case,for,while.……

Continue reading

linux常用命令

#查看帮助 man ins ins --help info ins vim set nu|nonu --行号 #一般模式[default] #dd/d5d 删除当前行/删除当前行[包含] 后5行 #u 撤销上一步 #yy/y2y 复制当前行/复制当前行[包含]后5行 #x/X del/backspace #dw/yw 删除一个词[光标放在首字母]/复制一个单词 #shift+^/$ 移动到行头/尾 #(1)+shift+g 移动到页头/尾-->数字+操作==>移动到数字行 #编辑模式[从一般模式进入,按esc回到一般模式] #i/a[after]/o 当前光标处/后/下一行插入 #命令模式[从一般模式进入] #:---->w,q,!, (%s/old/new/g) #/----[查找]---> n/N[shift+n] 下/上 一个 #?----[查找]---> N[shift+n]/n 下/上 一个 ##-----------vim补充 快速跳转行首/尾: 0,^【是否带空格】 $ 【行尾】 跳转指定行: 1. 88G[88 shift g] 2. :88 跳转文件首/尾: gg:首 G尾 格式化: gg=G 括号对应: 命令模式 % 删除: x和X【命令模式】--->单个字符 dw---删除一个单词 D【shift+D】删除光标之后所有 或 d $ d0-----删除光标之前的 替换: r + 字符 删除指定区域: v[visual]-->选择区域->d 删除指定行数: dNd 或者 Ndd 复制行: yy yNy 或者 Nyy 粘贴: p/P 实际上vim中无删除,只有剪切[结合 p]。 查找: 1.……

Continue reading