Linux 常用命令 screen、find、sed、awk 使用(含实例、持续更新)

本文介绍了Linux中三个常用的命令:screen、find和sed的使用方法。screen用于管理多个终端会话,find帮助快速查找文件,而sed则用于文本行的处理。文章详细讲解了这些命令的基本操作和一些高级用法,如screen的会话恢复、加密,find的正则匹配,以及sed的行编辑和文件计数功能。此外,还提供了一些实用的awk命令示例。
摘要由CSDN通过智能技术生成

概述

平时总是会在 Linux 上执行一些操作,经常使用的还比较熟悉,偶尔总有一些几个命令用的比较少,因此就会比较容易忘记,这里简单记录下来,方便自己查阅。

screen

个人感觉使用 screen 最大的好处有 2 条:

  1. 可以同时操作多个 Terminal Tabs,切换很方便;
  2. 远程登陆关闭后,下次再连接 screen 还在;

安装 screen

yum -y install screen

screen 基本操作。

screen -ls                  #列出当前所有的session
screen -R myScreenName      #先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。

screen -r myScreenName      #回到yourname这个session
screen -d myScreenName      #远程detach某个session
screen -d -r myScreenName   #结束当前session并回到yourname这个session
screen -wipe  #检查目前所有的screen作业,并删除已经无法使用的screen作业。

screen -X -S PID quit  #使用(PID)删除myScreenName

screen 内部操作,内部操作基本都是先执行 Ctrl + A,然后再输入其他命令(因此下面的命令,开头都会带上 Ctrl + A ,-> 后面的部分,才是具体命令)。

Ctrl + A -> W           # 显示所有窗口列表

Ctrl + A -> Ctrl + A    # 在两个最近使用的 窗口间切换 
Ctrl + A -> N           # Next,切换到下一个窗口
Ctrl + A -> P           # Previous,切换到上一个窗口

Ctrl + A -> C          #创建一个新的运行shell的窗口并切换到该窗口
Ctrl + A -> D          #detach,暂时离开当前session

C-a [ ->               #进入 Copy mode,操作类似 vim
C-a ] ->               #进入 Paste

Screen 加密操作

如果是多人使用一台 虚拟化,还是会面临安全问题,此时你也可以考虑加密Session,具体操作如下:

screen -R myScreenName        #先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
Ctrl + A -> :password         #设置Screen密码
Ctrl + A -> D                 #detach, 暂时离开当前session

screen -r myScreenName       #回到yourname这个session

此时屏幕会提示你要输入

Screen password: 

Screen 无法恢复情况

有时候,会出现 screen -ls 查询到状态为 Attached,但是执行 screen -r 连接不上的情况。
在这里插入图片描述
此时可以向踢掉之前的用户,然后再回到自己的Session中去,命令如下:

screen -D  -r myScreenName    #先踢掉之前登录的用户,然后回到Session
screen -D  -r myScreenId      #先踢掉之前登录的用户,然后回到Session

find

在 Linux 中查找自己需要的文件时候,是比较常用的。

find . -type -f              # 在当前路径,查找所有文件
find . -name xXxfile          # 在当前路径,查找xXxfile 文件,区分大小写。
find . -iname XXXfile         # 在当前路径,查找xXxfile、xxxfile、XXXfile文件,不区分大小写。

find . -name xxx1File -o -name xxx2File   # -o是 or,表示在当前路径,同时查找文件 xxx1File 和 xxx2File。

find 命令支持正则表达式

find . -iname "xxx.*"     # 在当前路径,查找 “xxx” 开头的文件。

sed

sed 常常作用于的处理。

sed 支持同时修改源文件。

sed -i 's/^HISTSIZE=1000/HISTSIZE=200/' /etc/profile
sed -i '3a\This is an new line.' /tmp/log.txt   # 加\是为了便于肉眼区分

#匹配行前加
sed -i '/searchLine/i\my new line' /tmp/log.txt
#匹配行前后
sed -i '/searchLine/a\my new line' /tmp/log.txt

下面比较少见的用法,用于获取文件总行数。

LineNum=`sed -n '$=' /tmp/log.txt`   #获取文件的函数,并传递为参数LineNum

sed -n '=' /tmp/log.txt              #Print the current line number.
sed -n '$=' /tmp/log.txt             #Match the last line.

完整的例子参考如下:

#!/bin/sh
#Read a log file, assign each line to an array variable, 
#and print all the log file out.

##################################
# main function define
##################################
main()
{
    local param=0

    local FileName="/tmp/log.txt"            #文件名称/tmp/log.txt
	local LineNums=`sed -n '$=' ${FileName}` #计算log.txt文件的总行数
	echo "The  $FileName line num. is $LineNums"

	i=0
	while read line
	do
	    arr[$i]="$line"
	    i=`expr $i + 1`
	done < $FileName
	
	echo "$i"
	for i in `seq $LineNums` ;do
	    echo "${arr[$i]}"
	done
}

main $@

awk

awk 是好用的数据处理工具,比较倾向于一行当中分成数个“字段”来处理。多用于处理一行中的,awk 通常运行的模式是这样的:

awk '条件类型1{动作1} 条件类型2{动作2} ...' filename

awk 的内置变量:
在这里插入图片描述

常用实例:

awk -F"," '{ print $3,$4 }' /tmp/log.txt
awk -F"." '{ print "Myadd1: "$3, "\Myadd2: "$4 }' /tmp/log.txt

last -n 5 | awk '{print $1 "\t lines: " NR "\t columns: " NF}'

Reference

参考是一些针对某个单个命令,写的比较好的,也列出来,方便大家学习。

linux screen 命令详解

GNU Screen

Linux三剑客之awk命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值