Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

5
如何删除名为“>”的文件?
我正在运行一个Python脚本,该脚本发生故障并用于sudo创建名为的文件>。 我如何摆脱这个文件? 当然,当我尝试时sudo rm >,会出现错误bash: syntax error near unexpected token 'newline',因为它认为我正在尝试重定向的输出rm。 其权限为-rw-r--r--。
22 bash  quoting  filenames  rm 

2
如何退出git merge询问提交消息?
我正在使用git。我做了一个普通的合并,但是它一直在问: # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. 即使我写点东西,我也不能从这里退出。我找不到说明这一点的文档。我应该怎么做?
22 git  merge 



2
管道,数据如何在管道中流动?
我不了解数据在管道中的流动方式,希望有人可以澄清其中的情况。 我认为命令管道以逐行方式处理文件(文本,字符串数组)。(如果每个命令本身一行一行地工作。)文本的每一行都通过管道,命令不必等待前一个命令完成对整个输入的处理。 但似乎并非如此。 这是一个测试示例。有几行文字。我将它们大写,并重复每行两次。我这样做cat text | tr '[:lower:]' '[:upper:]' | sed 'p'。 要遵循此过程,我们可以“交互式”运行它-跳过中的输入文件名cat。管道的每一部分都逐行运行: $ cat | tr '[:lower:]' '[:upper:]' alkjsd ALKJSD sdkj SDKJ $ cat | sed 'p' line1 line1 line1 line 2 line 2 line 2 但是完整的管道确实在等我完成输入,EOF然后才打印结果: $ cat | tr '[:lower:]' '[:upper:]' | sed 'p' I am writing... …

4
如果使用BC进行转换,是否了解“ ibase”和“ obase”?
我经常使用bc实用程序将十六进制转换为十进制,反之亦然。然而,它始终是有点试验和错误是如何ibase和obase应配置。例如,在这里我要将十六进制值C0转换为十进制: $ echo "ibase=F;obase=A;C0" | bc 180 $ echo "ibase=F;obase=10;C0" | bc C0 $ echo "ibase=16;obase=A;C0" | bc 192 这里的逻辑是什么?obase(A在我的第三示例)需要在相同的碱,将其转化(该值C0在我的例子)和ibase(16在我的第三示例)必须在我转换到基座?
22 bc 

1
是否为bash定义了终端颜色转义序列?
我在Bash脚本中经常使用颜色(主要是在CentOS上),但是为了使它们更方便使用,我最终将变量重新定义为颜色值: local GRAY="\[\033[1;30m\]" local LIGHT_GRAY="\[\033[0;37m\]" local CYAN="\[\033[0;36m\]" local LIGHT_CYAN="\[\033[1;36m\]" local NO_COLOUR="\[\033[0m\]" 或也可以tput: bold=`tput bold` normal=`tput sgr0` whitef=`tput setaf 7` greenf=`tput setaf 2` redb=`tput setab 1` 我已经遍历/etc/rc.d/init.d目录,但是没有找到与颜色定义有关的任何内容。 已经有这样的定义了吗?如果不是的话,我会把它们放入一个文件中/etc/rc.d/init.d说出来,并把它包含在我的脚本中,有点像/etc/rc.d/init.d/functions
22 bash  terminal  colors 

2
复制具有多个扩展名的文件
我想将具有多个扩展名的文件复制到单个目标目录。 例如,我可以使用以下命令将工作目录中的所有.txt文件复制到名为的目录中destination: cp -v *.txt destination/ 我可以使用以下命令将工作目录中的所有.png目录复制到destination: cp -v *.png destination/ 但是将它们作为单独的命令键入非常耗时(即使使用命令历史记录也是如此)。因此,有什么办法可以告诉我cp将带有模式*.txt 或模式的文件复制*.png到destination? 理想情况下,我想能够指定两个以上的模式-就像指导cp复制所有*.txt 或 *.png 或 *.jpg文件destination,例如。 我确信使用shell脚本可以实现所有这些功能- bash例如,我正在使用-但是有什么方法可以仅通过控制台更简单地完成它吗?我能以某种方式使用括号扩展吗? 我知道这是可能的所有文件复制除了匹配某些特定模式的工作目录,但由于我的工作目录含有更多的文件扩展名,我不希望比我复制这样做,那将是一个痛苦。 您对此有什么想法吗?
22 bash  shell  wildcards  cp 

