Questions tagged «bash»

Bash(Bourne-Again SHell)是默认情况下在Ubuntu命令行界面中使用的shell。



3
[rm]在“ rm -rf filename [co]”命令中是什么意思?
假设我在中有两个文件/tmp: root@ubuntu:~# touch /tmp/hello.{pyc,py} root@ubuntu:~# ls /tmp/ hello.py hello.pyc 现在,让运行rm -rf带有[co]选项的命令 root@ubuntu:~# rm -rf /tmp/hello.py[co] root@ubuntu:~# ls /tmp/ hello.py 有人可以解释一下这里发生了什么吗?是什么[co]参数?我们如何使它适用于其他扩展?说我有foo.js和foo.coffee文件,我们可以做些rm -rf /tmp/foo.coffe[co]删除/tmp/foo.js吗?
16 command-line  bash  rm 


2
非sudo替代/ usr / local / bin的通用脚本
我习惯于放置通用脚本,/usr/local/bin以便可以在终端的任何位置执行它们。 例如,我制作了一个名为的shell脚本1,使其与一起执行chmod +x 1并放入/usr/local/bin,然后在#!/bin/sh第一行中键入的脚本内,然后是我的命令。从那里开始,它非常方便使用并且可以通过键入快速执行 1Enter 在终端上的任何文件夹中 我的问题是我当前正在无法执行的计算机上工作,sudo而且我也无法期望得到它,因此我无法将脚本放在中/usr/local/bin。 我有什么选择?是否存在另一条具有相同“从任何地方运行”功能的路径,而我无需使用它也可以访问该路径sudo,或者是否可以通过另一种方式获得等效的效果? 这个帖子的公认答案说 对于用户范围内的脚本,请在主目录中使用bin /。 我尝试过,但是bin主目录中没有文件夹,创建文件夹时,仍然无法从其他任何位置运行脚本。 我在Ubuntu 12.04 LTS上运行。

3
将输入删除回最后一个正斜杠
我经常会在服务器上的几个文件之间移动。我将依次运行以下示例命令: nano /web/site/path/to/file /web/site/script.py nano /web/site/path/to/anotherFile nano /web/site/path/to/yetAnotherFile /web/site/script.py nano /web/site/path/to/etc nano当前要从一个命令转到下一个命令,请按Up和Backspace替换路径的最后一段。问题是我真的很懒。 是否有键盘快捷键(或Bashism),它可以: 被最后使用的路径替换(末尾有一个额外的位) 在当前行中删除(例如按Up)回到最后一行/

2
打开带有多个选项卡的终端并执行应用程序
我是linux shell脚本的新手。我想编写一个shell脚本,它将打开带有多个选项卡的终端;它应该在每个标签中运行rtsp客户端应用。 为此,我在这个论坛上经历了一个问题,并尝试像下面这样编写代码, tab="--tab-with-profile=Default -e " cmd="java RunRTSPClient" for i in 1 2 3 4 5 do # foo="$foo $tab $cmd" done gnome-terminal $foo exit 0 它正在运行,并打开带有选项卡的终端窗口,但突然它将关闭。我没有任何错误。

3
如何使终端中的用户名更小?
当您打开终端时,它将显示用户名和机器名称。如我的示例所示:romeo@romeo-Satellite-C660D:~$。这真的很烦,因为它很大。我可以将其缩小,例如只显示罗密欧吗? 我知道这听起来很愚蠢,但是我是基于Unix操作系统的新手。

3
运行任何命令都会在Ubuntu Server上返回“无法分配内存”
我正在使用Ubuntu 14.04。最近,当我使用具有sudo特权的用户通过SSH登录时,我运行的每个命令都会导致“无法分配内存”错误。这是我在控制台上尝试过的一些方法 myuser@mymachine:~$ whoami -bash: fork: Cannot allocate memory myuser@mymachine:~$ uname -a -bash: fork: Cannot allocate memory 即使我尝试sudo reboot now也遇到上述错误,所以我不知道还能尝试解锁我的实例什么。主机是DigitalOcean(如果重要)。 编辑:根据此处给出的答案/建议,输出为“免费” myuser@mymachine:~$ free -bash: fork: Cannot allocate memory

