Unix & Linux

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

1
.bashrc和.inputrc有什么区别
我是unix系统的新手,发现在诸如.bashrc和的设置文件中创建自定义功能和配置很有趣.inputrc。 但是,我不了解两者之间的区别。例如,当我创建别名时,将它们放在中.bashrc。 Example 1: alias ...='cd ../../' 当我创建诸如使用箭头键查找上一个或下一个命令之类的操作时,会将命令放入中.inputrc。 Example 2: "\e[A": history-search-backward 为什么需要将它们放在不同的设置文件中?我如何区分何时放置在何处? 先感谢您!

3
为什么traceroute在同一跃点上显示许多IP地址?
这是从我家到的路线sina.com.cn。 traceroute -n sina.com.cn traceroute to sina.com.cn (202.108.33.60), 30 hops max, 60 byte packets 1 192.168.31.1 0.476 ms 0.587 ms 0.695 ms 2 140.0.5.1 2.557 ms 2.699 ms 3.065 ms 3 221.11.155.65 4.501 ms * 221.11.165.9 5.045 ms 4 * 221.11.156.18 26.480 ms 221.11.165.233 22.950 ms 5 219.158.9.97 14.176 ms …


4
如何使用grep将输出分为两个文件?
我有一个mycommand.sh无法两次运行的脚本。我想将输出分为两个不同的文件,一个文件包含与正则表达式匹配的行,另一个文件包含与正则表达式不匹配的行。我希望拥有的基本上是这样的: ./mycommand.sh | grep -E 'some|very*|cool[regex].here;)' --match file1.txt --not-match file2.txt 我知道我可以将输出重定向到一个文件,然后将其重定向到两个带有-v选项和不带-v选项的不同版本,并将它们的输出重定向到两个不同的文件。但是我想知道是否可以用一个grep做到这一点。 那么,是否可以在一行中实现我想要的?

1
没有x会话的gnome密钥用法
我的用例是,我有一台无头服务器,可以在该服务器上进行软件开发。我通常为与它的SSH连接启用X11转发,但是无法为连接较慢的遥远位置启用X11转发。 我需要安全的存储和git凭据缓存,因为我经常在树中使用18-20个存储库,因此我将git-credential-gnome-keyring用作git credential.helper,它使用libgnome-keyring进行通信到gnome-keyring-daemon。为了测试解决方案,我安装了一台带有监视器的PC,确认默认情况下该系统上的密钥环有效,然后使用SSH进行了尝试。它与X11转发一起使用,但没有它就无法工作。 在没有X11转发的情况下进行连接时,查询密钥环时会出现以下错误,并且该工具将退回到命令行提示符下: ** (process:18305): CRITICAL **: Error communicating with gnome-keyring-daemon 调查表明,基本问题是gnome-keyring-daemon期望连接使用dbus与之对话。如果没有X11会话,则dbus不会启动,因此,没有用于gnome-keyring-daemon和libgnome-keyring连接的通用dbus总线。 我找到了两个其他解决方案发布给该问题的解决方案,尽管它们都不适合我。 从使用X11的现有会话中获取DBUS端口 手动启动新的DBUS端口 连接到现有DBUS端口时,基本概念是查找现有登录会话的PID,从procfs中转储该PID的环境,在中搜索DBUS_SESSION_BUS_ADDRESS,然后在当前环境中将其导出。由于这是用于发布会话中所有对象正在使用的DBUS总线的变量,因此设置该值将允许会话中的所有对象在公共DBUS总线上进行通信,尽管它是与其他会话相关联的总线。 此处的来源: https : //ubuntuforums.org/showthread.php ? t = 1059023 https://ask.fedoraproject.org/en/question/45246/error-communication-with-gnome-keyring-daemon-in-ssh-会话/ 添加到我的.bashrc的代码在ssh登录时执行: if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] ; then local myPID=`pgrep "(.*session|fluxbox)" | head -n1` if [ -n "$myPID" ] ; then local myVar=`cat /proc/${myPID}/environ …

1
如何从命令行最小化所有GNOME / Wayland窗口?
切换到Wayland之前,我将使用以下命令最小化所有GNOME Shell窗口: wmctrl -k on ......但两者wmctrl并xdotool是X11-只应用。在GNOME Shell / Wayland会话中,可以使用什么CLI命令来最小化所有窗口? 参考文献: 我可以从命令行最小化窗口吗?(询问Ubuntu)

