Bash
tcliuwenwen
真理的探索者
展开
-
Shell实现自动添加新行
有时候命令的输出没有新的换行,看着很难受,如何自动添加新行呢?原创 2022-08-12 02:41:13 · 1074 阅读 · 0 评论 -
shell提取ip地址
shell提取ip地址原创 2022-08-02 01:24:15 · 1938 阅读 · 0 评论 -
SSH自动重连脚本
实现SSH的自动重连,比如机器正在开机或者网速慢,可以自行不断尝试,直至成功连接。原创 2022-07-23 19:26:12 · 674 阅读 · 0 评论 -
使用ps | egrep时过滤排除掉egrep自身
ps使用grep过滤时排除grep自身原创 2022-07-14 19:27:52 · 593 阅读 · 0 评论 -
为什么bash中的read要配合while才能读取/dev/stdin的内容
在不生效但使用while时会生效需要将read和echo用括号括起来并在同一子shell中执行,具体原理不懂。原创 2022-07-02 02:02:28 · 294 阅读 · 0 评论 -
纯shell实现文本替换
不依赖tr不依赖sed使用纯shell实现文本替换原创 2022-07-02 01:35:27 · 1841 阅读 · 0 评论 -
一个简单的bash转powershell案例
博文背景群友的bash脚本需要移植到Windows平台下,我帮群友写了一下具体操作脚本未经过充分测试,很可能有BUG存在#!/bin/bashFILE_NAME=$1NEW_ORG_NAME=$2STR=`sed -n '1p' ./${FILE_NAME}`TEMP_STR=($STR)BLOCKCHAIN_NAME=${TEMP_STR[1]}STR=`sed -n '3p' ./${FILE_NAME}`TEMP_STR=($STR)CRYTPO_PATH=${TEMP_STR原创 2022-02-21 19:16:48 · 690 阅读 · 0 评论 -
ps a u和ps -a -u和ps au和ps -au区别
root@hangzhou:~ # ps a | head PID TTY STAT TIME COMMAND 656 ttyS0 Ss+ 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,38400,9600 ttyS0 vt220 659 tty1 Ss+ 0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux1783427 ? S原创 2021-11-16 21:46:45 · 1215 阅读 · 0 评论 -
Error: no “print“ mailcap rules found for type “text/plain“解决
博文背景作者一直想搞明白Linux下的print命令如何使用?直接print hello.txt会报错Error: no "print" mailcap rules found for type "text/plain"具体操作ubuntu@139:~/temp $ cat /etc/mailcap | egrep printapplication/x-troff-man; /usr/bin/nroff -mandoc -Tutf8; copiousoutput; print=/usr/bin原创 2021-10-04 17:06:21 · 1048 阅读 · 0 评论 -
Jenkins换源解决方案
博文背景Jenkins换源一直难住了我,这次趁此机会彻底解决这个问题,在我琢磨了很多方案之后,最终选择了这个办法,希望对读者有所帮助。具体操作1.安装Jenkins软件前面的大同小异的东西就不在这里说了,先假设读者进行到这一步输入密码点击下一步过后等一小会应该会出现/var/lib/jenkins/updates/default.json这个文件,然后我们使用文本替换命令对它里面的内容进行替换sudo sed -i 's/updates.jenkins-ci.org\/download/m原创 2021-09-11 00:57:23 · 1381 阅读 · 0 评论 -
安装部署Grafana脚本
博文背景为降低成本,作者的虚拟机经常会被废掉,所以尽量凡事得脚本化。具体操作#!/bin/bashread -r -d '' cmd <<- 'EOF' whoami; echo "running cmd..."; curl -fsSL --url https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-6.6.1-1.x86_64.rpm -o /tmp/grafana-原创 2021-07-19 14:34:50 · 502 阅读 · 1 评论 -
Bash多行字符串处理
博文背景Bash中的多行字符串之前一直玩不转,今天终于算是把他搞清楚了。具体操作#!/bin/bashread -r -d '' cmd <<- 'EOF'gfresggresgresgresgresgresgresgr bgtrdgtrd gtrdh5gt gtrehrgres gersgr gr esgr esgr gres grewsagresgresgrgresgresggresgrEOFOLD_IFS=$I原创 2021-07-19 14:16:24 · 1332 阅读 · 0 评论 -
Linux下如何启动纯净的bash命令行
博文背景作者一直想知道原生的bash是自动加载了哪些变量,于是探究在不加载任何配置文件的情况下它是如何反应的具体操作1.将/etc下三个关键文件重命名避免加载root@hangzhou:/etc# ls *.bakbash.bashrc.bak environment.bak profile.bak2.命令行清除环境变量并加载bashroot@hangzhou:~# env -i su - root -c bash -- --login --noprofile --norcroot@原创 2021-06-13 08:23:22 · 537 阅读 · 0 评论 -
使用perl进行完美的文本替换
博文背景文本替换虽不难,可是如果考虑到各种转义以及特殊字符那么难免会头皮发麻,如何优雅地解决这个问题,Perl语言为我们提供了函数。具体操作#!/usr/bin/perl$str="g\\gesrgesg\\Qtrd\\\\//thrdh\"grsegresgr";$find="\\";$quoted_find=quotemeta($find);$replace="'";print "$str\n";# $str =~ s/$find/$replace/g;$str =~ s{$quot原创 2021-06-03 00:01:31 · 2540 阅读 · 0 评论 -
Django-admin的命令行配置
博文背景django-admin有自动补全但是python manage.py没有自动补全,对于django-admin来说不方便的地方就是需要手动配置两个变量这样方便它定位模块的位置。具体操作1.bash/zsh版export DJANGO_SETTINGS_MODULE="hello.settings"export PYTHONPATH="."set_django () { export DJANGO_SETTINGS_MODULE="$1"}2.pwsh版对于Powersh原创 2021-03-27 17:27:01 · 209 阅读 · 0 评论 -
tldr安装教程
sudo apt updatesudo apt install tmuxcd ~/mkdir -p ~/.tldr/tldrgit clone https://hub.fastgit.org/tldr-pages/tldr.git ~/.tldr/tldrtldr tldr原创 2020-11-07 15:46:40 · 2575 阅读 · 3 评论 -
浙江理工大学校园网DNS性能测试脚本
博文背景浙江理工大学为了防止我们利用DNS的53端口漏洞进行不花钱上网,同时也是为了保护网络安全,学校对公网出口的基于53端口的服务进行了屏蔽,对校内提供两台DNS服务器进行域名解析服务,一台是10.11.248.114一台是10.11.248.115,这两天也可以对内网域名提供解析服务。另外还有一台服务器是10.11.246.95,是老师给我提供的测试服务器,我对它安装了DNS服务器,上游查询来自223.5.5.5服务器。校园网有时候网页打开转半天很慢,只用speedtest.cn进行测速发现带宽并不慢原创 2020-10-18 23:10:38 · 978 阅读 · 0 评论 -
grep/egrep命令底色配置
博文背景正则表达式是工程师的必备基础,在使用grep/egrep练习正则表达式时希望能够给匹配到的字符加上底色。具体操作export GREP_COLORS='ms=38;5;214;48;5;30'如何将其永久生效相信大家都懂,具体我就不再赘述了。...原创 2020-10-01 21:47:54 · 286 阅读 · 0 评论 -
mycli蓝色字体看不清楚文字解决办法
博文背景解决办法更换mycli的配色主题,修改~/.myclirc文件中主题为vim主题效果如下:参考链接https://www.mycli.net/syntax原创 2020-09-16 13:16:53 · 541 阅读 · 1 评论 -
Linux下自动安装Miniconda脚本
#!/usr/bin/bashset -ewget "https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh" -O ~/miniconda.shbash ~/miniconda.sh -b -p $HOME/miniconda~/miniconda/bin/conda initecho 'Successfully installed miniconda...'echo -原创 2020-09-06 12:43:20 · 1723 阅读 · 0 评论 -
Linux下locale问题汇总
博文背景有时候,ssh登录后会出现下面这个样子的问题-bash: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)/bin/sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)有时候使用一些软件如apt,perl等会出现locale报错命令行查看locale会出现下面这个样子的问题root@tlinux:~ # localelocale: Cannot s原创 2020-09-05 15:35:48 · 2288 阅读 · 0 评论 -
bash中Ctrl + R和Ctrl +S搜索操作
按一下Ctrl + R可以搜索历史命令,那么如何上翻呢?答案是先按Ctrl + R再输入想搜索的内容再继续按Ctrl + R就能实现上翻。如何实现下翻?先命令行输入stty -ixon可以实现屏蔽终端的Ctrl + S快捷键使该快捷键能够被bash吸收,然后再按Ctrl + S就可以实现下翻了...原创 2020-08-30 22:32:22 · 2123 阅读 · 0 评论 -
关于tar -P参数的理解
英文意思翻译过来大概就是不要跳过以斜杠开头的文件名,那么什么是以斜杠开头的文件名呢?其实就是绝对路径的含义,下面通过具体例子实践原创 2020-08-25 13:16:32 · 670 阅读 · 0 评论 -
软链接构成的同命令不同结果释疑
ubuntu@shanghai:~ $ ls -l /sbin/haltlrwxrwxrwx 1 root root 14 Feb 5 2020 /sbin/halt -> /bin/systemctlubuntu@shanghai:~ $ haltFailed to set wall message, ignoring: Interactive authentication required.Failed to halt system via logind: Interactive au原创 2020-08-23 10:59:44 · 807 阅读 · 0 评论 -
ssh连接后终端标题未改变解决办法
ssh -t shenzhen "echo -en '\033]0;shenzhen\a';bash"以后还需要做的事情是改造ssh使其在后面自动加上这个东西原创 2020-08-22 20:24:21 · 519 阅读 · 1 评论 -
Linux使用bash-it并自动生成pure主题配置
git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it~/.bash_it/install.shsed -i "s/BASH_IT_THEME='bobby'/BASH_IT_THEME='pure'/g" .bashrcexec bash原创 2020-08-22 19:15:09 · 595 阅读 · 1 评论 -
Docker中bash等快捷键“失灵”解决办法
博文背景在我们使用docker容器中的bash时,会经常感受到快捷键失灵等现象,尤其是在使用Ctrl + P向上翻动命令行时现象会更为明显,那么这是怎么回事呢?具体操作在docker中,暂时deatch命令行终端的快捷键是Ctrl + P + Q其实也可以先Ctrl + P再Ctrl + Q所以这个里面Ctrl + P好像就变成了前导键,作用就和tmux里面Ctrl + B的作用一样,所以在docker容器中使用bash快捷键Ctrl + P要按两次,才能准确生效,其余快捷键应该不会受到影响,至于刚开原创 2020-08-21 12:58:33 · 1840 阅读 · 0 评论 -
Linux黑科技命令行产品
解压工具 dtrx状态监控 glances文件管理 ranger磁盘占用 ncdu语言文档 cppman原创 2020-08-19 13:47:08 · 291 阅读 · 0 评论 -
如何查看bash内置命令的文档
博文背景今天 遇到了命令shopt想使用手册查看它的含义,但是使用man, info, help均不能有效查询其含义,那么应该如何操作使我们可以知晓其文档?具体操作man bash-builtins使用内置命令的帮助手册来寻找shopt的文档Tips使用compgen -b可以查看到所有的内置命令...原创 2020-08-04 22:39:45 · 534 阅读 · 0 评论 -
tree命令报错引发的思考与启示
ubuntu@shenzhen:~ $ tree .sed: read error on .: Is a directoryubuntu@shenzhen:~ $ command treeCommand 'tree' not found, but can be installed with:sudo apt install treeubuntu@shenzhen:~ $ sudo apt install treeReading package lists... DoneBuilding原创 2020-07-29 23:42:26 · 1027 阅读 · 0 评论 -
SSH登陆后提示信息的组成
ubuntu@debian:~ $ ssh shenzhenWelcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-31-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage * "If you've bee原创 2020-07-29 11:03:50 · 556 阅读 · 0 评论 -
Sort按字典排序和按数字排序(sort -n)的区别
root@bionic:~# cat num1101102root@bionic:~# sort num0110112root@bionic:~# sort -n num0121011原创 2020-07-28 15:33:29 · 1169 阅读 · 0 评论 -
bash中$*和$@区分
ubuntu@shenzhen:~$ set -- "arg 1" "arg 2" "arg 3"ubuntu@shenzhen:~$ echo $*arg 1 arg 2 arg 3ubuntu@shenzhen:~$ echo "$*"arg 1 arg 2 arg 3ubuntu@shenzhen:~$ echo "$@"arg 1 arg 2 arg 3ubuntu@shenzhen:~$ for word原创 2020-07-22 17:41:13 · 456 阅读 · 0 评论 -
bash中EOF问题以及去Tab问题
故事背景问题解释EOF两边加单引号是为了防止解释变量,比如放进去$PATH它打印出来仍然是$PATH。<<后面有-是为了消除每行前面的Tab字符。原创 2020-07-22 15:40:57 · 499 阅读 · 0 评论 -
关于000文件权限的查看问题
故事背景root@bionic:~# ls -l a1---------- 1 root root 3 Jul 22 06:58 a1root@bionic:~# cat a1A1原因解释1.As root, change the permissions of a file to 000. This file and its contents can only be accessed by root.2.As a user, change the permissions of your ow原创 2020-07-22 15:03:28 · 692 阅读 · 0 评论 -
Bash下echo踩坑,关于感叹号和转义
ubuntu@debian:~ $ echo ""\t\t""ttubuntu@debian:~ $ echo hellohelloubuntu@debian:~ $ echo "!!"echo "echo hello"echo helloubuntu@debian:~ $ echo "\!\!"\!\!ubuntu@debian:~ $ echo "!!"echo "echo "\!\!""echo !!ubuntu@debian:~ $ echo hellohelloubun原创 2020-07-22 13:17:55 · 3473 阅读 · 1 评论 -
Linux剪贴板shift+insert无效解决方案
博文背景作者在使用Linux时发现它的剪贴板貌似有"BUG",就是有时侯分明在外面复制好了某个东西可是在终端里面却不能够有效粘贴,反而粘贴成了一些过去复制的内容,经过一番查阅英文资料,作者终于弄明白了Linux下剪贴板的谜底具体操作在Linux操作系统下其实存在着两种剪贴板,一种叫primary,一种叫clipboard,其中primary是只要选择了文本而不需要其他任何操作该文本就会出现在primary中,然后在终端当中shift+insert就会粘贴出primary中的内容。那么如何输出我们想要的原创 2020-06-27 22:04:53 · 5875 阅读 · 0 评论 -
腾讯云命令行工具无法登陆认证
博文背景(base) ubuntu@debian:~$ tcb login⠋ 获取授权中...⠋ 正在打开腾讯云获取授权✖ [Auth] 获取 Mac 地址失败,无法登录!✖ 获取授权失败!✖ 未知错误:获取 Mac 地址失败,无法登录!请检查你的网络,尝试重新运行 cloudbase login 命令!具体操作感觉很可能是因为这是linux系统造成的,可以用KEY进行登陆(ba...原创 2020-05-02 09:43:27 · 887 阅读 · 0 评论 -
Bash命令行查看输出文本文件内容
博文背景我想找个“专业”输出文本文件内容的,cat是“专业”连接文件并输出的,它不算,找了很久总结了一些“专业”输出文本文件内容的方法。具体操作ubuntu@focal:~ $ cat hellognats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologintss:x:106:111:TP...原创 2020-04-29 23:43:49 · 1124 阅读 · 0 评论