Unix & Linux

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

4
JSON数组使用jq来bash变量
我有一个像这样的JSON数组: { "SITE_DATA": { "URL": "example.com", "AUTHOR": "John Doe", "CREATED": "10/22/2017" } } 我正在使用jq遍历此数组,因此可以将每个项目的键设置为变量名,并将值设置为其值。 例: URL =“ example.com” AUTHOR =“ John Doe” CREATED =“ 10/22/2017” 到目前为止,我在数组上进行了迭代,但是创建了一个字符串: constants=$(cat ${1} | jq '.SITE_DATA' | jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]") 哪个输出: URL=example.com AUTHOR=John Doe CREATED=10/22/2017 我正在脚本中进一步使用这些变量: echo ${URL} 但这回显了当前的空输出。我猜我eval在那里需要一个或一个东西,但似乎无法将手指放在上面。
19 bash  jq 

2
在Git中存储用户名和密码
当我做 git push 我得到像这样的命令提示符 Username for 'https://github.com': 然后我手动输入我的用户名 Username for 'https://github.com': myusername 然后我点击,然后Enter提示输入密码 Password for 'https://myusername@github.com': 我希望用户名自动写入,而不必一直手动输入。 我尝试这样做,xdotool但没有成功。 我已经做了 git config --global user.name myusername git config --global user.email myemail@gmail.com 但仍然总是要求我手动输入
19 git 




2
当排序不知道排序顺序时,GNU排序稳定排序
我有一个两栏的文件;该文件已经按照我想要的方式在第1列上进行了排序。我想对每个列1类别中的列2进行排序。但是,sort不了解第1列的排序顺序。 正常的方式(来自栈上类似的问题)是这样的: sort --stable -k1,1 -k2,2n 但是我无法在k1上指定排序,因为它是任意的。 输入示例: C 2 C 1 A 2 A 1 B 2 B 1 并输出: C 1 C 2 A 1 A 2 B 1 B 2
18 sort 


1
为什么$ {$#}在shell中返回与$$相同的结果?
在尝试设置最后一个位置参数时/bin/dash,我已经尝试过了echo ${$#}。出人意料的是,这不会导致错误,但会导致PID与$$变量内容相同。问题,为什么该语法起作用?shell在这里应用的语法规则是什么? 基本上,我所做的是 $ set 1 2 3 4 5 $ echo ${$#} 13819 $ echo $$ 13819 显然,%在这种结构中字符也被忽略 $ echo ${$%} 13819 但是*并@导致不良的替换错误: $ echo ${$*} sh: 10: Bad substitution $ echo ${$@} sh: 11: Bad substitution
18 shell  variable 

3
这个tr命令中的点是做什么的:tr…AZ A-ZA-Z <<<“ JVPQBOV”(带有13个点)
我想用来tr做一些rot13转换。我可以很好地理解以下命令: tr A-Za-z N-ZA-Mn-za-m &lt;&lt;&lt; "URYC ZR CYRNFR" 哪个输出是HELP ME PLEASE,但我不知道另一个命令如何产生相同的rot13转换: tr .............A-Z A-ZA-Z &lt;&lt;&lt; "URYC ZR CYRNFR" 所以我有两个问题: 第二个tr命令背后的魔力是什么? 像第一个命令一样,如何使第二个命令适用于大小写?
18 tr 

2
为什么POSIX要求某些Shell内置程序具有外部实现?
从这个关于printf是否是yash内置的问题开始,这个答案引用了POSIX标准。 答案指出,POSIX搜索序列是查找所需命令的外部实现,然后,如果外壳将其实现为内置程序,则运行内置程序。(对于不是特殊内置的内置。) 为什么POSIX在允许运行内部实现之前对存在外部实现有此要求? 似乎……随心所欲,所以我很好奇。

2
`disown -h`和`nohup`是否有效地相同?
disown 导致shell在终止时不将SIGHUP发送到其未完成的工作,并且 从Shell的作业控件中删除不相关的作业。 第一个是第二个的结果吗?换句话说,如果以某种方式从外壳启动的进程从外壳的作业控件中删除了,那么在外壳终止时外壳将不会将SIGHUP发送给该进程吗? disown -h 仍然将进程保持在Shell的作业控制之下。这是否意味着disown -h使进程仍然接收从外壳发送的SIGHUP,但是将进程设置为SIGHUP的动作是“忽略”?听起来类似于nohup。 $ sleep 123 &amp; disown -h [1] 26103 $ jobs [1]+ Running sleep 123 &amp; $ fg 1 sleep 123 $ ^Z [1]+ Stopped sleep 125 $ bg 1 [1]+ sleep 123 &amp; $ exit $ ps aux | grep sleep t …
18 bash  nohup  disown 

1
禁用在内核中编译的内核模块(未加载)
我的服务器有两个1 Gb和两个10 Gb板载网卡。 我需要完全禁用1-Gbit网卡,以便ifconfig -a不显示它们。 网卡使用不同的内核模块。10 Gb使用ixgbe和1 Gb使用igb。 01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) Subsystem: Dell Ethernet 10G 4P X520/I350 rNDC Kernel driver in use: ixgbe 05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) Subsystem: Dell I350 Gigabit Network Connection Kernel …

