Articles of bash

从bash获取并打印$ PATH目录

我必须写的脚本必须从$PATHvariables中find目录,并只打印以i结尾的目录。 我怎么想这样做 使用for循环从variables中获取每个目录。 find每个目录的长度,并使用子string从每个目录中获取最后一个字符 使用If条件打印以i结尾的目录 问题 这些目录不是用新行分隔的,我不能用for循环读取它们。 关于如何解决这个问题的任何想法,或者你能想出更合适的事情。

HBase不会运行./start-hbase.sh – 权限被拒绝?

我想运行HBase。 我已经完全安装了hadoop,当我运行start-all.sh ,它工作正常,给了我这个输出: hduser@CSLAP106:/usr/local/hadoop/bin$ jps 11956 SecondaryNameNode 12046 JobTracker 12193 TaskTracker 11800 DataNode 11656 NameNode 12254 Jps 但是,当我想运行start-hbase.sh ,它给了我一些权限被拒绝的错误,我不明白为什么: hduser@CSLAP106:/usr/local/hbase/hbase-0.94.6.1/bin$ ./start-hbase.sh localhost: starting zookeeper, logging to /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.out localhost: /usr/local/hbase/hbase-0.94.6.1/bin/hbase-daemon.sh: line 150: /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.log: Permission denied localhost: head: cannot open '/usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.out' for reading: No such file or directory /usr/local/hbase/hbase-0.94.6.1/bin/hbase-daemon.sh: line 150: /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-master-CSLAP106.log: Permission denied head: cannot open […]

ls中的新行格式

我发现ls -1会给出新的行 然而当试图执行以下 echo `recover -s ttlhydnwr -c tphtpsd2<<EOF ls -1 *.arc exit EOF` > logger.log logger.log包含如下所示的单行输出 arch_aceprod_1_130836_743034701.arc arch_aceprod_1_130837_743034701.arc arch_aceprod_1_131278_743034701.arc arch_aceprod_1_131279_743034701.arc arch_aceprod_1_136607_743034701.arc arch_aceprod_1_136608_743034701.arc arch_aceprod_1_140913_743034701.arc arch_aceprod_1_144278_743034701.arc arch_aceprod_1_144279_743034701.arc arch_aceprod_1_163776_743034701.arc arch_aceprod_1_164783_743034701.arc arch_aceprod_1_164784_743034701.arc arch_aceprod_1_180828_743034701.arc arch_aceprod_1_180829_743034701.arc arch_aceprod_1_186703_743034701.arc arch_aceprod_1_186704_743034701.arc arch_aceprod_1_186710_743034701.arc arch_aceprod_1_186711_743034701.arc arch_aceprod_1_188497_743034701.arc arch_aceprod_1_188498_743034701.arc arch_aceprod_1_188537_743034701.arc arch_aceprod_1_188538_743034701.arc arch_aceprod_1_188543_743034701.arc arch_aceprod_1_188544_743034701.arc arch_aceprod_1_188546_743034701.arc arch_aceprod_1_188547_743034701.arc arch_aceprod_1_188580_743034701.arc arch_aceprod_1_188581_743034701.arc arch_aceprod_1_188777_743034701.arc arch_aceprod_1_188778_743034701.arc arch_aceprod_1_192501_743034701.arc arch_aceprod_1_192502_743034701.arc arch_aceprod_1_192549_743034701.arc arch_aceprod_1_205758_743034701.arc arch_aceprod_1_205759_743034701.arc arch_aceprod_2_170900_743034701.arc arch_aceprod_2_170901_743034701.arc arch_aceprod_2_170902_743034701.arc […]

如何压缩90天的旧文件,并使用bash在Linux中将其移动到特定的文件夹

我的文件夹中有很多文件。 我想压缩90天以前的文件,然后将其从FILES文件夹中删除,并使用bash在Linux中将其移动到ARCHIVES文件夹中。 这是我的文件夹结构: 根@用户:在/ var / FILES 根@用户:在/ var /档案 我已经创build了一个压缩文件的脚本,但不知道如何指定文件的年龄 zip -r zipped.zip *.* 所以我编码的东西 FILE=find *.* -mtime +90 zip -r zipped.zip $FILE 但只返回错误。 谢谢

