Articles of bash

Bash – 使用基于字符的graphics工具来存储输出

我正在使用bash脚本在Ubuntu(14.04)服务器的远程拨号程序,我有一些重大的麻烦试图读取它的输出。 我想程序执行,因为我通常会有,然后我有超时命令杀死它,如下所示: #!/usr/bash echo "begin" timeout 60s minicom Cisco -d Boston >> log.txt 我可以在控制台上单独运行上面的命令,但没有任何打嗝,但是当我通过bash运行它时,似乎没有发生任何事情,它经历了超时,但是我只是以log.txt结束了这些字符: ^[[0m^O 在bash脚本中,我有点儿绿色; 是否有附加从graphics工具输出输出的规则? 我真的很困惑,为什么它这样做。

Bash函数挂起时,命令运行完美无function

以下function挂起: ssh() { local RESULTS; RESULTS=$(ssh $USERNAME@$SERVER $SSH_COMMAND1); echo $RESULTS; } ssh; 而如果我运行以下命令他们工作正常: RESULTS=$(ssh $USERNAME@$SERVER $SSH_COMMAND1); echo $RESULTS; 有人可以请指导我正确的方向寻找错误?

这个bash shell别名在哪里configuration?

以root身份login到CentOS 6.5系统时,我运行 ># alias alias cp='cp -i' alias l.='ls -d .* –color=auto' alias ll='ls -l –color=auto' alias ls='ls –color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde' 我想修改所有用户的alias ll='ls -l –color=auto'来alias ll='ls -lha –color=auto' 。 cat /etc/bashrc和cat /root/.bashrc分别为: ># cat /etc/bashrc # /etc/bashrc # System wide functions and aliases […]

哪个开源程序类似于Linux的“对话”命令?

linux 对话框命令是在terminal窗口中创build对话框的好工具(例如在bash脚本中)。 然而, 对话的缺点是窗口总是位于屏幕的中心。 特别是我想使用尾盒function,例如 dialog –tailboxbg MYFILE 20 20 …在文本对话框中显示文件的尾部(就像内置的tail命令一样)。 但是,我想将结果窗口放在屏幕上的不同位置。 例如刚刚在上半部分或下半部分。 对话框不提供这样的function。 有什么办法可以移动对话框提供的窗口,或者有人推荐一个替代工具,这是有能力吗?

使用find来排除一个目录,并将目录中的所有内容都打上tar

我有一个目录下面: DIR1 DIR2 文件1 文件2 我想tar tar除了dir1以外的所有东西 当我做: find . -path '*dir1*' -prune -o -print 我没有在输出中看到dir1(如预期的那样) 但是当我这样做: find . -path '*dir1*' -prune -o -exec tar -czvf documents.tgz '{}' \+ 我发现dir1也在documents.tgz中被tarred了。 为什么?

名为ssh的Bashrc函数不起作用

我在我的bashrc文件中创build了一个函数,当我ssh进入某些东西时,它会自动打开一个tmux会话。 function ssht () { /usr/bin/ssh $@ -t 'tmux a || tmux || /bin/bash' } 这很好,但我不想用ssht,我只想用ssh。 当我从ssht更改function到SSH tmux不打开,但它成功ssh进入机器。 我认为这是行不通的,因为当我调用ssh时,它会忽略bashrc文件中的函数,而是运行ssh。 有什么方法可以使用“ssh”而不是“ssht”

Bash:命令的输出只写到屏幕上,而不是在使用T恤时写入另一个文件,可能是什么原因?

为了解决一些ftp连接错误,我被指示编写一个bash脚本,它将无限连接到一个远程frp服务器并从那里获得一个文件。 ftpuser="ftpuser" ftppasswd="ftppasswd" ftpsrv="download.akamai.com" log="/var/log/test_ftp_akamai.log" function print_log { echo $(date +'%d-%m-%y %H:%M:%S') $* >> $log } while true do print_log "—–===== Start =====——" | tee -a $log /usr/bin/wget ftp://$ftpuser:$ftppasswd@$ftpsrv | tee -a $log sleep 2 | tee -a $log print_log "—–===== Done =====——" | tee -a $log done 该脚本正常工作,但打印到屏幕上的wget行的输出也应该被logging到日志中,但由于某种原因,只有它不被写入日志。 例: [root@sjorigin1 ~]# tailf /var/log/test_ftp_akamai.log 25-02-15 […]

FTP文件传输,通过目录循环并复制旧文件

我想移动超过30天的文件并将其复制到远程FTP服务器。 我已经写了这个脚本,可以通过FTP连接。 通常,要移动文件,我会运行这一行: find ./logs/ -type f -mtime +30 -exec mv {} destination \; 问题是FTP不能识别该命令。 所以我想我应该循环浏览文件,只移动那些超过30天的文件。 但我不是bash的专家。 任何人都可以帮我吗? #!/bin/bash HOST=xxx #This is the FTP servers host or IP address. USER=xxx #This is the FTP user that has access to the server. PASS=xxx #This is the password for the FTP user. # Call 1. Uses the […]

顶部命令+如何validationIOWAIT值一小时

我的目标是从top命令中检查不高于50的iowait值 如果价值高于50多个小时,则需要对此发出警报(通过脚本或其他选项) 我到现在为止做的是: top-n|grepiowait CPUstates:94.3%idle,0.5%user,5.2%kernel,0.0%iowait,0.0%swap 我可以很容易地捕捉到爱荷华州如下: top-n|grepiowait|awk'{print$9}'|seds'/%//' 0.0 但如何validation至less一个小时以上的50以上的爱奥华值?

如何SSH和使用个人bashrc没有断开连接

在继续工作之前,我希望能够ssh到远程主机并运行一些重复的命令。 我一直在尝试下面的命令,没有运气: ssh [email protected] 'source /path/to/my/bashrc; ls /logs' 命令运行正常,但是我没有提交一个shell来继续我的工作。 我在这里错过了什么?