linux 工程使用杂记

1、在xx_filename.sv文件的末尾加入 xxx hello world;12334 hello;


cat >>  xx_filename.sv   <<EOF
xxx  hello world
12334 hello
EOF

>>:输出附加定向符( >> )的作用是把命令/程序的输出附加到指定文件的末尾;

这种方式叫 Heredoc。csh、 bash 和 zsh 都支持这种语法,是用于给某个指令(示例中就是cat)传递多行参数的,然后 cat 在把这些参数重定向( >> ) 到文件中( xx_filename.sv )

EOF是分隔符,EOF本意为 End Of File,文件末尾的意思,分隔符不一定非要写成EOF,你用其他字符串也可以,只不过大家都比较习惯用EOF,相当于通用习惯。


find命令

2、查找文件:find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
    (2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
    (3)find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
    (4)find . -name 'srm*'  
    5) grep -r ‘energywise’  *    #在当前目录及其子目录下搜索'energywise'行的文件

查找文件里面的内容

查找所有扩展名为.txt的文本文件,并找出包含“MMMM”的行
find . -name "*.txt" |xargs grep "MMMM"

实践:查找当前目录下,所有log文件中带有TEST CASE FAILED的关键词

find  . -name  "*.log" |xargs  grep  "TEST CASE FAILED"

查找的字符里面有:“”

find . -name "*.sv" | xargs grep '\"hello'

将某个目录中的所有子目录中的所有txt文件中的yyy字符都替换成xxx字符,则需要使用以下命令:(好像不行)

sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`
//``括起来的grep命令,表示将grep命令的的结果作为操作文件。

// 方法2
find . -type f -name '*.html' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'

 如果是当前目录下的文件则可以直接通过命令(可行)(xxx被yyy替换)

sed -i s/\"xxxxx_tr/\"yyyyy_tr/g ./*.sv

用sed把目录所有文件中特定字符串进行替换

find /home/user/docs -type f -exec sed -i 's/old_string/new_string/g' {} \;
  • 这里find命令的参数解释如下:
    • -type f:表示只查找文件类型,这样可以避免对目录等非文件对象进行操作。
    • -exec:是find命令用于执行其他命令的选项。
    • sed -i 's/old_string/new_string/g' {}:这是-exec要执行的命令。其中-i选项表示直接在文件中进行修改(如果不加-ised会将修改后的内容输出到标准输出,而不会修改原始文件),s/old_string/new_string/gsed的替换命令,s表示替换,/是分隔符,old_string是要替换的字符串,new_string是替换后的字符串,g表示全局替换,即文件中所有出现old_string的地方都会被替换。{}是一个占位符,find会将找到的每个文件的路径替换到{}的位置,\;-exec命令的结束符。

把某一个目录下,3天之前的文件删掉:

 find /xx/path/output/ -maxdepth 2 -mtime +3 -exec rm -rf {} \;

-maxdepth<目录层级>:设置最大目录层级;设置查找的目录深度;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
  • -mtime n:查找在 n*24 小时内被修改过的文件。
  • -mtime 0 表示查找今天修改过的文件,-mtime -7 表示查找一周以前修改过的文件。

  • 关于时间 n 参数的说明:

    • +n:查找比 n 天前更早的文件或目录。

    • -n:查找在 n 天内更改过属性的文件或目录。

    • n:查找在 n 天前(指定那一天)更改过属性的文件或目录。

-exec 选项允许你执行一个命令,{} 将会被匹配到的文件名替代,\; 表示命令结束。

find参数说明参考:

linux find 命令查找文件和文件夹 - jiftle - 博客园

Linux find 命令 | 菜鸟教程

一些不错的例子:Linux中find命令用法全汇总,看完就没有不会用的!-腾讯云开发者社区-腾讯云

 


批量替换:

参考:sed命令——批量修改文件内容 - 曹伟雄 - 博客园

批量替换多个文件内容

  命令格式:sed -i "s/原内容/新内容/g" `grep 原内容 -rl 所在目录`    注:千万注意这个符号【`】,是【最左上角】那个符号不是单引号

