常用linux工具命令随记

杂项

lsof -t -i:8888   # 查看端口8888的占用进程id
kill -9 {进程id}   # 结束进程
sudo chmod -R 777 # 修改文件权限
sudo dpkg -i {软件包名.deb}    #按照deb包软件
sudo apt-get update          #更新本地软件版本

git

#查看git日志
git log

#可视化,查看git日志
gitk

#查看当前改动
git diff

#添加新的文件修改到暂存区
git add .

#提交当前修改
git commit -a

#提交当前修改,并与目前所在commit合并
git commit -a --amend

#退回先前的版本 一个【^】一个回跳
git reset --hard HEAD^

#在当前commit上抓取指定commit的修改
git cherry-pick <commit>
#出现修改冲突时,需要手动解决,解决完成之后输入
git cherry-pick --continue

#将远程主机的最新内容拉到本地
git fetch

#将远程主机的最新内容拉下来后直接合并  #git pull = git fetch + git merge
git pull

#将远程主机的最新内容拉下来,并把当前commit放到最前,git fetch + git rebase
git pull -r

#生成一个跟某个commit完全相反的修改,即撤销修改的diff
git revert <commit>

#排列、修改前5个commit的顺序
git rebase -i HEAD~5

#把当前的未提交修改放入stash中并删除
git stash
#取回上一次stash的修改
git stash pop

#把拉取某个commit上的某个文件/文件正则匹配,可以省略commit,这样会使得file文件变为当前分支状态
git checkout <commit> <file>


#查看分支
git branch

#创建一个分支
git branch <branchname>

#切换到目标分支
git checkout <branchname>

#创建并切换到分支
git branch -b <branchname>

docker

#查看本地镜像
docker images

#删除本地镜像
docker rmi {image_id}

#从本地镜像启动一个docker容器
docker run -itd --name {contain_name} {image_id} /bin/bash

#查看本地正在运行的docker容器, -a查看包含stop的容器
docker ps [-a]

#进入一个正在运行的容器
docker exec -it {contain_id|contain_name} /bin/bash

#停止运行容器
docker stop {contain_id}

#移除容器
docker rm {contain_id}

#启动一个停止的容器
docker start {contain_id}

exit  #从容器中退出

#复制docker中的文件到本地目录
docker cp {contain_id}:{contain_path} {local_path}

k8s

#查看k8s workflow列表
argo -n cep2-dev list

#查看指定workflow运行状态(每个pod的运行状态)
argo -n cep2-dev (get/watch) {workflow id}

#查看指定pod输出log
kubectl -n cep2-dev logs {pod id} main -f

#上传一个secret到k8s服务器
kubectl create secret generic {{secret-name}} --from-literal={{secret-key}}={{secret-value}} -n {{namespace}}

screen

0、screen配置,写在文件/etc/screenrc中

# zenan's status line profile
defscrollback 409601        # Set default lines of scrollback 
hardstatus alwayslastline   # Statusline position
hardstatus string '%{= kG}[ %Y/%m/%d %{R}%c:%s %{G}][%= %{W}%-w%{Yk}%n%f%t%{kW}%+w %=%{G}][ %{R}F8%{C}New %{R}F9%{C}Rename %{R}F10%{C}Detach %{R}F4%{C}Kill %{R}F1%{C}Prev %{R}F2%{C}Next %{G}]'
# Specifies the contents of the hardstatus line
# about statusline format: https://www.gnu.org/software/screen/manual/screen.html#String-Escapes
bindkey -k k8 screen # Some hotkey https://www.gnu.org/software/screen/manual/screen.html#Input-Translation
bindkey -k k9 title
bindkey -k k; detach
bindkey -k k1 prev
bindkey -k k2 next
bindkey -k k4 kill
attrcolor u "-u B"   # Use blue text instead of underline.

配置保存之后重新启动screen,可以看到底部状态条

1、screen常用操作:

①  screen -S haha  # 创建一个screen窗口,名叫haha,并进入其中。

②  在screen窗口中按 Ctrl-a 然后 d 退出screen窗口

③  screen -ls   #查看当前登录的用户名下的screen窗口

④  screen -dr haha  #进入一个名叫haha的screen窗口

⑤  screen里面滚轮用不了的,回滚以及复制&粘贴操作,快捷键里面介绍吧

2、还是命令

#列出当前用户运行的screen
screen -ls

#创建一个screen并进入(attach)
screen -S {screen_name}

