Articles of shell

在Linux中重新启动文件更改过程

有一个简单的解决scheme(使用常见的shell utils,通过由大多数分布提供的util,或一些简单的python / …脚本)来重新启动一个进程时,一些文件的变化? 只要简单地称呼一下,就好像watch -cmd "./the_process -arg" deps/* 。 更新:一个简单的shell脚本和build议的inotify-tools(nice!)一起适合我的需求(适用于不带参数的命令): #!/bin/sh while true; do $@ & PID=$! inotifywait $1 kill $PID done

在bash中打开默认的文本编辑器?

我正在写一个shell脚本,遇到了一个问题。 有没有办法使用用户指定的文本编辑器打开文件?

shell脚本工作正常,没有shebang线? 为什么?

我正在写一个简单的shell脚本,发现我的shell脚本不需要shebang行 #!/bin/sh 如果我给予我的脚本执行权限并执行使用./myscript.sh 。 它运行良好。 我正在使用bash shell, /bin/sh实际上是指向bash 。 lrwxrwxrwx 1 root root /bin/sh -> bash 我知道shebang行用于告诉shell哪个解释器用于脚本的其余部分。 如果我错过了perl中的shebang行,给予执行权限并运行./myscript.pl ,它不起作用。 这里究竟发生了什么? 如果我用./ ,什么时候真的需要?

需要ps的pri标准格式说明符的解释 – 可能在文档中的错误

ps手册页上的pri注释: “pri优先级的过程。更高的数字意味着更低的优先级” 在这里考虑PID 26073 $ renice +15 26073 26073: old priority 5, new priority 15 # I am making this process more nice $ ps -t 1 -o pid,ppid,%cpu,stat,cmd,bsdstart,time,pri PID PPID %CPU STAT CMD START TIME PRI 9115 18136 0.0 Ss bash 17:10 00:00:01 19 26073 9115 12.0 RN+ p4 sync 19:06 00:02:56 4 STAT […]

linux历史命令

如果我键入历史命令,我只能查看1000行。 我想查看更多。 这将是很好如果我可以查看所有命令之间键入某些date或几个月。 这可能吗? 如果是的话,该怎么做?

1小时前修改的文件列表

嗨,我想在60分钟内修改文件的列表。 bash-3.2$ find . -mmin 60 -type f find: bad option -mmin find: [-H | -L] path-list predicate-list bash-3.2$ /usr/xpg4/bin/find . -mmin 60 -type f /usr/xpg4/bin/find: bad option -mmin /usr/xpg4/bin/find: [-H | -L] path-list predicate-list bash-3.2$ utibbwdev1#uname -a SunOS utibbwdev1 5.10 Generic_150400-13 sun4v sparc SUNW,T5240 我收到上述错误。 我的操作系统是太阳版5.10。

在XServer启动后运行shell脚本?

如何在XServer启动时运行shell脚本,也可以运行lightdm。 我在/ etc目录下尝试了init.d和rc.local,但是我的脚本正在调用gui应用程序,所以我需要在XServer启动后运行它。 我正在使用Debian Jessie。

ssh命令输出保存在shell脚本中的文本文件中

我想编写shell脚本,其中我使用ssh命令。 无论输出,我将通过SSH命令获得我想保存在文本文件或varibale,所以我可以在我的shell脚本中使用此。 目前我输出保存在一个variables,但是当我在ssh命令之外使用该variables时,值显示为空白。 代码是 ssh hostname -c "' `pwd`; var=$(ps -ef | grep Consumer | cut -f6 -d' ') '"; echo $?; echo "vbar $var"; 当我打印时,var值是空的。

UDF结果错误

我尝试安装“mysqludf_sys”。 但是我得到这个错误: ERROR 1126 (HY000) at line 29: Can't open shared library 'lib_mysqludf_sys.so' (errno: 0 /usr/lib/mysql/plugin/lib_mysqludf_sys.so: cannot open shared object file: No such file or directory) ERROR: unable to install the UDF 所以,我试图通过Makefile中的以下修改来解决这个问题: LIBDIR=/usr/lib to LIBDIR=/usr/lib/mysql/plugin 还要确保gcc具有-fPIC选项,即: gcc -fPIC -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so 但是,当我testingsys_eval,我得到: mysql> SELECT sys_eval('id'); +—————-+ | sys_eval('id') | +—————-+ […]

将一个月中的bash脚本调用更改为一周

我在bash中有两个脚本,我有一些文件: transaction-2012-01-01.csv.bz2 transaction-2012-01-02.csv.bz2 transaction-2012-01-03.csv.bz2 transaction-2012-01-04.csv.bz2 . . transaction-2012-01-31.csv.bz2 transaction-2012-02-01.csv.bz2 . . transaction-2012-02-28.csv.bz2 我有一个脚本叫script.sh cat script.sh YEAR_MONTH=$1 FILEPATH="transaction-$YEAR_MONTH*.csv.bz2" bzcat $FILEPATH|strings|grep -v "code" >> output 如果你需要调用脚本,你可以使用其他脚本 cat script2.sh LAST_MONTH=$(date -d -1month +%Y"-"%m) if [ $# -eq 1 ]; then DATE=$1 else DATE=$LAST_MONTH fi script.sh $DATE 1>output$DATE.csv 2>> log.txt 它在一个月内捕获这些文件,但是现在我需要在一年中的特定一周内调用脚本: bash script2.sh 2012-01 其中2012是一年,01是一个月 现在我需要调用脚本: bash script2.sh 2012 […]