1

sed -i "s/oldString/newString/g" `grep oldString -rl /path`

例如:我要把/test下所有文件,包含java的替换为linux,可以用以下命令: 

1

sed -i "s/java/linux/g" `grep java -rl /test`


终端窗口字体大小:
缩小:'shift' + '-'
放大:'Ctrl ' + 'shift' + '='
————————————————
原文链接:https://blog.youkuaiyun.com/qq_40571921/article/details/117227527


grep

grep 匹配到关键词后,打印其前后几行

参考链接:Linux grep根据关键字匹配前后几行_grep查看最新匹配文件最后几行-优快云博客

实际使用:grep -rA  5  "  parttern        " .

上面-r是对目录递归处理,打印匹配后面的5行;

输出grep匹配项前后几个字符;
参考:

grep 命令查询命中字符串的前后 n 个字符 - 书亚博园

$ echo "some123_string_and_another" | grep -o -P '.{0,3}string.{0,4}'
23_string_and

查找目录下面所有log文件,匹配:ALL_BW(Mpps)'并打印下面6行;
 

find -name "*.log" |xargs  grep   -A 6 'ALL_BW(Mpps)'  

当前目录下递归查找:特定字符

grep -rn "待查找字符"

统计当前目录下特定文件行数:

find -name "*.v" |xargs wc -l

wc命令可以用来统计文件的行数 、单词数 、字符数;

wc -l xx.txt      # 统计xx.txt文件的行数

显示当前路径下,所有sv文件的代码行数,从高到底排列

find . -name "*.sv" -exec wc -l {} + | sort -nr 


lsof(list open files)命令可以列出当前系统已经打开的所有文件。在Linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

lsof(list open files)是一个用于显示系统中所有打开文件的命令。

基本用法:

1. lsof:显示所有打开的文件和文件夹。

2. lsof [文件名]:显示指定文件的相关信息。

3. lsof -u [用户名]:显示指定用户所打开的文件。

4. lsof -p [进程号]:显示指定进程所打开的文件。

5. lsof -i:显示网络连接的相关信息。

6. lsof -i :[端口号]:显示指定端口号上的网络连接。

7. lsof -i tcp:显示TCP协议相关的网络连接。

8. lsof -i udp:显示UDP协议相关的网络连接。

9. lsof +D [目录]:显示指定目录下的打开文件。

10. lsof -c [进程名]:显示指定进程名所打开的文件。

常用选项:

- a:显示打开文件的进程,并包括进程的命令行参数。

- c [进程名]:只显示指定进程所打开的文件。

- d [文件描述符]:显示指定文件描述符对应的文件。

- i [条件]:显示符合条件的打开文件,条件可以是文件描述符、进程ID、用户名等。

- n:不解析主机名。

- p [进程号]:只显示指定进程号所打开的文件。

- u [用户名]:只显示指定用户所打开的文件。

- P:显示进程号而不显示进程名。

- r [重复次数]:循环显示列表。

lsof命令可以帮助用户查找和监视系统中正在使用的文件和网络连接,它可以对系统进行调试、性能优化和安全审计等工作有很大帮助。


强制关闭进程:

kill  -9  进程号pid(lsof可以显示pid)


建立软连接:

ln -s /be_link_path/src_file   ptr_filename      


linux显示历史命令和执行时间

方法一:通过环境变量设置

可以通过修改 HISTTIMEFORMAT 环境变量来实现显示历史命令的执行时间

export HISTTIMEFORMAT='%F %T '
  • %F 表示完整日期,格式为 YYYY-MM-DD
  • %T 表示 24 小时制的时间,格式为 HH:MM:SS
永久设置

若希望每次登录系统都能显示历史命令的执行时间,可以将 export HISTTIMEFORMAT='%F %T ' 命令添加到用户的 ~/.bashrc 或 ~/.bash_profile 文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值