标签 linux 下的文章

看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动。
我也想成为那样的高手,所以记录了一下这些技巧

Ctrl+a跳到本行的行首,
Ctrl+e则跳到页尾。
Ctrl+u删除当前光标前面的文字,使用Ctrl+y进行恢复
ctrl+k-删除当前光标后面的文字,使用Ctrl+y进行恢复
Ctrl+w和Alt+d-对于当前的单词进行删除操作,w删除光标前面的单词的字符,d则删除后面的字符
Alt+Backsapce-删除当前光标后面的单词,如果删除错误,使用Ctrl+y进行恢复Ctrl+L进行清屏操作

ctrl+a:光标移到行首。
ctrl+b:光标左移一个字母
ctrl+c:杀死当前进程。
ctrl+d:退出当前 Shell。
ctrl+e:光标移到行尾。
ctrl+h:删除光标前一个字符,同 backspace 键相同。
ctrl+k:清除光标后至行尾的内容。
ctrl+l:清屏,相当于clear。
ctrl+r:搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history
ctrl+u: 清除光标前至行首间的所有内容。
ctrl+w: 移除光标前的一个单词
ctrl+t: 交换光标位置前的两个字符
ctrl+y: 粘贴或者恢复上次的删除
ctrl+d: 删除光标所在字母;注意和backspace以及ctrl+h的区别,这2个是删除光标前的字符
ctrl+f: 光标右移
ctrl+z : 把当前进程转到后台运行,使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ,到后台,然后fg,重新恢复
esc组合
esc+d: 删除光标后的一个词
esc+f: 往右跳一个词
esc+b: 往左跳一个词
esc+t: 交换光标位置前的两个单词。

到这里需要你已经安装好子系统了,下面继续本文章的方法,自实现ssh自启动

建议使用清华源:
Ubuntu 镜像使用帮助 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
Ubuntu 的软件源配置文件是 /etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 TUNA 的软件源镜像。

选择你的ubuntu版本: 20.04LTS

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

本镜像仅包含 32/64 位 x86 架构处理器的软件包,在 ARM(arm64, armhf)、PowerPC(ppc64el)、RISC-V(riscv64) 和 S390x 等架构的设备上(对应官方源为ports.ubuntu.com)请使用 ubuntu-ports 镜像。

7.查看ssh服务是否开启,一般没开启,需要手动设置后开启服务

root@SC-201905211111:~# service ssh status

新安装的话,应该显示的状态是未开启的.现在需要去设置ssh的配置文件

#备份原文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
#进入配置文件
root@SC-201905211111:~# vim /etc/ssh/sshd_config
#修改端口为23,22有可能已被占用,并去掉之前的#注释符
Port 23
#开放监听IP,将之前的#注释符去掉即可
ListenAddress 0.0.0.0
#开启root用户登录:找下是否有PermitRootLogin no,有的话,将no改为yes.,没有的话,就新增一行
PermitRootLogin yes
#开启账号密码登录PasswordAuthentication no,改为yes
PasswordAuthentication yes
#保存退出(:wq 或 按住shift+zz)

开启ssh服务

service ssh start
#如果提示sshd error: could not load host key,则用下面的命令重新生成
dpkg-reconfigure openssh-server
#执行上述命令后,会有提示选择,直接按确认即可

8.secureCRT连接ubuntu登录
配置端口23
host为127.0.0.1
账号:root
连接后成功后提示输入密码,并保存
登录成功后应该如下:

Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.4.0-17763-Microsoft x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Aug  2 09:26:55 DST 2019

  System load:    0.52      Memory usage: 76%   Processes:       7
  Usage of /home: unknown   Swap usage:   1%    Users logged in: 0

  => There were exceptions while processing one or more plugins. See
     /var/log/landscape/sysinfo.log for more information.


0 packages can be updated.
0 updates are security updates.


Last login: Fri Aug  2 08:38:37 2019 from 127.0.0.1

9.设置开机启动ssh服务:
此时还不完善,因为ubuntu是windows子系统,子系统的开机并没有自启动ssh的功能.需要利用脚本去实现.否则你win10开机后,不能直接用secureCRT去连接WSL,而需要登录ubuntu去开启ssh服务再连,很麻烦.
配置ubuntu的脚本

