我希望能够突出显示网页的一部分并将其复制到剪贴板,然后将其作为 Markdown 保存到我的本地磁盘。我需要一种有效的方法来做到这一点。
我目前的繁琐方法是:
cd 到我保存 HTML 的目录pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md显然,我需要一个更好的方法!有什么建议?
在NFSv4的教程是经常可以看到的建议,一个共享的根目录导出到类似于整个子网这从拱门维基:
/etc/出口:
/srv/nfs 192.168.1.0/24(rw,sync,crossmnt,fsid=0,no_subtree_check)
/srv/nfs/music 192.168.1.0/24(rw,sync,no_subtree_check)
/srv/nfs/public 192.168.1.0/24(ro,all_squash,insecure,no_subtree_check) desktop(rw,sync,all_squash,anonuid=99,anongid=99,no_subtree_check)
Run Code Online (Sandbox Code Playgroud)
根本没有第一行会更安全吗?(在我的问题中,当我提到“第一行”时,我指的是上面代码段中的第一行导出行。)
在 NFSv4 中,fsid=0 是可选的,它似乎主要是为了方便缩短路径(通过将 /srv/nfs 转换为 /)。在我的初步测试中,只要您使用 /srv/nfs,导出就可以在没有第一行的情况下正常工作。第一行提供哪些重要功能(如果有)?
当我们知道至少还有一个像这样的绑定安装时,我还想考虑这个例子:
/srv/nfs/projects
Run Code Online (Sandbox Code Playgroud)
(假设与音乐绑定安装不同,“项目”的内容是敏感的。)
第一个导出行,正如上面所写的,似乎让 LAN 上的每个客户端都可以访问整个导出的文件系统,尤其是使用 crossmnt 和 no_subtree_check。我并不是建议忽略所有者和组权限,但我认为导出在没有第一行的情况下也能正常工作,并且其他绑定安装在 /srv/nfs 下(例如 /srv/nfs/projects)不会对整个子网不必要地开放,从而暴露有关所有者和组权限的任何潜在疏忽。
当然,可以添加类似于此正确共享“项目”的导出:
/etc/出口:
/srv/nfs/projects 192.168.1.123(rw,sync,root_squash,subtree_check)
Run Code Online (Sandbox Code Playgroud)
这条新线路是否受到第一条线路的任何影响?我看不出第一条出口线是如何起到任何重要作用的。
如果这条线有帮助或推荐,那么做这样的事情是否明智?
/srv/nfs 192.168.1.0/24(ro,sync,fsid=0,subtree_check,all_squash)
Run Code Online (Sandbox Code Playgroud)
接下来的更具体的导出将覆盖这个导出是否正确?例如,即使第一行更改为 ro 并使其更具限制性(如下例所示),以下行是否会正确授予对“音乐”的 rw 访问权限?
/srv/nfs 192.168.1.0/24(ro,sync,fsid=0,subtree_check,all_squash)
/srv/nfs/music 192.168.1.2(rw,sync,no_subtree_check)
Run Code Online (Sandbox Code Playgroud)
列出出口的顺序重要吗?什么决定优先级?更具体的地址(例如,192.168.1.2)是否会覆盖更通用的地址(192.168.1.0/24)?
注意:这个问题有一个重点主题,它可能会使用更好的标题来说明这一点,但到目前为止我还没有想出正确的标题。我欢迎编辑。
我想知道在我的系统上创建和注册新的自定义mime 类型的完整步骤。如果重要的话,我在 Arch Linux 上运行 KDE。
这些步骤应该包括编写 XML 文件并将图标与文件类型相关联,以及我需要做的任何其他事情。我更喜欢只使用xdg-mime命令行实用程序。
我希望了解为 1) 我的用户帐户以及 2) 系统范围添加此 mime 关联。
例如,假设我想使用名为 MyCertInspector 的自定义应用程序打开证书文件。我相信 XML 应该类似于:
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/publickey">
<glob-deleteall/>
<glob pattern="*.crt"/>
<glob pattern="*.cert"/>
</mime-type>
</mime-info>
Run Code Online (Sandbox Code Playgroud)
据我了解,当包含glob-deleteall在用户本地定义中时,它会删除任何现有的系统范围的 mime 关联。我想确认我的理解是正确的。
我也明白这个过程的第一步是检查是否存在带有我计划使用的文件扩展名的 MIME 类型。我不确定如何在 Arch 上做到这一点,因为 Arch 上没有/usr/share/applications/defaults.list并且(至少在我的系统上)没有系统范围的mimeapps.list文件。
对于答案,我希望有一个分步指南,涵盖每个需要的步骤,并提到在 Arch Linux 系统上应该放置的特定目录。
从我目前的研究来看,我认为一般步骤是:
sudo xdg-mime install …我的问题基本上是如何将我现有的两个步骤变成一个步骤。
我使用中间人服务器在两台计算机之间设置了一个有效的 SSH 隧道,如下所示:
Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop
Run Code Online (Sandbox Code Playgroud)
我目前所做的是从 Kubuntu_laptop 到 Debian_Server 然后从 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
Run Code Online (Sandbox Code Playgroud)
第2步:
admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost
Run Code Online (Sandbox Code Playgroud)
然后我通过 SSH(来自 kubuntu_laptop)连接到 kubuntu_desktop。
所有 SSH 连接都需要 RSA 密钥。密码登录一直被禁用。请注意,其中两台计算机的计算机用户帐户不同。
关于这条腿的连接:
Debian_Server<--nat_fw<--Kubuntu_desktop
Run Code Online (Sandbox Code Playgroud)
这是它的建立方式:
autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22
Run Code Online (Sandbox Code Playgroud)
注意 Kubuntu_desktop 以 user@mydebian.com(不是 admin@debian_server)的身份连接到中间人。但是当我连接到 Kubuntu_desktop 时,我以管理员用户身份连接。
我无法更改现有的监控端口 (5234) 或远程 (-R) 端口号(在此示例中为 1234)。我无法更改 SSH 安全性以允许密码登录。我无法打开任何新的防火墙端口。我无法更改用户帐户(笔记本电脑除外)。
我知道关于获取进程 ID 有上百万个问题,但这个问题似乎是独一无二的。谷歌没有给我答案,所以我希望 stackexhange 会有所帮助而不是关闭这个问题。
当涉及到 Java 时,查找进程 ID 似乎更棘手(pgrep 不能正常工作)。
此外,我需要在 bash 脚本中自动执行此操作。我遇到的一个问题是,当我使用ps aux | grepgrep 进程本身时,它总是会出现,所以在一个简单的 bash 脚本中处理结果对于我自己找出一个好的解决方案来说不够简单(以我有限的 bash 技能) .
我尝试过的一些事情:
示例 1 - 即使没有该名称的应用程序,它也会返回一个进程:
$ ps aux | grep -i anythingnotreal
user2 3040 0.0 0.0 4640 856 pts/3 S+ 18:17 0:00 grep --color=auto -i anythingnotreal
Run Code Online (Sandbox Code Playgroud)
示例 2 - 即使“java_app”当前正在运行,也不会返回任何内容:
$ pgrep java_app
Run Code Online (Sandbox Code Playgroud)
它什么都不返回。但是,这是“java_app”正在运行的证据:
$ ps aux | grep java_app
tester2 2880 0.7 2.8 733196 58444 ? Sl 18:02 0:07 java -jar /opt/java_app2/my_java_app.jar
tester2 3058 …Run Code Online (Sandbox Code Playgroud) 该sudo -A(SUDO_ASKPASS)选项显然原因sudo来失去的超时时间(例如,timestamp_timeout)设置。
我想使用 sudo -A 选项,但我想在 bash 脚本中保留默认超时(例如,在 Ubuntu 上为 15 分钟)。我想在 GUI 对话框中安全地询问用户密码,但我只想提示一次我的脚本(不是 50 次以上)。
此外,我不想以 root 用户身份运行我的整个脚本,因为我认为这是一个坏主意。此外,在这种情况下,由我的脚本创建的文件具有错误的所有权。
如果保留默认超时,则 sudo -A 选项对我有用。
从 sudo 手册:
选项:?A
通常,如果 sudo 需要密码,它会从用户的终端读取密码。如果指定了 ?A (askpass) 选项,则执行(可能是图形的)帮助程序来读取用户的密码并将密码输出到标准输出。如果设置了 SUDO_ASKPASS 环境变量,它会指定帮助程序的路径。否则,如果 /etc/sudo.conf 包含一行指定 askpass 程序,则将使用该值。例如:
# Path to askpass helper program
Path askpass /usr/X11R6/bin/ssh-askpass
Run Code Online (Sandbox Code Playgroud)
顺便说一句,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
$ …Run Code Online (Sandbox Code Playgroud) 我的目标是将 Kate 设置为在 Python 文件上正常工作,但在其他文档上使用不同的设置(制表符而不是空格)。我确信其他人正在这样做,但我想不出一个方便的解决方案。我很感激任何建议。
凯特在这里有缩进设置:
一种选择是“默认缩进模式”。该设置的一个选择是 Python。但是,我找不到在哪里设置(甚至显示)用于 Python 选择的选项。
此外,尚不清楚“默认缩进模式”与该页面上的缩进显式设置之间的交互是什么。一个会覆盖另一个吗?
PulseAudio 似乎无法识别Focusrite Scarlett 6i6 USB 音频接口。该2I2,但是,正确识别和它的作品如预期。我似乎无法让 6i6 在 2i2 工作的同一系统上工作。据说两者都是符合类标准的 USB 设备。我还在另一台安装了全新系统(Kubuntu 12.04)的计算机上尝试了 6i6,结果是一样的——PulseAudio 没有看到 6i6。
这是我找到的唯一官方信息:
Linux 和 Focusrite / Novation 产品 | Focusrite 开发 http://focusritedevelopmentteam.wordpress.com/2012/04/23/linux-and-focusrite-novation-products/
应该可以工作:Scarlett 2i2、2i4、8i6、18i6、6i6、18i8、18i20、Saffire 6 USB MkII(兼容 USB 音频类 2.0)、Forte 和 iTrack Solo。
我的经验是,6i6确实没有工作(而2I2一样)。我希望这里有人已经弄清楚了,或者可以告诉我我需要弄清楚的步骤。
$ lsusb
[snip other h/w]
Bus 001 Device 006: ID 1235:8012 Novation EMS
$ cat /proc/asound/cards
[snip other h/w]
1 [USB ]: USB-Audio - Scarlett 6i6 USB
Focusrite Scarlett 6i6 USB at usb-0000:00:1a.0-1.2, high speed
$ …Run Code Online (Sandbox Code Playgroud) 我在我的 PC 上运行 Kubuntu 12.04。我想让我电脑上的一个 USB 端口看起来就像是其他设备的 USB 大容量存储设备。换句话说,连接到这个 USB 端口的东西会认为我的整个 PC 只是一个外部硬盘驱动器或媒体播放器或其他一些 USB 大容量存储设备。这可能吗?如果是这样,我该怎么做?
我计划在 BTRFS 格式的旋转磁盘上创建两个子卷。我计划使用 nodatacow 挂载这些子卷之一,以便我可以在那里有效地存储虚拟机映像和数据库文件。
使用 snapper 启用 nodatacow 挂载的子卷的快照有什么问题吗?
对不使用 COW 的卷进行快照时,我应该注意什么?
到目前为止,我发现的只是 BTRFS 常见问题中的一句话:
可以关闭数据块的写时复制吗?
是的,有几种方法可以做到这一点。
通过使用 nodatacow 挂载来禁用它。这也意味着无数据和。 如果拍摄快照,COW 仍可能发生。
bash ×3
bash-script ×2
editors ×2
audio ×1
btrfs ×1
conversion ×1
debian ×1
drivers ×1
filesystems ×1
gui ×1
html ×1
indentation ×1
java ×1
kate ×1
kde ×1
kubuntu ×1
markdown ×1
mime-types ×1
nfsv4 ×1
password ×1
pulseaudio ×1
python ×1
shell-script ×1
snapshot ×1
ssh ×1
storage ×1
sudo ×1
tabulation ×1
ubuntu ×1
usb ×1
usb-drive ×1