#一个screen如果正被一个终端访问,通过screen -ls会显示为(Attached)状态
#此时不能再被其他终端通过(screen -r)进入,但可以使用(screen -x)进入和其他终端同步操作的screen
screen -x {screen_name}

#-d和-r同时使用
#挤掉其他正在attached的终端,并进入screen
screen -dr {screen_name}

#关掉一个session  (给-S指定的screen发送一个-X指定的命令'quit')
screen -S {screen_name} -X quit
#也可以在终端中"C-a :"然后输入quit

3、在screen内部的快捷键,C-a表示Ctrl和a一起按

在每个screen session下,所有命令都以 ctrl+a(C-a) 开始
常用的session快捷键如下:
#detach,离开当前session(detach当前正在attach的screen)
C-a d

在session下可以有多个窗口,相关快捷键如下:
#create,创建一个新的运行shell的窗口并切换到该窗口
C-a c

#kill,关闭、删除当前选中的窗口
C-a k

#切换到编号为0..9的窗口
C-a 0..9

在session下,不能使用平常shell的滚轮上下查看日志,需要进入copy mode:
#进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样
C-a [

copy mode下的快捷键如下:
    Space #第一次按为标记区起点,第二次按为终点并退出copy mode 
    C-b #Backward,PageUp 
    C-f #Forward,PageDown 
    H(大写) #High,将光标移至左上角 
    L #Low,将光标移至左下角 
    0 #移到行首 
    $ #移到行末 
    w #forward one word,以字为单位往前移 
    b #backward one word,以字为单位往后移 
    Esc,q #退出copy mode 

#Paste,把刚刚在 copy mode 选定的内容贴上
C-a ]

crontab

crontab用于在linux机器配置定时任务,有问题看:crontab定时任务不执行的原因

配置任务执行时间参考:Linux Crontab 定时任务

配置一个定时任务每分钟输出当前时间到文件/tmp/test.txt的过程:

首先登陆到机器,输入crontab -l可以查看当前用户的定时任务。

确认定时服务已经启动了:ps -aux | grep crond

如果没启动需要执行service crond start或者restart

确认之后,输出crontab -e,开始编辑当前用户的定时任务,以下输入内容,ESC+:wq保存

* * * * * /usr/bin/echo $(/usr/bin/date "+\%Y-\%m-\%d \%H:\%M:\%S") >> /tmp/test.txt
# 在crontab编辑的命令里面最好全部使用绝对路径,不然会有奇奇怪怪的问题。

另外开一个终端,输入sudo tail -f /var/log/cron,看看CROND进程给你执行的CMD是不是符合预期的,再cat /tmp/test.txt看看有没有预期效果。Over。


tmux

#安装
apt-get install tmux

#创建session 指定名称
tmux [new -s {session_name}]

#列出session
tmux ls

#暂时退出session
Ctrl+b、d

#进入已存在的session
tmux attach -t {session_name}

#删除指定session
tmux kill-session -t {session_name}

tmux-windows

#一个session里,可以有多个window
#创建window
Ctrl+b +c

#删除window
Ctrl+b &

#下一个window
Ctrl+b n

#上一个window
Ctrl+b p

#重命名window
Ctrl+b ,

#在多个window里搜索关键字
Ctrl+b f

#在相邻的两个window里切换
Ctrl+b l

tmux-pane

#一个window,可以有多个pane

#启用鼠标选中panal
#或者直接将这个语句写入到 ~/.tmux.conf中,如果在session外设置,需要加上tmux前缀
#启动鼠标模式后可以使用滚轮,赋值
set -g mouse on

#分成上下两半,下边是新pane
Ctrl+b ”

#分成左右两半,右边是新pane
Ctrl+b %

#方向键选中焦点pane
Ctrl+b 方向键上下左右

#移动当前焦点pane的上、右边界
Ctrl+b Ctrl+方向键上下左右

#pane全屏、取消全屏(全屏的pane名称后面会跟着一个*Z)
Ctrl+b z

#移动pane(与其他pane互换位置)
Ctrl+b { (往左边,往上面)
Ctrl+b } (往右边,往下面)

#删除pane
Ctrl+b x | Ctrl+d

#pane便捷自动排版
Ctrl+b 空格键

#移动pane至创建一个新的window
Ctrl+b !

#移动pane合并至某个window
Ctrl+b :join-pane -t $window_name

#显示pane编号
Ctrl+b q

#显示时间
Ctrl+b t

#按编号顺序移动pane位置
Ctrl+b Ctrl+o

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值