错误时,sudo apt-get安装php5-cli

我正在使用linux mint。 我试图安装php5-cli,但执行后相应的bash命令我有以下日志: Reading package lists… Done Building dependency tree Reading state information… Done php5-cli is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 353 not upgraded. 4 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Do you want to continue […]

避免col的32KB长度限制

我使用python来屏蔽从路由器和交换机中的大量文本,并用脚本logging会话。 通常我用以下方法清理脚本会话: touch a_clean_script_file.txt; col -bx <a_script_file.tmp > a_clean_script_file.txt 由于我不想涉及的原因,我发现了一个问题。 col每行的最大限制为32KB 1 : [mpenning@hostname tmp]$ ### 128KB characters, using normal shell pipes [mpenning@hostname tmp]$ printf 'z%.0s' {1..131072} | wc -c 131072 [mpenning@hostname tmp]$ ### 128KB characters, using col (limited to 32KB) <—- [mpenning@hostname tmp]$ printf 'z%.0s' {1..131072} | col -bx | wc -c 32769 [mpenning@hostname […]

并行SVN更新过程

我需要在相同的文件夹结构背景下执行多个SVN更新进程,因为我有许多子文件夹,并希望加速整个事情。 我有这样的文件夹结构: /folder/subfolder1/ /folder/subfolder2/ /folder/subfolder3/ … /folder/subfolder1000/ 我想在bash脚本中做这样的事情: svn up /folder/subfolder1 & svn up /folder/subfolder2 & svn up /folder/subfolder3 & 问题在于SVN抱怨'/文件夹'被locking,只有第一个任务完成正确,另外两个没有得到像这样的错误信息: svn: Working copy '/folder' locked svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 有没有一种方法可以用几个并行的SVN进程来完成这个任务,因为做一个一个的文件夹(由其他进程select)需要很多时间才能完成? PS:我正在使用更高级的编程语言(PHP-CLI)来完成所有这些工作,但为了简化问题,我将其编写为bash脚本(遇到同样的问题)。

试图了解一个简单的Linux代码

我想弄清楚以下命令在Linux中意味着什么 awk 'match($0, "##SA") ==0 {print $0} ' $1 > ${G_DEST_DIR}/${G_DEST_FILENAME} 它是否从给定参数中删除第一行并将其置于dest_dir下?

将自动更新的文本输出到屏幕和文件

我试图采取我已经更新我的系统的脚本,并将其输出到文件和屏幕的文本。 除了我的更新pipe理器, pacman ,输出相同types的文本,比如wget ,这很简单。 这里有一些示例输出。 core 107.0 KiB 392K/s 00:00 [################################################################] 100% extra 1531.8 KiB 719K/s 00:02 [################################################################] 100% community 2.1 MiB 818K/s 00:03 [################################################################] 100% 当我尝试使用tee将这种输出redirect到一个文件时,这是我得到我的屏幕和文件的输出。 :: Synchronizing package databases… downloading core.db… downloading extra.db… downloading community.db… 我知道这是因为pacman使用缓冲区输出到屏幕,但我仍然希望有一种方法,我可以输出到屏幕和文件的状态,而不仅仅是“下载xyz …”。 预先感谢您的任何帮助。 编辑: 我目前没有更新,但是这里有一些与安装Opera浏览器非常相似的示例输出。 百分比和英镑符号的行是随着下载进度而更新的缓冲区。 resolving dependencies… looking for inter-conflicts… Packages (1): opera-12.16.1860-2 Total Download Size: […]

使用Bash脚本来查找文件的平均值

我正在尝试编写一个bash脚本来读取文件'names.txt',并将计算人物等级的平均值。 例如,names.txt看起来像这样。 900706845 Harry Thompson 70 80 90 900897665 Roy Ludson 90 90 90 脚本应该读取行,打印出人的ID号,三个testing分数的平均值和相应的字母等级。 所以输出需要看起来像这样 900706845 80 B 900897665 90 A 下面是我的 #!/bin/bash cat names.txt | while read x do $SUM=0; for i in 'names.txt'; do SUM=$(($SUM + $i)); done; echo $SUM/3 done 我知道回声只会打印出平均值,但我试图让它在我尝试其他部分之前计算平均值。 宝贝步骤!