shell
wgz7747147820
这个作者很懒,什么都没留下…
展开
-
在linux上如何发现跟文件系统中占用比较多空间的文件或者目录
x这个选项的目的也是不去统计非根文件系统的一些目录 因为实际情况是有的linux上会挂载一些nfs文件系统 这些nfs文件系统非常大 动辄几个T 去统计这些目录即没有意义 又耗费大量的时间。在linux上 由于还存在其它的文件系统 所以如果我想发现那些文件或者目录占用比较大空间 想释放根文件系统的一些空间 不知道该使用什么命令来查找哪里占用了比较大的空间。运行着两个命令都需要先进入到根目录 因为x这个选项是不去统计这个命令所在的文件系统以外的目录。一种就是使用ncdu这个命令 这个命令需要单独安装。原创 2024-08-26 02:39:42 · 223 阅读 · 0 评论 -
shell的大小写转换
{v1^^} #全部转大写。${v1,} #全部转小写。原创 2024-08-17 04:18:44 · 78 阅读 · 0 评论 -
如何使用sed替换文件中指定行后的特定字符串
该命令用于替换3631行之后的内容 将DEDICATED替换为SHARED。原创 2024-08-11 02:29:33 · 112 阅读 · 0 评论 -
如何更改ldap用户在local node上的默认shell
所以我就想更改这个ldap用户在我的local node上的默认shell 为/bin/bash。我尝试在/etc/kshrc的最后一行添加了export PS1="[使用getent命令获取当前系统为这个ldap用户分配的用户id。因为我发现我的ldap用户的默认shell是ksh 很不好用。然后根据这个信息在/etc/passwd里面做出相应修改。我更改目录后命令提示符上的目录没有发生更改。但是发现当前目录好像是不起作用。想设置ksh的命令提示符。原创 2024-03-15 02:43:16 · 466 阅读 · 0 评论 -
shell中反斜杠的作用
1.转义字符:\ 用于转义字符,可以将特殊字符转义为字面量。例如,使用 \ 可以将双引号 " 或单引号 ’ 转义,使其成为字符串的一部分而不是分隔符。5.特殊字符序列:\ 跟随特定字符可以表示一些特殊的字符序列,例如 \n 表示换行符,\t 表示制表符等。2.换行符:在双引号字符串中,\ 可以用于表示换行符,将一行的内容拆分为多行,以提高可读性。4.字符串连接符:\ 可用于将多行字符串连接在一起,使得多行字符串可以作为单个字符串处理。3.续行符:\ 也可用作续行符,用于将一行的命令拆分为多行编写。转载 2023-12-26 03:19:18 · 389 阅读 · 0 评论 -
vim的代码折叠功能
vim代码折叠转载 2023-12-20 01:26:48 · 180 阅读 · 0 评论 -
linux里面上下键出现乱码及退格键出现乱码的解决方法
linux里面出现上下键乱码的原因是因为该用户的默认shell不对,所以可以在/etc/profile里面加入一行 bash,就可以将默认shell设置为bash。原创 2023-05-18 03:07:19 · 680 阅读 · 0 评论 -
在使用rm删除文件时如何剔除某个文件
在使用rm删除文件时如何保留某个文件原创 2023-04-16 09:00:47 · 1324 阅读 · 0 评论 -
关于标准输出和错误输出
关于标准输出和错误输出转载 2023-04-05 08:57:54 · 109 阅读 · 0 评论 -
shell的双引号的问题
shell的双引号的问题原创 2022-08-03 00:32:59 · 467 阅读 · 0 评论 -
一个关于shell并行比较好的帖子
一个关于shell并行比较好的帖子 可以设置并行度转载 2022-07-08 01:51:21 · 77 阅读 · 0 评论 -
shell中的dollar符号加叹号是什么意思
shell中的$!是最后执行的后台进程的进程号[root@stbm000019-vm13 ~]# cat 1.sh#!/usr/bin/shecho sleep 69 secondssleep 69 &process_id=$!echo process id : $process_idecho sleep end[root@stbm000019-vm13 ~]# ./1.shsleep 69 secondsprocess id : 166956sleep end[root@原创 2022-05-16 09:17:48 · 273 阅读 · 0 评论 -
sed实现在包含特定关键字的行前插入文本
我们在包含这个特定关键字DIRECTORY的行前插入几行文本[oracle@scaqai06adm07 script_67]$ cat test1.sh#!/usr/bin/expectset HOSTNAME $1set DIRECTORY $2set CMD $3set timeout -1spawn ssh root@$HOSTNAMEexpect {"*continue connecting (yes/no)*" { send "yes\r" ;exp_continue} "*原创 2022-05-13 08:32:47 · 757 阅读 · 0 评论 -
linux如何运行图形界面remotely在OEL8上
其实对linux如何运行图形界面remotely一直搞得不是特别懂因为EXADATA没有vncserver,所以需要借助其它机器的图形界面原来一般是在一个OEL7机器上开一个vncserver,然后连上这个vnc,运行xhost +然后就是ssh到哪个exadata机器,然后export DISPLAY=oel7_host_name:1然后就可以访问图形界面了最近因为原来的OEL7升级到了OEL8,发现原来的方式不可行了,总是不成功。经过一段时间的探索,其实也没搞清楚,但是可以成功的连上图形界面原创 2022-05-05 08:12:04 · 259 阅读 · 0 评论 -
linux执行命令时在前面加斜杠的原因
加斜杠的原因是为了避免执行别名的命令我们看到其实机器上是设置了vi实际上是vim,但是由于机器上没有安装vim所以执行vi的时候会报错,加斜杠就可以绕过别名alias,然后执行真正的vi[root@scaqai06adm07 wgz]# alias | grep vialias vi='vim'[oracle@scaqai06adm07 wgz]$ vi install.sh-bash: vim: command not found[oracle@scaqai06adm07 wgz]$ \v原创 2022-05-03 11:11:21 · 1322 阅读 · 0 评论 -
如何避免ssh过程中出现提示Are you sure you want to continue connecting (yes/no/[fingerprint])?
修改下列参数StrictHostKeyChecking no可以避免出现这个提示Are you sure you want to continue connecting (yes/no/[fingerprint])?[oracle@stbm000019-vm13 ~]$ ssh stbm000019-vm16The authenticity of host 'stbm000019-vm16 (100.70.4.132)' can't be established.ECDSA key fingerpri原创 2022-05-02 06:34:09 · 5922 阅读 · 0 评论 -
kill -0的作用
kill -0可以用来检测进程是不是还存在,是不是还正常https://www.jianshu.com/p/99136ee7fced转载 2022-05-01 01:54:50 · 357 阅读 · 0 评论 -
shell的select语句
http://www.178linux.com/38766select 循环与菜单select variable in listdo 循环体命令doneselect 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输入用户输入菜单列表中的某个数字,执行相应的命令用户输入被保存在内置变量REPLY 中。select 是个无限循环,因此要记住用break 命令退出循环,或用exit 命令终止脚本。也可以按ctrl+c 退出循环。select 经转载 2022-04-28 07:38:15 · 437 阅读 · 0 评论 -
Linux shell条件判断if中的-a到-z的意思
https://www.jb51.net/article/145131.htm[ -a FILE ] 如果 FILE 存在则为真。[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。[ -d FILE ] 如果 FILE 存在且是一个目录则为真。[ -e FILE ] 如果 FILE 存在则为真。[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。[ -g FILE ] 如果 FILE 存在转载 2022-04-25 07:36:59 · 2248 阅读 · 0 评论 -
交互式shell和非交互式shell所调用脚本的区别
https://www.csdn.net/tags/MtzaEg0sMzcyNzctYmxvZwO0O0OO0O0O.html环境变量——bash shell使用环境变量来存储系统相关数据,并允许将数据存储在内存中。环境变量分为:全局环境变量本地环境变量目录全局环境变量本地环境变量设置全局环境变量删除环境变量PATH全局环境变量设置系统环境变量的相关文件(登录、非登录、交互、非交互shell)一、全局环境变量在当前shell和子shell都可见可以用printenv命令查看全局环境变转载 2022-04-23 08:21:24 · 794 阅读 · 0 评论 -
cp命令如果做到不需要确认覆盖
https://www.cnblogs.com/tonnytong/p/13889715.htmlcp命令因为是系统中定义了一个别名 alias,所以我们如果不加路径,执行cp的时候其实是在执行cp的别名Linux下默认cp命令是有别名(alias cp=‘cp -i’)的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供Linux下cp 覆盖方法.取消cp的alias,放心这不是永久生效#unalias cp#cp a /test/a用 \cp 执行cp命令时不走alia转载 2022-01-30 08:38:45 · 1334 阅读 · 0 评论 -
nohup和&的区别
https://blog.csdn.net/hl449006540/article/details/80216061?utm_medium=distribute.pc_relevant.none-task-blogdefaultbaidujs_baidulandingword~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3https://mp.weixin.qq.com/s/nyT-F转载 2022-01-30 01:59:49 · 51 阅读 · 0 评论 -
shell的time命令
shell的time命令可以显示一个脚本的运行时间对于性能调优会有一个指示作用[oracle@slcm05adm01 test_04031_20220107]$ cat test_main.sh#!/usr/bin/shexport ORACLE_HOME=/u01/app/orabase/21c/dbhome1export PATH=$ORACLE_HOME/bin:$PATHfor i in {1..10}do{ sleep 1 echo $i}&donewa原创 2022-01-08 01:51:21 · 2190 阅读 · 0 评论 -
关于bash的启动运行的文件
https://www.cnblogs.com/lege/p/4308662.html关于bash启动运行的文件,这个文章写的不错,参考一下关于bash的启动运行的文件工作上经常碰到环境变量不对,bash运行行为和自己期望的不一致,于是想花点时间看看bash.说起来,这件事情应该再简单不过了,看看bash手册上写的便是了.http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files但是坦白来说,我花了很长时间才看明转载 2021-12-21 09:14:56 · 393 阅读 · 0 评论 -
将 IFS 中的空白符(换行、制表符、空格)修改为仅包含换行
将 IFS 中的空白符(换行、制表符、空格)修改为仅包含换行https://www.cnblogs.com/greenhui/p/13547036.html转载 2021-03-10 05:26:21 · 729 阅读 · 0 评论 -
解决crontab时间和系统时间不一致的问题
今天发现有一台机器,同样一个脚本,在shell里调用获取的时间和在crontab里调用获取的时间差几个时区,经过分析,发现问题在于/etc/localtime这个文件指向的时区文件和别的机器不一样删除重建该软连接之后问题解决[root@rwsaa193 ~]# ls -al /etc/localtimelrwxrwxrwx 1 root root 23 Jun 19 2019 /etc/localtime -> /usr/share/zoneinfo/UTC [root@rwsaa193转载 2021-02-27 23:34:14 · 698 阅读 · 0 评论 -
linux中${bash_source[0]}和$0的区别
一个shell(bash)脚本有两种执行方式:直接执行,类似于执行二进制程序source加载,类似于加载库文件$0保存了被执行脚本的程序名称。注意,它保存的是以二进制方式执行的脚本名而非以source方式加载的脚本名称。例如,执行a.sh时,a.sh中的$0的值是a.sh,如果a.sh执行b.sh,b.sh中的$0的值是b.sh,如果a.sh中source b.sh,则b.sh中的$0的值为a.sh。除了$0,bash还提供了一个数组变量BASH_SOURCE,该数组保存了bash的SOURCE调转载 2021-02-27 19:02:50 · 4663 阅读 · 1 评论 -
linux date命令的详细用法
%_H和%k等同,就是填充空格,默认是填充数字0填充空格,在编程时容易导致混乱,一个字符串变成了两个以空格分隔的字符串[crsusr@rwsaa192 script_wgz]$ date '+%Y%m%4d_%_H%M%S'2021020027_ 23018[crsusr@rwsaa192 script_wgz]$ date '+%Y%m%4d_%k%M%S'2021020027_ 23028我们还可以定义某个域的宽度,宽度放在%后面 ,十进制数字下面的例子就是将秒这个域设置为4位[cr转载 2021-02-27 18:35:17 · 399 阅读 · 0 评论 -
使用cut截取特定的子字符串
[crsusr@rwsaa192 ~]$ DT=`date '+%Y%m%d-%H%M%S'`[crsusr@rwsaa192 ~]$ echo $DT20210225-194114选取第九个字符,从头开始数第九个字符[crsusr@rwsaa192 ~]$ echo $DT | cut -c 9-截取第十到第十一个字符[crsusr@rwsaa192 ~]$ echo $DT | cut -c 10-1119从第十个字符到末尾[crsusr@rwsaa192 ~]$ echo原创 2021-02-26 11:47:49 · 550 阅读 · 0 评论 -
Linux错误:warning: here-document at line 5 delimited by end-of-file (wanted `EOF`
https://blog.csdn.net/weixin_42575593/article/details/83686244[oracle@scaqad02adm01 lstorm]$ ./operation_stress_ancestor.sh ddd cdb1/u01/wgz/lstorm/operation_stress_parent.sh: line 12: warning: here-document at line 4 delimited by end-of-file (wanted EOF转载 2021-01-31 23:23:24 · 2565 阅读 · 0 评论 -
tee命令的妙用
如果你想把标准输出和错误输出都重定向到一个文件,那么命令如下:command 2>&1 | tee -a loghttps://blog.csdn.net/codingstandards/article/details/83774388?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc转载 2021-01-31 12:42:08 · 442 阅读 · 0 评论 -
如何确保ssh不因超时中断
首先需要设置/etc/ssh/sshd_config参数值不能设置太大,我原来将ClientAliveInterval设置位6000,将ClientAliveCountMax 设置位1000,发现过一段时间ssh还是会中断。相反将ClientAliveInterval设置为600,将ClientAliveCountMax设置为300,到是可以长时间不中断。[root@rwsaj15 ~]# cat /etc/ssh/sshd_config | grep -i clientaliveClientAliv原创 2020-12-21 09:58:40 · 527 阅读 · 0 评论 -
解决ssh过程中碰到的错误Too many authentication failures
加选项-i id_rsa -o ‘IdentitiesOnly=yes’[crsusr@rwsaa192 .ssh]$ ssh -i id_rsa oracle@scaqai06adm07Received disconnect from 10.133.41.213 port 22:2: Too many authentication failuresAuthentication failed.[crsusr@rwsaa192 .ssh]$ ssh -i id_rsa -o 'Identities原创 2020-12-17 17:53:04 · 1721 阅读 · 0 评论 -
shell的并行执行
第一部分加()&是并行执行一段程序,第二段将 ()&注释掉,是串行执行一段程序,从执行时间上可以看出来区别并行执行耗费了九秒,为三次调用最长的那个耗时,串行执行耗时18秒,为三次调用的时间之和[oracle@scaqad02adm01 lstorm]$ cat t.sh#!/usr/bin/shset -o nounsetdemo (){ PARAM_1=$1 PARAM_2=$2 for i in $( seq 3) do echo $PARAM_1 $PARAM_2原创 2020-12-13 12:12:09 · 1286 阅读 · 0 评论 -
一个迷惑不解的linux命令 在echo里包含 *
在某个目录下 运行 echo *会显示该目录下的所有文件在shell脚本里,如果先进入到一个目录然后 在echo里如果包含了*这个符号,则会输出该目录下的所有的文件名我的本意是想用*做分隔符的cd $LOG_DIRecho _${i}_ has *** $LOG_NUM *** logs...原创 2020-12-12 18:52:49 · 582 阅读 · 2 评论 -
seq与Shell序列生成
[oracle@scaqad02adm01 lstorm]$ ./t.sh12345[oracle@scaqad02adm01 lstorm]$ cat t.sh#!/usr/bin/shset -o nounsetAMOUNT_WORKLOAD=5for i in $( seq $AMOUNT_WORKLOAD )doecho $idonehttps://www.cnblogs.com/chinas/p/7101887.html有时候可能有这样的需要:用Shell生成类似0转载 2020-12-11 14:37:46 · 534 阅读 · 0 评论 -
Shell script: 如果变量没定义
https://www.jianshu.com/p/3c375b5a6b5b使用未定义变量的风险文章[1]中给出了一个例子,chroot=$1…rm -rf $chroot/usr/share/doc运行这段代码,如果用户忘了输入参数,则系统目录下的文档全部被删掉了。2 对策set -u或set -o nounset前者是缩写,后者是完整表达方式。使用“set -u”,可以使脚本在遇到未定义变量时终止运行。3 在不确定变量是否被定义时,为其赋缺省值格式:变量名=${变量名:-[转载 2020-12-09 22:34:53 · 742 阅读 · 0 评论 -
Shell break和continue跳出循环详解
使用 while、until、for、select 循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用 break 或者 continue 关键字。在C语言、C++、C#、Python、Java 等大部分编程语言中,break 和 continue 只能跳出当前层次的循环,内层循环中的 break 和 continue 对外层循环不起作用;但是 Shell 中的 break 和 continue 却能够跳出多层循环,也就是说,内层循环中的 break 和 continue 能够跳出外转载 2020-12-09 22:29:47 · 367 阅读 · 0 评论 -
vim的配置文件详解
https://blog.csdn.net/qq_41113081/article/details/100152358set nocompatible " 关闭 vi 兼容模式syntax on " 自动语法高亮set number " 显示行号set cursorline " 突出显示当前行set ruler " 打开状态栏标尺set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4set softtabstop=4 " 使得按退格键时可以一转载 2020-12-02 18:48:34 · 866 阅读 · 0 评论 -
shell的三元运算符:-
$1代表输入的第一个参数${1:-12}表示如果在调用该脚本的时候如果输入了第一个参数,则var_1的值为第一个参数,否则var_1的值为12var_1 = ${1:-12}$1 :代表传入的第一个参数。如果$1存在并且不为空那么var_1=$1,否则就是var_1=12;:-为三元运算。$0:代表执行脚本的名字。$1,$2,$3等等代表一次传入的参数。$#代表参数个数。$$ 代表当前脚本的运行进程ID(PID)$? 代表执行完上一个指令的执行结果。...原创 2020-12-02 13:29:22 · 2903 阅读 · 1 评论