4
以root身份运行时更改bash提示的行为
在单击之前,这不是典型的“如何使bash提示具有颜色”问题。我已经自定义了bash提示符,如下所示: [user @ host]----[$(pwd)] $ 通过将以下内容添加到我的〜/ .bashrc文件中,括号中的所有内容均为浅蓝色,其他所有内容(包括$)均为黑色 # Turn the prompt symbol red if the user is root if [ $(id -u) -eq 0 ]; then # you are root, make the prompt red PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m " else PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ " fi 目的是使它在我使用'sudo su'时唯一改变的是将黑色$变成红色#。我查看了/etc/bash.bashrc和/ etc / profile中的内容,看看是否只有一行需要注释掉,但是关于debian_chroot的很多东西我都不了解,我也不想搞砸了 我该如何完成我想要的? …

6
尾巴:无法使用inotify,恢复为轮询:打开的文件过多
当我尝试时tail -f catalina.out,出现错误: tail: inotify cannot be used, reverting to polling: Too many open files 我在这篇文章中尝试了答案: 打开的文件太多-如何找到罪魁祸首 lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head 当我运行以上命令时,输出为 17 6115 13 6413 10 6417 10 6415 9 6418 9 6416 9 6414 …
16 bash  apache2  tomcat  sshd  tail 

2
谁能解释为什么带通配符的sudo ls不起作用?
$ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/access* ls: cannot access /sites/servers/server_instance/logs/access*: No such file or directory $ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/ total 594812 -rwxrwxrwx 1 abc abc 45 Mar 21 12:42 old.log -rwxrwxrwx 1 abc abc 304537970 Mar 24 12:45 console.log -rwxrwxrwx 1 abc abc 304537970 Mar 24 …

4
编写bash脚本时,如何获取当前文件位置的绝对路径?
假设我有一个名为的bash文件myBash.bash。它位于: /myDirect/myFolder/myBash.bash 现在,我想在脚本中使用字符串/myDirect/myFolder(的位置myBash.bash)。有没有我可以用来找到此位置的命令? 编辑:我的想法是我想用一个可由该zip文件内的bash脚本启动的代码设置一个zip文件夹。我知道该zip文件中代码的相对文件路径,但不是绝对路径,因此我需要这些。一种方法是在路径中进行硬编码,或者要求将文件的路径作为变量给出。但是,如果bash文件有可能自己找出它的位置,然后根据其对zip文件结构的了解来创建另一个文件的相关路径,我会发现它更容易。

4
删除空的子文件夹,保留父文件夹
当我使用 find /home/user/parentdir -type d -empty -delete 它递归地查找内部的空子文件夹/home/user/parentdir并将其删除。但是如果/home/user/parentdir也为空,它也会删除该parentdir文件夹,这对我来说是不可取的。 我想将其保留parentdir到rsync一些要备份或云的文件中。处理后,我需要删除空文件夹,但是parentdir每次重新创建似乎都没有用。 有parentdir什么建议要保留吗?我曾考虑过在其中创建.nocopy文件并将其从中排除rsync,但看起来有点过头了。有没有更优雅的方式?

3
为什么在bash脚本中不使用两个cd命令执行第二个命令?
我编写了一个bash脚本,该脚本创建了一系列目录并将一个项目克隆到所选目录中。 为此,我需要访问cd每个目录(project 1和project 2),但是脚本不需要cd访问第二个目录,也不执行命令。 而是cd在project2目录克隆后停止。为什么cd_project1在下面的代码中不调用该函数? #!/bin/bash #Get the current user name function my_user_name() { current_user=$USER echo " Current user is $current_user" } #Creating useful directories function create_useful_directories() { if [[ ! -d "$scratch" ]]; then echo "creating relevant directory" mkdir -p /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2 else echo "scratch directory already exists" : fi …

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.