Unix & Linux

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

1
外壳程序的“删除单词”快捷方式删除了太多字符
在Bash领导下,Alt+的某些行为d自几年以来一直使我发疯,我发现也许可以通过设置来解决它。 如果我在终端上并发出如下命令: ...$ cat >> ~/notesSuperLongFilename.txt 然后,如果我想发出: ...$ scp ~/notesSuperLongFilename.txt 我想使用Ctrl + p(上一行)取回“ cat >>〜/ notesSuperLongFilename.txt”,然后再执行Ctrl+ a,然后Alt+ d和Alt+ d,以便获得: ...$ ~/notesSuperLongFilename.txt 然后我可以简单地输入“ scp”,然后执行Ctrl+ m(或按Enter / Return)。 但是它不起作用,因为在第一个Alt+之后d我得到: ...$ >> ~/notesSuperLongFilename.txt (到目前为止,一切都很好) 但是在第二个Alt+之后d我得到: ...$ .txt 因此,由于某种原因Alt+ d会立即删除“ >>〜/ notesSuperLongFilename”,而不仅仅是删除“ >>”。 自从多年以来,这一直是使我对Linux / Bash疯狂的最大浪费时间。 那么如何解决Alt+的这种(可能是损坏的)行为d呢? PS:我不知道谁是为“负责任的” Alt+ d行为:我不知道这是否是终端还是做,如果它的外壳(猛砸在我的情况)。


2
正确的方式来安装Samba共享
我想在Arch Linux系统上使用samba挂载CIFS网络文件系统。每当我登录时(无论是通过ssh,TTY还是通过KDM),我都希望挂载此文件系统。 通过将网络共享添加到,我可以非常接近我想要的内容/etc/fstab。最大的“问题”是,这需要对我的密码进行硬编码/etc/fstab或使用我的用户名和密码创建凭据文件。即使将权限设置为600,将用户名和密码保存在纯文本文件中对我来说似乎也不安全。 是否有“正确”的方法来安全地自动挂载网络共享?我可以使用PAM做到这一点吗(两台机器上的用户名和密码都相同),如果可以,怎么办?
9 samba 

2
通过中间人服务器的SSH隧道-如何一步连接(使用密钥对)?
我的问题基本上是如何将现有的两个步骤变成一个步骤。 我使用这样的中间人服务器在两台计算机之间建立了可工作的SSH隧道: Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop 我目前要做的是从Kubuntu_laptop到Debian_Server的SSH,然后从Debian_Server到Kubuntu_desktop的SSH。我想用bash在我的Kubuntu_laptop上发出一个SSH命令,以使我连接到Kubuntu_desktop(shell / bash)。 我现在使用的命令如下。步骤1: me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server 第2步: admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost 然后,我通过SSH(来自kubuntu_laptop)连接到kubuntu_desktop。 所有SSH连接都需要RSA密钥。一直禁用密码登录。并请注意,两台计算机上的计算机用户帐户不同。 关于这条腿的连接: Debian_Server<--nat_fw<--Kubuntu_desktop 建立方法如下: autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22 注意Kubuntu_desktop以user@mydebian.com(不是admin @ debian_server)连接到中间人。但是当我连接到Kubuntu_desktop时,我以管理员用户身份连接。 我无法更改现有的监视端口(5234)或远程(-R)端口号(在此示例中为1234)。我无法更改SSH安全性以允许密码登录。我无法打开任何新的防火墙端口。我无法更改用户帐户(笔记本电脑除外)。

2
在bash脚本中以图形方式询问密码并保留默认的sudo超时设置
该sudo -A(SUDO_ASKPASS)选项显然原因sudo来失去的超时时间(例如,timestamp_timeout)设置。 我想使用sudo -A选项,但是我想在bash脚本中保留默认超时(例如,在Ubuntu上为15分钟)。我想在GUI对话框中安全地输入用户密码,但是我只想输入一次脚本(而不是50次以上)。 此外,我不想以root用户身份运行整个脚本,因为我只是认为这是一个坏主意。此外,在这种情况下,由我的脚本创建的文件拥有错误的所有权。 如果sudo -A选项保留了默认超时,它将对我有用。 从sudo手册中: 选项:‑A 通常,如果sudo需要密码,它将从用户终端读取密码。如果指定了-A(询问)选项,则将执行(可能是图形的)帮助程序来读取用户的密码并将密码输出到标准输出。如果设置了SUDO_ASKPASS环境变量,则它指定帮助程序的路径。否则,如果/etc/sudo.conf包含指定askpass程序的行,则将使用该值。例如: # Path to askpass helper program Path askpass /usr/X11R6/bin/ssh-askpass 顺便说一句,kdesudo也有同样的问题-每次调用它时都要求输入密码,即使在同一脚本中稍晚一秒钟也是如此。 我正在使用Kubuntu 12.04 64位。 这是解决方案所有部分的完整工作示例。它由bash脚本,此处建议的“ myaskpass”脚本和“ .desktop”文件组成。整个过程应该是100%GUI(完全没有终端交互),因此.desktop文件至关重要(afaik)。 $ cat myaskpass.sh #!/bin/bash kdialog --password "Please enter your password: " exit 0 $ cat askpasstest1.desktop #!/usr/bin/env xdg-open [Desktop Entry] Comment=SUDO_ASKPASS tester1 Exec=bash /home/user/test/askpasstest1.sh …

1
如何将按键组合重新映射到按键?
是否可以在基于X服务器的系统中将键组合重新映射到键,例如,如果我按End+ Arrow_up,Home则生成用于的键代码?Google在此问题上似乎保持沉默。如果有解决方案,那就太好了,因为它将为更方便的键盘映射提供许多可能性。