3
shell:在命令替换中保留尾随换行符('\ n')
我希望能够捕获命令替换的确切输出,包括结尾的换行符。 我意识到默认情况下会删除它们,因此可能需要进行一些操作才能保留它们,并且我想保留原始的退出代码。 例如,给定一个带有可变数量的尾随换行符和退出代码的命令: f(){ for i in $(seq "$((RANDOM % 3))"); do echo; done; return $((RANDOM % 256));} export -f f 我想运行类似: exact_output f 并具有以下输出: Output: $'\n\n' Exit: 5 我对bashPOSIX和POSIX 都感兴趣sh。
14 bash  shell 

1
bash:警告:壳级别(1000)太高,重置为1
我只是尝试运行此命令: /etc/ssl/acme/acme.sh --log /var/log/p3x/acme/acme.sh.log --home /etc/ssl/acme --force --issue -d patrikx3.tk -w /var/www/acme-challenge 我收到此错误: bash:警告:壳级别(1000)太高,重置为1 这是什么错误?
14 bash 

1
是什么可以解释对tmpfs的这种奇怪的稀疏文件处理?
在我的ext4文件系统分区上,我可以运行以下代码: fs="/mnt/ext4" #create sparse 100M file on ${fs} dd if=/dev/zero \ of=${fs}/sparse100M conv=sparse seek=$((100*2*1024-1)) count=1 2> /dev/null #show its actual used size before echo "Before:" ls ${fs}/sparse100M -s #setting the sparse file up as loopback and run md5sum on loopback losetup /dev/loop0 ${fs}/sparse100M md5sum /dev/loop0 #show its actual used size …

5
一行多行排序文本文件
我有一个这种格式的文本文件: #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 我想按KEY行对该文件排序,并在结果中保留下4行,因此排序结果应为: #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 有没有办法做到这一点 ?


1
Linux中的标准错误代码是什么?
例如,当我在bash中编写复制文件的代码时,如果文件不存在,则在终端中会看到类似于“找不到文件”的错误,如果未向脚本用户授予权限,则会显示该错误up类似于“权限被拒绝”。 基本上,无论使用哪种编程语言,例如,当您编写代码以复制文件时,所用的编程语言都会要求操作系统(在我的情况下为Linux)执行此操作,如果发生错误,操作系统将以方便的错误(代码+消息)。 我是否可以运行一个命令,该命令将列出系统上的所有标准错误代码?

1
了解家庭配置文件的位置:〜/,〜/ .config /和〜/ .local / share /
我的主目录中有许多隐藏的配置文件: 其中一些在~/(例如~/.cinnamon) 其中一些在~/.config/(例如~/.config/cinnamon-session) 其中一些在~/.local/share/(例如~/.local/share/cinnamon-session) 归属配置文件所在位置的逻辑是什么? a)这三个地方的隐藏文件有什么区别? b)在这种情况下,相对于配置,相对于本地,“本地”到底是什么意思? c)在主目录中,是否还有其他重要的通用配置目录供多个应用程序使用? Debian 8.6肉桂2.2.16

4
如何使bash glob成为字符串变量?
系统信息 作业系统:OS X bash:GNU bash,版本3.2.57(1)-发行版(x86_64-apple-darwin16) 背景 我希望时间机器从我的所有git / nodejs项目中排除一组目录和文件。我的项目目录在其中~/code/private/,~/code/public/因此我尝试使用bash循环来执行tmutil。 问题 精简版 如果我有一个计算得出的字符串变量k,那么如何在for循环之前或之内使其全局: i='~/code/public/*' j='*.launch' k=$i/$j # $k='~/code/public/*/*.launch' for i in $k # I need $k to glob here do echo $i done 在下面的长版中,您会看到k=$i/$j。因此,我无法在for循环中对字符串进行硬编码。 长版 #!/bin/bash exclude=' *.launch .classpath .sass-cache Thumbs.db bower_components build connect.lock coverage dist e2e/*.js e2e/*.map libpeerconnection.log node_modules npm-debug.log …

2
如何从分区设备名称获取块设备名称?
我正在寻找一种可移植的方式来获取/dev/sda给定分区设备名称(例如/dev/sda1)的父块设备名称(例如)。我知道我可以删除最后一个字符,但在某些情况下不起作用: MMC读卡器的名称通常为/dev/mmcblk0,而其分区的名称则为/dev/mmcblk0p1(请注意p)。 可选:某些块设备根本没有任何分区表,并且被格式化为单个分​​区。在这种情况下,分区设备和父块设备相同。 LVM的体积完全不同。我现在不需要支持他们,但是如果考虑到他们需要很少的额外努力,我也不会介意。

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.