小编cas*_*cas的帖子

Vi 撤消更新的文件?

我刚刚删除了文件中的一堆文本并保存了它。

是否可以恢复旧版本的文件?

我知道我应该采取备份,只是试试我的运气。

vim

8
推荐指数
1
解决办法
9221
查看次数

xml2 到哪里去了?

我已经xml2多次推荐该软件包。它是一个有用的工具,可以将合理格式良好的 XML 数据转换为面向行的格式,可以使用grepawk等进行搜索以进行简单的提取。甚至使用2xml包中的相应程序进行简单的更改。

debian 包描述说:

Package: xml2
Source: xml2 (0.4-3.1)
Version: 0.4-3.1+b1
Installed-Size: 66
Maintainer: Patrick Schoenfeld <schoenfeld@debian.org>
Architecture: amd64
Depends: libc6 (>= 2.14), libxml2 (>= 2.7.4)
Description-en: Convert between XML, HTML, CSV and a line-oriented format
 xml2 tools are used to convert XML, HTML and CSV to and from a
 line-oriented format more amenable to processing by classic Unix
 pipeline processing tools, like grep, sed, awk, cut, shell scripts,
 and so …
Run Code Online (Sandbox Code Playgroud)

source xml2

8
推荐指数
1
解决办法
819
查看次数

删除行尾的一个或多个字段,以“-”分隔

我要解析数据googleapis.txt

bucket,abc-def-ghi-45gjd4-wwxis
bucket,dde-wwq-ooi-66ciow-po22q
instance,jkl-mno-1-zzz-68dkakw-oo9w8
disk,pqr-stu-10-kuy-l2oxapw-rp4lt
Run Code Online (Sandbox Code Playgroud)

我期待下面的结果

bucket,abc-def-ghi
bucket,dde-wwq-ooi
instance,jkl-mno-1-zzz
disk,pqr-stu-10-kuy
Run Code Online (Sandbox Code Playgroud)

我想我必须更改-为空格然后运行此命令

cat googleapis.txt | awk '{$NF="";sub(/[ \t]+$/,"")}1' | awk '{$NF="";sub(/[ \t]+$/,"")}1'
Run Code Online (Sandbox Code Playgroud)

我从这个/sf/answers/1945609501/得到了 解析后,我将把空格-回连字符。

有谁知道解析它的最佳实践或单行 shell 命令?谢谢大家

awk text-processing

8
推荐指数
2
解决办法
771
查看次数

如何让git单独选择当前目录中的txt文件

如何选择.txt以当前目录结尾的所有文件,而忽略子目录中的所有文件?

*.txt也选择.txt以子目录结尾的所有文件。我如何省略它们?

目录结构:

current folder
|-first_file.txt
|-sub_folder
  |-second_file
Run Code Online (Sandbox Code Playgroud)

我正在尝试将 first_file 单独添加到 git 存储库中。但是这样做git add *.txt会将第一个和第二个文件添加到舞台上。我只想添加 first_file。

git wildcards

7
推荐指数
1
解决办法
3125
查看次数

为什么 xargs -I 暗示 -L 1

我已经看到为什么'find -exec cmd {} +'需要以'{} +'结尾?这解释了为什么{} +必须位于-exec cmd(*) 的末尾,现在我想知道为什么当您使用(或已弃用的)时 GNUxargs会恢复为每个输入参数一个命令...或者如手册页所述-I-i

-I 替换-str [...] 意味着 -x 和 -L 1。

例如:

$ seq 1 10 | xargs echo
1 2 3 4 5 6 7 8 9 10
$ seq 1 10 | xargs -I {} echo {}
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)

xargs 手册页的 BUGS 部分仅说明:

-L 选项与 -I 选项不兼容,但也许不应该兼容。

当您使用 -I 选项时,从输入读取的每一行都会在内部缓冲。这意味着与 -I 选项一起使用时 …

gnu xargs history