3
使进程读取具有相同文件名的其他文件
我有一个读取文件的应用程序。我们将其称为processname和文件〜/ .configuration。当processname运行时,它始终读取〜/ .configuration,并且不能进行其他配置。在运行进程名之前和之后,还有其他依赖于“〜/ .configuration”的应用程序,但在运行进程名时并不依赖。 在脚本中包装进程名以替换〜/ .configuration的内容是一种选择,但是最近我断电(当内容被换出时),我丢失了该文件的先前内容,所以这不是可取的。 LD_DEBUG=files processname当尝试读取特定文件时,是否有一种方法(也许使用与?有密切关系的东西)来使进程欺骗以读取不同的内容?搜索和替换可执行文件中的文件名有点麻烦,但也应该可以。 我知道可以编写一个接管open()调用的内核模块(https://news.ycombinator.com/item?id=2972958),但是有没有更简单或更简洁的方法? 编辑:在processname可执行文件中搜索〜/ .configuration时,我发现它在读取〜/ .configuration之前试图读取另一个文件名。问题解决了。

2
如何在bash脚本中添加Unix / Linux用户
这是我的测试bash脚本。我无法使其正常工作。我看到两个错误: Use of uninitialized value $answer in chop at /usr/sbin/adduser line 589. Use of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 590. 这是我的脚本: #!/bin/bash sudo adduser myuser << ENDX password password First Last Y ENDX exit 0 这是输出: me@mycomputer$ ./adduser.sh Adding user `myuser' ... Adding new group …
9 bash  useradd 

1
从gzip文件中提取时间戳
我如何知道不用解foo压缩gzip而压缩的文件的原始原始时间戳foo.gz? gzip --verbose --list foo.gz并file foo.gz打印格式化的日期和时间。

1
更改zsh完成以将完成置于提示上方
我是tcsh的长期用户,最终决定尝试zsh。我一直在忙于完成,但是我不喜欢的一件事是,当我点击选项卡以获取可能有很多值的完成时,它会在提示下方打印完成选项,将提示从底部向上推终端的。TCSH将离开旧的提示符,在下面的新行上打印完成内容,然后重新打印提示符和您到目前为止输入的命令。 有什么方法可以更改完成逻辑,以便将完成选项打印在提示上方?

2
这个ddrescue命令有什么作用吗?
在尝试从出现故障的硬盘驱动器中恢复数据的过程中,我正在运行命令ddrescue。 该命令已经运行了9天,从磁盘活动的声音中我认为它可能正在做某事。一直以来,命令行输出看起来或多或少是静态的: $ sudo ddrescue -r3 /dev/sdb /home/dave/RECOVERY/usb500.image /home/dave/recovery_usb500.logfile Press Ctrl-C to interrupt Initial status (read from logfile) rescued: 0 B, errsize: 0 B, errors: 0 Current status rescued: 0 B, errsize: 500 GB, current rate: 0 B/s ipos: 2539 MB, errors: 1, average rate: 0 B/s opos: 2539 MB, …

1
将剪贴板中的HTML保存为Markdown文本
我希望能够突出显示网页的一部分并将其复制到剪贴板,然后将其作为markdown保存到我的本地磁盘中。我需要一种有效的方法来做到这一点。 我当前麻烦的方法是: 突出显示部分并复制到剪贴板 打开Libre Office Writer 粘贴到作家 将Writer文档另存为HTML 打开终端 cd 到我保存HTML的目录 pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md 显然,我需要一个更好的方法!有什么建议么?

3
用密码安全地输入程序
在了解了在命令行中使用密码的问题之后,我需要找到一种用密码来给程序提供密码的方法,而不会出现问题(密码不会记录在某处)。 我有一个bash脚本,可以从源代码自动安装整个LAMP服务器:Apache,FastCGI,PHP和MySQL。这些安装需要密码,尤其是MySQL。 如何在不透露密码的情况下使脚本完全自动化? 编辑(6月9日,世界标准时间3:55): 我通过root在命令行上使用密码调用mysql: root@dor-desktop:/home/dor# PASS=`cat /home/dor/tmpf/pass` root@dor-desktop:/home/dor# mysql -u root -p"$PASS" Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 (在我们的情况下为PASS =“ p4ssw0rd”) 而且我是ps aux | grep mysql通过普通用户(dor)执行的,该用户没有向我显示密码! (某些)ps输出是: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND …

2
肉桂随机失去主题
有时(相当随机),我的Linux Mint 14 Cinnamon上的Nemo开始看起来像这样 通常,它看起来像这样: 重新启动肉桂(Alt+ F2,r,Enter)没有帮助,我需要注销,然后再登录。 有人可以告诉我, (我猜想X Window System发生了故障。dmesg什么都没显示。)如何诊断,到底发生了什么?(更新:似乎是 gnome-settings-daemon崩溃) 如何在不注销的情况下恢复正常主题(这需要关闭所有程序)? 如何减少此类事情的发生频率? 中的可疑条目 xsession-errors.lob [0x7f9590006068] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 300 ms) [0x7f9590006068] main input error: ES_OUT_RESET_PCR called [0x7f9590006068] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 1108 ms) …

1
尾-f,但首先吸收文件的内容(又名`cat -f`)
在跟踪新的更改之前,我需要显示整个文件,而不仅仅是最后10行(是的,我知道从概念上讲它不是尾巴)。换句话说,cat -f如果存在的话,类似的事情会做。尾巴的男人没有给我任何想法。我现在看到的唯一选择是以某种方式将cat(除了最后10行)和tail -f输出结合在一起。 有什么提示吗?
9 tail 

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.