5
如何禁止Windows窃取XFce4中的焦点?
在XFce4中,当我启动应用程序时,我不希望它们出现在当前使用的窗口上方,也不希望它们显示在当前工作上方的警报窗口。而是,我希望窗口在后台加载并且不要窃取焦点。例外是属于我正在使用的应用程序的警报窗口或对话框,例如,如果我当前正在使用LibreOffice Calc,它会弹出一个窗口告诉我一个错误,则可以使该窗口成为焦点。 有什么方法可以防止Windows窃取Xfce4中的焦点?

1
mount -o loop更改已挂载的ISO映像文件
看起来像mount -o loop更改了挂载的图像文件。我下载了ISO映像文件并检查了其SHA-1校验和。然后我挂载了那个ISO文件,校验和改变了。以下是我执行的确切步骤,即从控制台CentOS 7 x64复制粘贴(请注意,ISO文件是只读的): [mbartnicki@89-78-33-81 Downloads]$ ls -lh total 3.1G -r--r--r--. 1 mbartnicki mbartnicki 3.1G Mar 31 18:28 X17-58997.iso [mbartnicki@89-78-33-81 Downloads]$ sha1sum X17-58997.iso 6c9058389c1e2e5122b7c933275f963edf1c07b9 X17-58997.iso [mbartnicki@89-78-33-81 Downloads]$ sudo mount -o loop X17-58997.iso /mnt/iso/ mount: /dev/loop0 is write-protected, mounting read-only [mbartnicki@89-78-33-81 Downloads]$ sha1sum X17-58997.iso 994944df320e9e03c032263d7b9e36157a0a587c X17-58997.iso 我很惊讶,以至于我在另一台机器(Ubuntu 14.04 x64)上重复了上述步骤,只是得到了相同的结果:文件校验和在之后更改mount -o …
22 mount  iso  checksum 


4
sudo为什么忽略别名?
我正在运行Ubuntu 10.04,并upstart用于守护程序管理。我的企业应用程序作为守护程序运行,由于各种特权,必须作为root用户运行。例如: sudo start my-application-long-ID sudo stop my-application-long-ID etc 我想介绍一个alias将这些命令缩写为: alias startapp='sudo start my-application-long-ID' 并以它的方式运行它startapp,但我希望别名中没有sudo。 alias startapp='start my-application-long-ID' 使用时不sudo startapp返回,返回sudo: startapp: command not found。 但是,当我添加别名时: alias sudo='sudo ' sudo startapp 现在可以使用,但我仍然好奇sudo为什么忽略别名。
22 shell  sudo  alias 

17
如何找到最少字符的行
我正在使用任何常规UNIX命令编写Shell脚本。我必须检索具有最少字符(包括空格)的行。最多可以有20条线。 我知道我可以head -$L | tail -1 | wc -m用来查找第L行的字符数。问题是,我想到的唯一方法是使用手动编写一堆if语句,比较值的方法。 示例数据: seven/7 4for 8 eight? five! 4for由于该行的字符最少,将返回。 在我的情况下,如果多行的长度最短,则应返回一行。只要选择最小长度,就无关紧要。但是我看不到在其他情况下向其他用户显示两种方式的危害。

3
比较Bash中的两个字符串
我的ifbash脚本中包含以下代码块: if [ ${PACKAGENAME} -eq kakadu-v6_4-00902C ]; then echo "successfully entered if block!!" fi if即使$PACKAGENAME等于,脚本执行也不会进入我的程序段kakadu-v6_4-00902C。我究竟做错了什么?

3
将变量作为字符串或整数进行比较时,有什么主要区别
出于好奇,在进行bash变量比较(其值为an integer)时,可以对照声明为an int或as的一些预定义值对其进行测试string。 示例脚本: #!/bin/bash f1() { [ "$1" == "1" ] && echo "$FUNCNAME: \"1\" compared as string" } f2() { [[ "$1" -eq 1 ]] && echo "$FUNCNAME: \"1\" compared as int" } f1 $1 f2 $1 输出: $ ./param.sh 1 f1: "1" compared as string f2: "1" …
22 bash  shell  test 

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.