6
推荐指数
1
解决办法
2016
查看次数

SSD优化

我知道这已经讨论过很多次了,但是互联网上有很多不同的意见,哪些优化对 SSD 有利(以及是否使用它们)。此外,技术已经进步,一些建议可能已经过时。

FS 上的过度配置和可用空间

这似乎仍然相关,但根据ycombinator讨论中的用户 cabirum 的说法

您不必过度配置未分区的空间并保留 20% 的分区可用空间。这是一个或另一个,关键是要有足够的可用空间来进行适当的磨损平衡。

另一方面,在ArchWikinamhuy 的这篇文章中没有提到它。还有什么更简单的 Linux建议!

Noatime、nodirtime 和 relatime 挂载选项

namhuy建议两者,ArchWikieasylinux建议仅 noatime 和用户 andmarios 在ycombinator说:

noatime:这是旧的,使用relatime。

这是根据自 Linux 2.6.30 以来的手册页默认行为。

修剪

这可能是最大的混乱

  • easylinux/etc/rc.local. 不要使用discard挂载选项。
  • ArchWiki使用fstrim.servicefstrim.timer. 警告有关discard.
  • namhuy和simoncion ycombinator使用discard选项。

限制写入操作

ArchWikinamhuyeasylinux建议将浏览器缓存移至 RAM。这在ycombinator 中通常是不同意的。 …

ssd optimization

6
推荐指数
1
解决办法
1343
查看次数

如何“在你的sources.list 中加入一些‘源’URI”?

机器:东芝MK1646GSX,intel atom CPU@1.60Ghz,2048Mb。32 位。

操作系统:LINUX Lite 3.8

我试图安装 PIDGIN 依赖项:

 ~> sudo apt-get build-dep pidgin
Run Code Online (Sandbox Code Playgroud)

然后我得到了这个而不是安装build-dep

Reading package lists... Done
E: You must put some 'source' URIs in your     sources.list
Run Code Online (Sandbox Code Playgroud)

所以我搜索了,我发现消息来源说我应该rm -rf the sources.list,然后apt-get update列表会自己创建。结果并不好,就像我所期望的那样,该列表没有自行创建。之后,我创建了一个具有相同内容的新列表,我试图确保每一行都拥有它deb-src。所有的行都是正确的。但是当我尝试安装build-dep. 该怎么办?


从 justpaste 链接复制的 sources.list:

###### Ubuntu Main Repos
deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
# deb-src http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse


###### Ubuntu Update Repos
deb http://archive.ubuntu.com/ubuntu xenial-security main restricted …
Run Code Online (Sandbox Code Playgroud)

terminal apt pidgin

6
推荐指数
1
解决办法
1万
查看次数

添加“;” (分号)在小时和文件名之间的每个空格中

在这里得到一个列表,如下:

07:41 0840228.32P379995.de472.netzwerk.com.br,S=307582,W=311813:2,
04:11 1574312.116821186.der472.netzwerk.com.br,S=301166,W=307582:2,
06:22 1540376.98P379995.der472.netzwerk.com.br,S=311813,W=312391:2,
03:39 8712441.254782468.de472.netzwerk.com.br,S=307387,W=311615:2,
07:35 9841630.971395138.de472.netzwerk.com.br,S=303039,W=303039:2,
01:16 2369857.123688174.de472.netzwerk.com.br,S=298927,W=311615:2,
01:08 1845871.564387663.de472.netzwerk.com.br,S=304067,W=305586:2,
08:07 1236913.325890982.de472.netzwerk.com.br,S=299941,W=304067:2,
05:70 1086215.397447162.de472.netzwerk.com.br,S=306747,W=309789:2,
06:41 9513575.225890982.de472.netzwerk.com.br,S=305586,W=306747:2,
01:70 1965849.125749892.de472.netzwerk.com.br,S=313423,W=309171:2,
09:12 9564136.687415393.de472.netzwerk.com.br,S=309171,W=313423:2,
Run Code Online (Sandbox Code Playgroud)

