侧边栏壁纸
博主头像
晓然博主等级

走着、走着、花开了

  • 累计撰写 37 篇文章
  • 累计创建 15 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

05 命令行环境

晓然
2022-12-20 / 0 评论 / 0 点赞 / 45 阅读 / 1,501 字
温馨提示:
本文最后更新于 2023-02-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

任务控制(jobs)

当执行一条命令时,在命令结尾加上&,可以让当前命令在后台执行。常用的命令:

#查看当前的后台jobs状态
jobs -l
#将后台执行的job调到前台
fg %jobnumber
# 停止当前job
ctrl + z
# 将job状态stop改变为run
bg %jobnumber
#结束在后台的job
kill -9 pid

示例演示

xiaoran@cjdll:~$ sleep 2000 &
[1] 77404
xiaoran@cjdll:~$ jobs -l
[1]+ 77404 Running                 sleep 2000 &
#使编号为1的job到终端运行
xiaoran@cjdll:~$ fg %1
# 正在sleep中
sleep 2000
# ctrl z 使job变更为stop状态
^Z
[1]+  Stopped                 sleep 2000
xiaoran@cjdll:~$ jobs -l
[1]+ 77404 Stopped                 sleep 2000
#先让停止的job变为运行状态,然后再查看job状态。;代表命令按顺序执行。
xiaoran@cjdll:~$ bg %1;jobs -l
[1]+ sleep 2000 &
[1]+ 77404 Running                 sleep 2000 &

终端多路复用tmux

tmux是一个终端多路复用工具之一,比如screen也是。tmux可以做到在当前终端分割出多个窗口,这样就可以切换不同的窗口,每个窗口执行不同的任务或命令。离开窗口后,原有窗口正在执行的程序或命令仍会继续执行,不会中断或停止。tmux 的快捷键需要掌握,它们都是类似 <C-b> x 这样的组合,即需要先按下Ctrl+b,松开后再按下 xtmux 常用的命令如下

  • 会话 - 每个会话都是一个独立的工作区,其中包含一个或多个窗口
    • tmux 开始一个新的会话
    • tmux new -s NAME 以指定名称开始一个新的会话
    • tmux ls 列出当前所有会话
    • 在 tmux 中输入 <C-b> d ,将当前会话分离
    • tmux a 重新连接最后一个会话。您也可以通过 -t 来指定具体的会话
  • 窗口 - 相当于编辑器或是浏览器中的标签页,从视觉上将一个会话分割为多个部分
    • <C-b> c 创建一个新的窗口,使用 <C-d>关闭
    • <C-b> N 跳转到第  N 个窗口,注意每个窗口都是有编号的
    • <C-b> p 切换到前一个窗口
    • <C-b> n 切换到下一个窗口
    • <C-b> , 重命名当前窗口
    • <C-b> w 列出当前所有窗口
  • 面板 - 像 vim 中的分屏一样,面板使我们可以在一个屏幕里显示多个 shell
    • <C-b> " 水平分割
    • <C-b> % 垂直分割
    • <C-b> <方向> 切换到指定方向的面板,<方向> 指的是键盘上的方向键
    • <C-b> z 切换当前面板的缩放
    • <C-b> [ 开始往回卷动屏幕。您可以按下空格键来开始选择,回车键复制选中的部分
    • <C-b> <空格> 在不同的面板排布间切换

具体使用教程可以参考文章:

别名(alias)

通过设置别名,可以自定义常用的较长的命令,例如设置别名alias ll='ls -alF',再次执行ll命令时会有输出,而非提示命令未找到。默认情况下shell并不会保存别名,关闭终端再次连接后别名就会失效,想永久保存别名的话,需要将设置的别名放到配置文件中,比如.bashrc .zshrc等等。下面是几个常用的命令

#查看已经设置的别名
alias
#设置别名;=两边是没有空格的,因为alias是一个 shell 命令,它只接受一个参数。
alias alias_name="command_to_alias arg1 arg2"
#取消别名
unalias alias_name
#永久性设置别名就需要将设置别名命令写入配置文件中,取消的话,删除对应的别名命令就ok

配置文件(Dotfiles)

很多程序的配置文件以.开头的文件名,比如Bash的配置文件~/.bashrcvim的配置文件~/.vimrc以及ssh的配置文件~/.ssh/config等等。如果想多平台同步配置这些配置文件,可以使用版本控制系统进行管理,比如git。在管理这些配置文件时,通过脚本将其 符号链接 到需要的地方

远端设备(ssh使用)

想要链接远端的设备,比如服务器或者虚拟机,这时就会用到ssh。最简单的使用方式便是ssh admin@192.168.1.4,意思是以用户名为admin登录ip为192.168.1.4,端口为22的服务器。ssh的登录可以参考文章关于ssh登陆服务器这件事

通过ssh复制文件

  • ssh+tee, 最简单的方法是执行 ssh 命令,然后通过这样的方法利用标准输入实现 cat localfile | ssh remote_server tee serverfile。回忆一下,tee 命令会将标准输出写入到一个文件;
  • scp :当需要拷贝大量的文件或目录时,使用scp 命令则更加方便,因为它可以方便的遍历相关路径。语法如下:scp path/to/local_file remote_host:path/to/remote_file
  • rsync 对 scp 进行了改进,它可以检测本地和远端的文件以防止重复拷贝。它还可以提供一些诸如符号连接、权限管理等精心打磨的功能。甚至还可以基于 --partial标记实现断点续传。rsync 的语法和scp类似;

小结

这一小结主要介绍了jobs的管理、多路复用工具tmux的基本使用、以.开头的配置文件以及ssh的使用。

0

评论区