标签: command-line-interface

cd + bash补全脚本

我有网络项目/var/www/projects/some/long/path/strange-project-name

现在我想在终端输入:

webs str{TAB}
Run Code Online (Sandbox Code Playgroud)

它应该自动完成webs strange-project-name(基于ls /var/www/projects/some/long/path/),并且在执行命令后,pwd应该指向项目路径。cd strange-project-name自动完成功能有点智能

您将如何实现此功能?一些智能别名?函数在.bashrc? 脚本?

一些智能别名?

ubuntu bash command-line-interface

1
推荐指数
1
解决办法
1092
查看次数

如何找出当前正在运行的进程正在写入的日志文件名?

我们每分钟都会设置一个基于 cron 的 Java 程序调用。该 Java 程序调用是用 shell 脚本编写的,并设置为cron作业。每个调用的 Java 程序都定向到其自己单独的日志文件(使用日期和时间作为文件名,精确到分钟),如下所示:

调用javaprogram.sh

DATE=`date +%Y-%m-%d_%H-%M`
/usr/java/jdk1.6.0/bin/java -Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError MyJavaProgram 2>&1 >> $DATE.log | tee -a $DATE.err >> $DATE.log &
Run Code Online (Sandbox Code Playgroud)

例如,我可以使用以下命令随时查找当前正在运行的Java进程(MyJavaProgram):

[root@user ~]# ps -ef |grep MyJavaProgram
user    4321     1  0 Oct17 ?        00:00:17 /usr/java/jdk1.6.0/bin/java -Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError MyJavaProgram
user    5747     1  0 Oct17 ?        00:00:11 /usr/java/jdk1.6.0/bin/java -Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError MyJavaProgram
Run Code Online (Sandbox Code Playgroud)

我的问题是,我想找出当前正在执行的Java 进程 (MyJavaProgram) 正在写入的实际日志文件名。因此,例如,如果MyJavaProgram当前有 2 个进程正在执行,我想知道每个进程的日志文件名。在这种情况下,我感兴趣/想知道.log扩展文件,尽管有 2 个扩展名 -.log.err …

linux redhat command-line-interface centos

1
推荐指数
1
解决办法
1万
查看次数

运行“ls”的权限被拒绝

我以 root 用户身份运行我的服务器,但尽管如此,当我运行命令时,ls我收到此错误:

bash: /bin/ls: Permission Denied.
Run Code Online (Sandbox Code Playgroud)

我试图更改此文件的权限,chmod但权限也被拒绝。这是什么原因?

permissions command-line-interface

1
推荐指数
1
解决办法
1925
查看次数

找出一个单词包含在哪个文件中的最简单方法是什么?

我在下面的“ lxadmin ”目录中有许多 .conf 文件,并怀疑文本“ tanguay.info ”在其中之一的某个地方。

我执行这个命令:

cat /etc/httpd/conf/lxadmin/* | grep "tanguay.info"
Run Code Online (Sandbox Code Playgroud)

它告诉我:

cat: /etc/httpd/conf/lxadmin/forward: Is a directory
Include /home/httpd/tanguay.info/conf/lxadmin.tanguay.info
Run Code Online (Sandbox Code Playgroud)

所以我知道它在某处,但它没有告诉我在哪个文件中

我怎样才能让它也告诉我文本位于哪个文件中?

linux unix bash command-line-interface

0
推荐指数
2
解决办法
490
查看次数

“ps”命令有没有好的备忘单?

我知道这个问题已经以某种方式被问到了,但我想找到一个很好的备忘单,特别是对于“ps”命令。我一直无法记住有用的选项,主要是因为我每天都使用“top”或“htop”,但“ps”在许多情况下仍然非常有用。

linux command-line-interface

0
推荐指数
1
解决办法
1106
查看次数

SSH 不将标准输出重定向到本地终端

我在 csh 脚本中有以下相关行:

#!/bin/csh -xv
set dvar = `date +"^%m\/%d\/%y"`
set filedate = `date +%b%d%Y`
set grepstring = "grep "\"$dvar\"" </home/user/log/logfile"
set outstring = ">> serverlog_$filedate.txt"
grep "$dvar" <logfile >serverlog_$filedate.txt
ssh SERVER1 \"\"$grepstring\"\" $outstring
Run Code Online (Sandbox Code Playgroud)

本地日志文件上的第一个 grep 效果很好,但 SSH grep 将其输出写入远程目录。

该行是从批处理文件中出来的:

ssh SERVER1 ""grep "^01\/05\/10" <home/user/log/logfile"" >> serverlog_Jan052010.txt
Run Code Online (Sandbox Code Playgroud)

当我输入它时(当然少了一组引号)它工作正常,我只是无法从 csh 脚本中得到它。

你如何让这个命令输出到本地机器上的指定文件?

编辑: 这是由于 womble 起作用的最终结果:

#!/bin/csh
set dvar = `date +"%m\/%d\/%y"`
set filedate = `date +%b%d%Y`

grep "^$dvar" logfile > serverlog_$filedate.txt
ssh SERVER1 grep "^$dvar" /home/user/log/logfile >> serverlog_$filedate.txt
Run Code Online (Sandbox Code Playgroud)

scripting unix ssh command-line-interface redirection

0
推荐指数
1
解决办法
3164
查看次数

crontab 和 echo 的奇怪问题

$ echo -e "test1\ntest2" > logfile

$ echo -e "test1\ntest2" >> logfile

$ cat logfile
test1
test2
test1
test2

$ rm logfile

$ crontab -e
* * * * * echo -e "test1\ntest2" >> logfile

$ sleep 160

$ cat logfile
-e test1
test2
-e test1
test2
Run Code Online (Sandbox Code Playgroud)

为什么我-e在输出中得到 ?crontab 和 bash 都在使用/bin/echo

linux ubuntu command-line-interface cron echo

0
推荐指数
1
解决办法
9752
查看次数

如何从文件中删除某些内容?

我想从文件的每一行中删除一些东西,例如:-

我在文件中有以下路径:/var/lib/svn/repos/b1me/products/payone/generic/code/core/db/fs-type /var/lib/svn/repos/b1me/products/payone/generic /code/fees/db/fs-type /var/lib/svn/repos/b1me/products/payone/generic/code/merchantserver/db/fs-type

我想做点什么成为/var/lib/svn/repos/b1me/products/payone/generic/code/core/ /var/lib/svn/repos/b1me/products/payone/generic/code/fees// var/lib/svn/repos/b1me/products/payone/generic/code/merchantserver/

linux files command-line-interface

0
推荐指数
1
解决办法
116
查看次数

将文件的最后一部分路径存储在变量中?

将文件的最后一部分路径存储在变量中?

我有路径,例如:- $1=/path1/path2/path3

我想存储path3在变量中

x=path3

我如何做到:- 1-windows 2-unix

windows unix bash command-line-interface

0
推荐指数
1
解决办法
172
查看次数

bash 文件在unix中发送电子邮件?

我想编写 bash 文件执行以下步骤:-

将文件复制server1server2

如果(复制成功)

没做什么

如果(复制失败)

发送admin@company.com包含以下信息的电子邮件

文件名 [复制失败]

unix bash command-line-interface sendmail aix

0
推荐指数
1
解决办法
351
查看次数