Unix & Linux

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

2
查找假定扩展名错误的文件类型
我有一个图片档案,我一直在关注。有时,我在将扩展名保持相同的情况下从重新格式化文件的站点中拉出它们,大多数情况下是将PNG图像制作为JPG,仍然称为“ .png”。有什么方法可以发现何时发生并自动修复? 在Windows上,我为此使用IrfanView,但这需要一个Wine包装器。

2
管道bash字符串操作
我读过其他一些管道bash字符串操作问题,但它们似乎是专门的应用程序。 从本质上讲,有没有一种方法可以使以下操作更简单? 代替 $ string='hello world'; string2="${string// /_}"; echo "${string2^^}" HELLO_WORLD 就像是 $ echo 'hello world' | $"{-// /_}" | "${ -^^}" HELLO_WORLD 编辑我有兴趣尽可能保持bash操纵以保持速度(与sed / awk相反,后者往往会大大减慢我的脚本的速度) Edit2:@jimmij 我喜欢第二个示例,并引导我编写了一个函数。 bash_m() { { read x; echo "${x// /_}"; } | { read x; echo "${x^^}"; }; } echo hello world | bash_m …

1
(为什么)使用ls -A列出隐藏文件不好?
我想列出当前目录中的每个文件,包括隐藏文件。我不想包括父目录(..)和当前目录(。)。 我找到了这个: 如何遍历除当前目录和父目录以外的所有隐藏文件 最后,有人说这ls -A是要走的路,但它被否决了。但是,它似乎有效。这有什么错ls -A?
9 ls  filenames 


3
Dash等效于脚本输出的自我重定向
在Bash中,您可以重定向当前正在运行的脚本的所有将来的 stdout输出。例如,使用此脚本, exec > >(logger -t my-awesome-script) echo 1 echo 2 echo 3 这将以syslog结尾: Oct 26 01:03:16 mybox my-awesome-script[72754]: 1 Oct 26 01:03:16 mybox my-awesome-script[72754]: 2 Oct 26 01:03:16 mybox my-awesome-script[72754]: 3 但这是特定于Bash的,具有重定向的裸露的exec在Dash中似乎不起作用。 Syntax error: redirection unexpected 如何在Dash中或在两个Shell中使其工作?

2
可以显示剪贴板内容及其MIME类型的应用程序吗?
我正在寻找一个可以向我显示剪贴板内容详细信息的应用程序。 将某些数据复制到剪贴板时,该数据与特定的MIME类型相关联。普通文本是text/plain,二进制数据可以复制为application/octet-stream,等等。我有一个应用程序可以复制二进制数据,将其标记为自己的MIME类型,我想看看它是什么类型,以及它有什么数据。 我不能只是将剪贴板内容粘贴到类似记事本的目标应用程序中,因为目标希望剪贴板对象的MIME类型为text/plain。 枚举剪贴板中所有当前存在的MIME类型对象的应用程序也将足够。
9 x11  clipboard 

2
bash和zsh中&& vs&的优先级
回答这个问题,我发现行为之间一个非常有趣的(和微妙的)差别bash和zsh: 在bash: romano@RRyS:~$ pwd /home/romano romano@RRyS:~$ alias x="cd /bin && ./echo A >/dev/null &" romano@RRyS:~$ x [1] 16611 romano@RRyS:~$ pwd /home/romano 如您所见,别名的执行x是在子外壳中进行的,因此当前目录不会更改。 不在zsh: [romano:~] % pwd /home/romano [romano:~] % alias x="cd /bin && ./echo A >/dev/null &" [romano:~] % x [1] 16744 [1] + 16744 done ./echo A >/dev/null 1& …
9 bash  shell  zsh 

1
如何在非交互式外壳上的Ubuntu上配置MySQL APT存储库?
我想在运行Ubuntu 12虚拟机的Travis CI上安装MySQL 5.7 。 我愿意使用官方的MySQL APT回购协议: wget http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu12.04_all.deb sudo dpkg --install mysql-apt-config_0.2.1-1ubuntu12.04_all.deb 但是问题是,安装此软件包将打开一个交互式菜单,询问以下问题: Which Server version do you wish to receive? - mysql-5.6 - mysql-5.7-dmr 由于安装是自动化脚本的一部分,因此我不在终端机后面回答问题。我在文档中唯一能找到的是: 选择主要版本 默认情况下,MySQL服务器和其他必需组件的所有安装和升级均来自在配置包安装期间选择的主要版本的发行系列(请参见添加MySQL APT存储库)。但是,您可以随时通过重新配置已安装的配置包来切换到另一个受支持的主要发行系列。使用以下命令: shell> sudo dpkg-reconfigure mysql-apt-config 但是,这再次打开了一个交互式菜单。 如何mysql-5.7-dmr在非交互式shell上安装此APT存储库并将其配置为使用?
9 mysql  dpkg  debconf 

4
意外的EOF和语法错误
我目前正在编写我的第三个Shell脚本,但遇到了问题。到目前为止,这是我的脚本: #!/bin/bash echo "choose one of the following options : \ 1) display all current users \ 2) list all files \ 3) show calendar \ 4) exit script" while read do case in 1) who;; 2) ls -a;; 3) cal;; 4) exit;; esac done 当我尝试运行脚本时,它说: line2 : unexpected EOF …

2
回声测试 stty -echo-> stty:标准输入:设备的不适当的ioctl
我在玩一个perl脚本,该脚本需要用户输入以下内容: system( qw( stty -echo ) ); $? == 0 or die "Error unable to disable character printing.\n"; print "$prompt: "; my $input = <STDIN>; 我以为我可以使用echo响应,但是似乎与stty -echo命令冲突并产生以下错误: stty: standard input: Inappropriate ioctl for device 在不更改perl脚本的情况下,可以在bash中完成传递输入的操作吗?是什么原因引起的问题?
9 bash  perl  stty 


2
为什么在环境变量中定义功能的能力本身不是安全风险?
据我了解,通常认为让任何人提供将存储在环境变量中的信息都是安全的。shellshock漏洞在这里是一个问题,因为这意味着当新的bash实例启动并且您显然不希望任何人在您的服务器上运行他们喜欢的任何代码时,将在环境变量中的函数定义末尾执行代码。尽管函数定义本身显然没有安全风险,但允许使用,因为必须明确调用它们才能执行代码。 我的问题是,为什么恶意用户不能简单地定义一个函数,将其恶意代码作为通用命令包含在其中ls,然后希望脚本(或正在运行的任何东西)在某个时候使用该命令? 我想到的一个例子: $ export ls='() { echo "doing bad things..."; }' $ bash -c ls doing bad things...

2
提取嵌入式initramfs
我有一个嵌入了一个initramfs的内核。我要提取它。 我做的x86 boot sector时候得到了输出file bzImage 我有此内核映像的System.map文件。 是否有任何方法可以通过System.map文件的帮助来从此内核中提取嵌入式initramfs图像? 在系统映射文件中找到的有趣字符串是:(以防万一) 57312:c17fd8cc T __initramfs_start 57316:c19d7b90 T __initramfs_size

2
如何判断进程何时完成文件写入?
我有一个从外壳生成的进程。它正在作为后台进程运行,并在中将数据库导出到CSV文件/tmp。 我如何知道后台进程何时完成(完成/退出)或CSV文件锁是否已关闭?我计划在文件写入后通过FTP将其传输到另一个主机,但是在开始文件传输之前,我需要完整的文件。
9 files  process  lock 


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.