反正可以加一个“;” (分号)在小时和文件名之间的每个空格中,结果如下?

07:41;0840228.32P379995.de472.netzwerk.com.br,S=307582,W=311813:2,
04:11;1574312.116821186.der472.netzwerk.com.br,S=301166,W=307582:2,
06:22;1540376.98P379995.der472.netzwerk.com.br,S=311813,W=312391:2,
03:39;8712441.254782468.de472.netzwerk.com.br,S=307387,W=311615:2,
07:35;9841630.971395138.de472.netzwerk.com.br,S=303039,W=303039:2,
01:16;2369857.123688174.de472.netzwerk.com.br,S=298927,W=311615:2,
01:08;1845871.564387663.de472.netzwerk.com.br,S=304067,W=305586:2,
08:07;1236913.325890982.de472.netzwerk.com.br,S=299941,W=304067:2,
05:70;1086215.397447162.de472.netzwerk.com.br,S=306747,W=309789:2,
06:41;9513575.225890982.de472.netzwerk.com.br,S=305586,W=306747:2,
01:70;1965849.125749892.de472.netzwerk.com.br,S=313423,W=309171:2,
09:12;9564136.687415393.de472.netzwerk.com.br,S=309171,W=313423:2,
Run Code Online (Sandbox Code Playgroud)

sed text-processing

6
推荐指数
1
解决办法
108
查看次数

如何为特定进程设置“最大打开文件”软硬限制?

我用cat /proc/<pid>/limits命令检查了最大打开文件硬限制和软限制,但我想知道这个值将如何设置,可以增加或减少吗?

这个值是在某个配置文件中设置的吗?

我试过ulimit命令,但这对设置特定进程的限制没有帮助。

# ulimit -n 2048
Run Code Online (Sandbox Code Playgroud)

但我仍然看到 1024

# cat /proc/<pid>/limits
..
Max open files            1024                 4096                 files
..
Run Code Online (Sandbox Code Playgroud)

我知道有人问过类似的问题,但我找不到更好的答案。

process file-descriptors limit files ulimit

5
推荐指数
1
解决办法
4808
查看次数

创建授权密钥后仍然提示输入密码

我有一台 Macbook pro,我成功设置了授权密钥,这样每次登录远程机器时都不必输入密码。

多年后,我有了一台安装了 Ubuntu 的新计算机。我现在正在尝试做同样的事情,但我遇到了问题。

到目前为止,我已经运行ssh-keygen -t dsa并将我的~/.ssh文件夹的权限更改为 700,并将id_dsa*文件的权限更改为 600

我已经更新了authorised_keys远程机器上的文件,现在它看起来像:

ssh-rsa KEYFORTHEOLDMACHINEWHICHISTILLUSE
ssh-dss KEYFORTHENEWMACHINE
Run Code Online (Sandbox Code Playgroud)

我在两者之间有一个空间。我不知道这是否重要,但我没有尝试空格,并且它们之间也有换行符。

我已经确保我的服务器上的权限也如上。

但是当我ssh进入时,仍然提示我输入密码。有什么明显的我做错了吗?


更新:

当我运行时ls -ld ~/ ~/.ssh ~/.ssh/authorized_keys,我得到以下信息:

drwxr-xr-x 5 myusername domain users       4096 Jun  8 20:58 /home/myusername/
drwx------ 2 myusername domain users       4096 Jun  8 18:06 /home/myusername/.ssh
-rw------- 1 myusername subdept-phys-sags 1044 Jun  8 18:06 /home/myusername/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

更新:

当我运行时ssh -vv remote_server,我得到以下信息:

OpenSSH_7.2p2 Ubuntu-4, OpenSSL 1.0.2g-fips  1 Mar 2016
debug1: …
Run Code Online (Sandbox Code Playgroud)

ssh ubuntu

5
推荐指数
1
解决办法
495
查看次数