Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

3
dircolors:全局修改颜色设置
我了解显示彩色输出的ls用途dircolors。dircolors具有与文件扩展名关联的默认颜色数据库,可以使用以下命令进行打印 dircolors --print-database 据man dir_colors我了解,系统范围的数据库应位于中/etc/DIR_COLORS。但是该文件在我的系统(Debian)上不存在。如何修改系统范围的颜色设置dircolors?dircolors --print-database没有文件时,命令从哪里获取设置。 我知道用户可以在~/.dircolors其设置中包含用户特定的文件,但这不适合我,因为我需要为每个人更改设置。 第二个问题是,是否可以将8位颜色用于dircolors。我的航站楼是xterm-256color。
40 bash  ls  colors 


3
从Bash历史记录中删除最后N行
当不小心将文件粘贴到外壳中时,它会在bash历史记录中放置大量丑陋的废话。是否有清除这些条目的干净方法?显然,我可以关闭外壳并.bash_history手动编辑文件,但是也许可以使用某种API来修改当前外壳的历史记录?

2
如何在bash的反向搜索中导航?
Bash提供了通过Ctrl+ 反向搜索的功能R。然后可以键入命令的一部分,它将显示历史记录中的合适条目。 假设这是我的历史: vim foo1 vim foo2 # I want to go here vim foo3 # this is where I land, how to go back? 我搜寻foo。再次点击Ctrl+将R显示下一个适合的搜索条目。我经常会想到,我太快了,无法浏览预期的结果并vim foo3显示出来,现在我想回到vim foo2。 因此,我的问题是:如何在反向搜索中导航?



5
如何定义要获取的Shell脚本无法运行
我正在定义用户应该source而不是执行的shell脚本。 是否有常规或智能的方式来提示用户这种情况,例如通过文件扩展名? 我是否可以在文件本身中编写外壳代码,这将导致该文件回显消息并在执行而不是源代码时退出,以便我可以帮助用户避免这一明显的错误?
40 bash  shell 

4
如何在bashrc中创建本地函数?
我的.bashrc有一些重复的代码,所以我使用了一个函数来简化它 do_stuff() { local version=$1 export FOO_${version}_X="17" export FOO_${version}_Y="42" } do_stuff '5.1' do_stuff '5.2' 但是,现在使用外壳程序时,“ do_stuff”名称已在范围内,因此我可以使用Tab键完成并运行该功能(可能会弄乱我的环境变量)。有没有一种方法可以使“ do_stuff”仅在.bashrc内部可见?
40 bash  bashrc 

4
启动后台进程并检查它何时结束
如何在后台启动进程并检查bash脚本中的进程何时结束?我的想法是这样的脚本: launch backgroundprocess & while [ Process is running ];do echo "PROCESS IS RUNNING\r" done; echo "PROCESS TERMINATED"
40 bash 

6
如何以人类可读的格式列出目录中每个文件的行数。
我有一个包含大型csv文件的目录和子目录的列表。这些文件中大约有5亿行,每行都是一个记录。我想知道 每个文件中有几行。 目录中有几行。 总共多少行 最重要的是,例如,我需要使用“人类可读格式”。12,345,678而不是12345678 最好以3种方式来学习如何做到这一点。普通的香草bash工具,awk等,以及perl(或python)。
40 bash  awk  python  perl 

2
将文件的“创建日期”和“最后修改时间”属性更改为另一个文件的
我正在使用merge cap从15个文件创建一个合并pcap文件。对于合并的文件,我将名称更改为15个文件中第一个文件的名称。但我也想将合并文件的属性(如“创建日期”和“最后修改时间”)更改为第一个属性。反正有这样做吗? FILES_dcn=($(find $dir_dcn -maxdepth 1 -type f -name "*.pcap" -print0 | xargs -0 ls -lt | tail -15 | awk '{print $9}')) TAG1_dcn=$(basename "${FILES_dcn[14]}" | sed 's/.pcap//') mergecap -w "${dir_dcn}"/merge_dcn.pcap "${FILES_dcn[@]}" mv "${dir_dcn}"/merge_dcn.pcap "${dir_dcn}"/"${TAG1_dcn}".pcap 我尝试通过samba服务器(Ubuntu)访问合并的文件。以便提取器功能可以访问将文件自动提取到D文件夹。但是由于将更改合并文件的创建日期,因此提取失败。有没有什么办法解决这一问题?
40 linux  bash  files  samba 

1
Ubuntu和Debian如何为具有sudo特权的用户管理$ HOME?
我有一个myhome.sh仅包含一行的bash脚本: echo $HOME 脚本的所有者是用户: $ ls -l myhome.sh -rw-rw-r-- 1 user user <date> <time> myhome.sh 在Ubuntu 16.04和17.10中,我得到了: $ echo $HOME /home/user $ sudo echo $HOME /home/user $ bash myhome.sh /home/user $ sudo bash myhome.sh /home/user 在Debian Buster / Testing中,我得到: $ echo $HOME /home/user $ sudo echo $HOME /home/user $ bash …
39 bash  debian  ubuntu  sudo  home 

4
nvm命令在bash脚本中不可用
我正在尝试构建一个脚本,nvm并最终在其中安装节点。 我已经安装nvm了cURL。我在.profile或.bashrc文件中看到了修改(都可以使用),并且nvm在bash提示符下键入时,它显示了可用的选项等。 因此nvm可以使用。我可以手动安装节点,但是只要将nvm命令放入shell脚本中: nano test.sh #!/bin/bash nvm 并运行: chmod 755 test.sh ./test.sh 我得到: ./test.sh: line 2: nvm: command not found 如果找不到nvm,我什至不必想 nvm ls-remote 要么 nvm install ... 我安装了Ubuntu 14.04,Bash是我的shell。


2
删除或清除堆栈的弹出/推入路径
经过pushd太多次之后,我想清除整个路径栈。 如何popd处理堆栈中的所有项目? 我不想popd知道堆栈中有多少个? bash手册似乎没有涵盖这一点。 为什么我需要知道这一点?我很挑剔,要清理堆栈。
39 bash  pushd 

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.