find、grep、vim、ssh、ps、kill、apt、ufw、ls、nohup一些命令记录

原创
2020/09/27 06:19
阅读数 260

关于grep的一些知识:

  1. gerep a x.txt 可以列出x.txt中包含a的行的内容。

  2. grep跨行匹配:
    参考: https://stackoverflow.com/questions/12652568/how-to-give-a-pattern-for-new-line-in-grep
    grep -zoP '.*\nERROR.*' 可以匹配包含ERROR的一行和上一行。

  3. 管道后将整个输出作为整体grep另一个文件:
    cat srqt.aiqrt.aig_seq | awk -F '; map_fpga' '{print $1}' | sed 's/;/\\;/g' | grep -f /dev/stdin file.txt

关于ssh的一些知识:

①不论是root用户还是普通用户,ssh-keygen -t rsa以后才会生成私钥和公钥,都保存在/root/.ssh或者/home/user/.ssh下面。对于Git来说,一般会在后面加上Git账户邮箱:ssh-keygen -t rsa -C "email",因为这个人没有加邮箱账户生成的公钥提交到github上不work
https://www.zhihu.com/question/34668074

②/etc/ssh下的sshd_config有用,其余的都没大有用。

③ssh-copy-id -p xxx user@host这个命令window下找不到命令,需要gitbas;ubuntu下使用的时候需要服务器端/etc/ssh/sshd_config中PasswordAuthentication改为Yes。

④authorized_keys中有+号是正常的。

vim的几个命令:

①shift+4来到行尾,shift+6来到行头。
②shift+3所在单词高亮,:noh然后回车即可取消。
③:set number然后回车可以显示行号;:1d然后回车即可删除第一行,第二行同理;:n,md然后回车表示删除第n到m行。
④ctrl+f 向后翻页,ctrl+b向前翻页,ctrl+down向上一行,ctrl+up向下一行。
⑤批量操作:
对每一行的行首添加元素# :%s/^/# 去掉元素# :%s/^#
对每一行的行首添加元素// :%s/^/\/\/\/表示/,空格估计也是一样。去掉元素// :s/^\/\/
对17~94行的行首添加元素# :17,94 s/^/#
对每一行的行尾操作:把^变为$
对当前行把abc换成123 :s/abc/123/g
对所有行把abc换成123 :%s/abc/123/g
把20行到30行内abc替换成123 :20,30s/abc/123/g
⑥正则表达式:
⑦vim在非插入模式下可以先摁R,再摁别的键来修改后一文本。
⑧vim在非插入模式下直接摁x可以删除后一文本。
⑨如果修改文件后显示需要root可以执行:w !sudo tee %命令来强制修改,之后直接退出即可。

ps及kill

ps -e | grep smb
感觉只能显示pid,信息有点少,注意服务器端的samba叫smbd,客户端的叫smb

ps -ef | grep sslocal
与-aux感觉区别不大

ps -aux | grep sslocal
aux显示的内容多一些,更容易分辨pid

netstat -antp | grep 1080/ssh
查端口和应用都可以,STABLISHED表示自己建立向外通讯,LISTEN表示在听外面的。这里-nap也可以,可能需要sudo

kill pid = kill %n n是jobs的号码

apt

https://blog.csdn.net/get_set/article/details/51276609
https://www.cnblogs.com/horizonli/p/5179224.html

安装下载的deb包
sudo dpkg -i teamviewer_15.5.3_amd64.deb

如果缺少依赖
sudo apt -f install

然后再安装deb包。

想要卸载:

sudo apt --purge remove <package>  #删除已安装包(不保留配置文件)。如软件包a,依赖软件包b,则执行该命令会删除a及配置文件,保留b。
sudo apt autoremove  #什么都不需要加,自动卸载依赖,包括已安装包,但保留配置文件。
sudo apt remove <package>  #删除已安装的软件包(保留配置文件),不会删除依赖软件包。
sudo apt autoclean  #什么都不需要加,apt的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。

使用的时候具体来说可以运行如下命令:

apt-get --purge remove <package>  #删除软件及其配置文件
apt-get autoremove  #删除没用的依赖包,此时dpkg的列表中有“rc”状态的软件包,可以执行如下命令做最后清理:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

ufw

sudo ufw -h
sudo ufw status/reload/disable/enable
sudo allow/deny port
sudo delete allow port  #貌似对应用没什么影响,拿vnc、ssh试了一下,去除了所有的allow ports还work。

ls

ls -a
ls -l
ls | grep xxx 可以列出当前目录中的名叫xxx的文件

nohup

nohup command  #终端不能接收任何输入,标准输出 和 标准错误 会输入到当前目录的nohup.out 文件。即使关闭xshell 退出后,当前session依然继续运行。
command &  #可以标准输入(控制台可以输入内容,可以交互),但无法将 标准输出和错误信息输入到文件中。关闭客户端后,命令会马上停止。
nohup command &  #既能标准输入,就是终端能够接收任何输入,也能将标准输出和错误信息的日志输入到nohup.out文件,即使关闭shell,退出当前session依然继续运行。
nohup command >file  2>&1  &  # >file是将日志(标准输出1)重定向写入file文件中去,2>&1是将错误信息2重定向到标准输出1,而标准输出1又重定向到了file
,所以两者都会写入到file中去。
nohup ./program >/dev/null 2>log & #只输出错误信息到日志文件
nohup ./program >/dev/null 2>&1 &  #什么信息也不要

jobs  #退出shell之前可以查看到活动的进行
jobs -l  #可以查看到活动的进程的PID
ps -aux | grep xxx  #可以查看到所有的进行及状态,Redhat中S+表示正在执行,S表示中断,几秒后就断掉了

#D 不可中断 uninterruptible sleep (usually IO),收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
#R 运行 runnable (on run queue) ,正在运行或在运行队列中等待
#S 中断 sleeping,休眠中, 受阻, 在等待某个条件的形成或接受到信号,Redhat中几秒后就断掉了
T 停止 traced or stopped,进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行
#Z 僵死 a defunct ("zombie") process,进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放

fg  #前台执行
bg  #后台执行
fg %n  #n是jobs的号码
bg %n  #n是jobs的号码

https://blog.csdn.net/xiaojin21cen/article/details/88991768

find

①find -name xxx 表示当前文件夹递归查找,不加-name不递归。
②find . -name 'work' -type d | xargs rm -rf 在当前文件夹及子文件夹下查找work文件夹并递归删除

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部