#创建init.wsl文件,保存并保存.注意#! /bin/sh这行不是注释,是sh解释器的指定方式.以下三行:第一行为创建文件,二三两行是编写的内容
vim /etc/init.wsl
#! /bin/sh
/etc/init.d/ssh $1

添加执行权限

chmod +x /etc/init.wsl

编辑sudoers,避免输入密码

root@SC-201905211111:~# vim /etc/sudoers
#添加以下这行到该文件
%sudo ALL=NOPASSWD: /etc/init.wsl

配置windos脚本
先在运行>命令(win+r)中输入shell:startup打开启动文件夹

再在该文件夹中创建文件ubuntu1804.vbs
将以下内容写入该文件并保存

Set ws = CreateObject("Wscript.Shell")
ws.run "ubuntu run sudo /etc/init.wsl start", vbhide

10.重启win10,过一会,就可以利用secureCRT直接连接刚才配置的127.0.0.1的WSL了

12.WSL子系统ubuntu与windows系统文件交互

WSL 系统可以通过 /mnt/<盘号>/ 目录(挂载点)来访问你计算机上的文件系统

#如访问C盘的KuGou文件夹
root@SC-201905211111:~# cd /mnt/c/KuGou
root@SC-201905211111:/mnt/c/KuGou# ls
test.txt

/usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据;所有系统默认的软件都会放置到/usr, 系统安装完时,这个目录会占用最多的硬盘容量

/usr目录下的重要目录

  • /usr/X11R6/:为X Window System重要数据所放置的目录,之所以取名为X11R6是因为最后的X版本为第11版,且该版的第6次释出之意。
  • /usr/bin/:绝大部分的用户可使用指令都放在这里。请注意到他与/bin的不同之处。(是否与开机过程有关)
  • /usr/include/:c/c++等程序语言的档头(header)与包含档(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含档。
  • /usr/lib/:包含各应用软件的函式库、目标文件(object file),以及不被一般使用者惯用的执行档或脚本(script)。 某些软件会提供一些特殊的指令来进行服务器的设定,这些指令也不会经常被系统管理员操作, 那就会被摆放到这个目录下啦。要注意的是,如果你使用的是X86_64的Linux系统, 那可能会有/usr/lib64/目录产生
  • /usr/local/:统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录, 这样会比较便于管理。举例来说,你的distribution提供的软件较旧,你想安装较新的软件但又不想移除旧版, 此时你可以将新版软件安装于/usr/local/目录下,可与原先的旧版软件有分别啦。 你可以自行到/usr/local去看看,该目录下也是具有bin, etc, include, lib...的次目录
  • /usr/sbin/:非系统正常运作所需要的系统指令。最常见的就是某些网络服务器软件的服务指令(daemon)
  • /usr/share/:放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文本文件嘛。在此目录下常见的还有这些次目录:/usr/share/man:联机帮助文件
  • /usr/share/doc:软件杂项的文件说明
  • /usr/share/zoneinfo:与时区有关的时区文件
  • /usr/src/:一般原始码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。

直接在crontab列表执行的时候加上判断,不需要修改任何代码
直接上代码吧

*/1 * * * * if [ `ps aux| grep weixinmsgtask | grep -v grep | wc -l` -lt 1 ]; then echo 1111; /web/xxx/protected/yiic weixinmsgtask send >> /web/xxx/protected/runtime/weixinmsgtask.log 2>&1; else echo 22222; fi

原理很简单,就是先判断一下有没有脚本正在运行,如果没有则运行起来,有的话就不做任何操作
代码中的 echo 111,2222 这个是为了测试添加的可以去掉
这个例子真要要执行的脚本是这个,你替换成你自己要执行的命令,以及把 weixinmsgtask 这个关键词替换成 你的命令中的关键词,大功告成

/web/xxx/protected/yiic weixinmsgtask send >> /web/xxx/protected/runtime/weixinmsgtask.log 2>&1