1
为什么直到磁盘装满后才将tar压缩到dd中?
我有一个磁盘映像的tar存档。该tar文件中的图片大小约为4GB。我将的输出传递tar xf到,dd以将磁盘映像写入SD卡。直到存储卡已满,磁盘转储才会停止。这是我的shell会话: $ ls -l disk.img.tgz -rw-r--r-- 1 confus confus 192M Okt 5 00:53 $ tar -tvf disk.img.tgz -rw-r--r-- root/root 4294968320 2018-10-05 00:52 disk.img $ lsblk -lb /dev/sdc NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdc 8:32 1 16022241280 0 disk $ tar zxf disk.img.tgz -O | sudo dd status=progress …
18 pipe  tar  dd  disk-image 

3
在Linux发行版上设置无密码sudo
我最近同时设置了Fedora 28和Ubuntu 18.04系统,并希望同时在这两个系统上配置我的主要用户帐户,以便我可以在sudo不提示输入密码的情况下运行命令。 如何在各自的系统上执行此操作?
18 linux  sudo  password 

1
GitKraken在Ubuntu 18.04上不再启动
昨天我打开Ubuntu 18.04并想启动GitKraken时,它没有用。单击其图标后,我看到该过程如何尝试从左上角开始(“活动”旁边),但是几秒钟后,该过程似乎消失了,没有任何反应。尝试从控制台启动GitKraken也会失败,并显示以下两条消息: /snap/gitkraken/58/bin/desktop-launch: line 23: $HOME/.config/user-dirs.dirs: Permission denied ln: failed to create symbolic link '$HOME/snap/gitkraken/58/.config/gtk-2.0/gtkfilechooser.ini': File exists 不幸的是,我的Linux技能太有限,无法解决此问题。我尝试过的唯一一件事是chmod 777 $HOME/.config/user-dirs.dirs因为,Permossion denied但是那没有帮助。 编辑:正如terdon在他的评论中所建议的那样ls -ld ~/.config/user-dirs.dirs,这是其输出: -rwxrwxrwx 1 myusername myusername 633 Mai 6 10:30 /home/mayusername/.config/user-dirs.dirs 然后,我发出了mv ~/snap/gitkraken/58/.config/gtk-2.0/gtkfilechooser.ini gtkfilechooser.ini.bak命令,然后尝试启动GitKraken。我没有再开始显示: /snap/gitkraken/58/bin/desktop-launch: line 23: /home/myusername/.config/user-dirs.dirs: Permission denied ln: failed to create symbolic link ...我最初发布的错误没有出现。Exe ll在目录中的剪切~/snap/gitkraken/58/.config/gtk-2.0为我提供了以下输出: …

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.