例如,我有一个文件(用 生成echo -e "var1\tvar2\t\var3\tvar4" > foo)输出为:
$ cat foo
case elems meshing nlsys
uniform 2350 0.076662 2.78
non-conformal 348 0.013332 0.55
scale 318 0.013333 0.44
smarter 504 0.016666 0.64
submodel 360 .009999 0.40
unstruct-quad 640 0.019999 0.80
unstruct-tri 1484 0.01 0.88
Run Code Online (Sandbox Code Playgroud)
我更喜欢这样的输出(这里我使用vim和:set tabstop=14):
case elems meshing nlsys
uniform 2350 0.076662 2.78
non-conformal 348 0.013332 0.55
scale 318 0.013333 0.44
smarter 504 0.016666 0.64
submodel 360 .009999 0.40
unstruct-quad 640 0.019999 0.80
unstruct-tri 1484 0.01 …Run Code Online (Sandbox Code Playgroud) 我有几个通过sshfs挂载的目录。我有时会与服务器断开连接(我无法配置)。我通常像这样挂载目录
sshfs user@server.example.com:/home/user /mnt/example
Run Code Online (Sandbox Code Playgroud)
当服务器断开连接时,sshfs 子系统不会卸载/释放目录,而是将其锁定为不可访问。键入时,安装仍然可见mount。当我打字
ls /mnt/example
Run Code Online (Sandbox Code Playgroud)
进程被锁定(Ctrl+c也无济于事)。我因此做
sudo umount -l /mnt/example
# find pid of corresponding process:
ps aux | grep example.com
kill -9 <pid of locked sshfs process>
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来处理这个问题?显然sshfs应该执行卸载和清理......理想情况下它会自动重新连接。
我知道像Gentoo或Slackware这样的基于源代码的发行版不需要*-dev程序版本。它们包括源代码以及用于在本地编译所有内容的头文件。
但是我从未*-dev在Arch Linux 中看到过包,尽管它是基于包的。我*-dev在其他发行版中遇到了很多包。
我在一个目录中有几个文件:
$ ls | wc -l
9376
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么使用ls *and有这么大的时差ls?
$ time ls > /dev/null
real 0m0.118s
user 0m0.106s
sys 0m0.011s
Run Code Online (Sandbox Code Playgroud)
和
$ time ls * > /dev/null
real 1m32.602s
user 0m0.233s
sys 0m0.438s
Run Code Online (Sandbox Code Playgroud)
好吧,这是一个极端的例子,可能会有所增强,因为该目录位于通用并行文件系统 (GPFS) 上。但我也可以看到本地文件系统的显着放缓。
编辑:
$ time ls -l > /dev/null
real 0m58.772s
user 0m0.113s
sys 0m0.452s
$ time ls -l * > /dev/null
real 1m19.538s
user 0m0.252s
sys 0m0.461s
Run Code Online (Sandbox Code Playgroud)
我应该补充一点,在我的例子中没有子目录:
$ diff <(ls) <(ls *)
$
Run Code Online (Sandbox Code Playgroud) less根据这个线程,它本身不能进行语法高亮显示。
但是,git diff在它的默认寻呼机 less 中很好地显示了彩色输出。当我将 的输出重定向git diff到文件中时,看不到颜色转义序列。
是否git diff知道它被发送到哪里,并相应地格式化输出?那怎么办呢?
我只是注意到 git 为diff输出着色(例如git diff),但是,它通常不知道如何语法突出显示。例如
git show 415fec6:log.tex
Run Code Online (Sandbox Code Playgroud)
不启用任何类似 TeX 的语法。
阅读git资料,我发现以下提示
在diff.h:
int use_color;
Run Code Online (Sandbox Code Playgroud)
我以前指的是语法高亮,但那是不正确的。我的意思是输出着色,参见例如

在这个关于更改UID用户的问题的后续行动中,建议更改系统上所有文件的所有权(此答案)
find / -uid 1000 -exec chown 5000 '{}' \+
Run Code Online (Sandbox Code Playgroud)
这里1000是旧的UID和5000是新的。我刚刚列出了所有文件(外部/home/seb)UID=1000,发现大多数都在/proc目录中。
find / -uid 1000 \! -wholename '/home/seb/*'
Run Code Online (Sandbox Code Playgroud)
执行建议的更改是否需要保存或有必要UID?我不熟悉这些/proc文件的用途,但我认为当我使用新用户登录时,它们会根据需要创建。
注意:也有一些/dev属于 的文件UID=1000,但这些只是用户打开的终端(例如/dev/pts/23)
我的公司使用一个过时的小型集群(CentOS 5.4)来进行数字运算(更具体地说是有限元计算)。他们使用的是商业软件包,对 Linux 一无所知。只要机器运行,他们就不想改变机器上的任何东西,我认为这是一个时间有效的策略。我没有管理权限。
我可以让他们安装较小的包,但不能将例如 python 版本从 2.4 更改为 2.6+,所以我决定编译当前版本 ( ./configure --prefix=/home/mysuser/root2) 并遇到了一些依赖项问题(例如 readline、zlib、curses 的错误版本, bz2 ... 或未找到软件包)。我还需要更新抱怨缺少GMP,MPFR和MPC.
这样做的原因是我想编译其他测试软件来在这些机器上运行。我该怎么做才能有效地安装我需要的软件包以编译我需要使用的软件?我在其他地方使用archlinux并且会发现能够按照这些方式做一些事情非常方便
pacman --root /home/myuser/root2 -S <package>
Run Code Online (Sandbox Code Playgroud)
但我不知道这是否可能或聪明。
其他相关的 SE 问题:gentoo-prefix和pkgsrc似乎并不那么容易(不过我可能错了)。
我有一个 shell 脚本,它将由多个实例执行,如果一个实例访问一个文件并执行一些操作,我如何确保其他实例没有访问同一个文件并破坏数据?
我的问题不是关于控制并行执行,而是处理文件锁定或标记机制。
请求一些建议以继续。
对于基准测试,我运行了以下命令:
for i in {1..100000000}; do
echo "$i" line >> file
done
Run Code Online (Sandbox Code Playgroud)
Bash扩展了大括号并将列表存储1 2 3 4 5 6 ... 100000000在内存中。
我认为这会以某种方式解除分配。毕竟,它是一个临时变量。几天过去了,该bash进程仍然占用 17.9GB 的内存。
我可以强制 bash 清除这些临时变量吗?我不能使用unset,因为我不知道变量名。(显然unset i没有帮助)
当然,一种解决方法是关闭外壳并打开一个新的外壳。
我还在 bash 邮件列表中询问了这个问题,并得到了Chet Ramsey的有用回复:
那不是内存泄漏。Malloc 实现不需要将内存释放回内核;bash malloc(和其他人)只在有限的情况下这样做。使用 mmap 或 sbrk 从内核获取并由 malloc 实现保存在缓存中的内存不构成泄漏。泄漏是应用程序或 malloc 本身不再有句柄的内存。
malloc() 基本上是应用程序和内核之间的缓存。它可以决定何时以及如何将内存返还给内核。
compiling ×2
shell ×2
arch-linux ×1
bash ×1
cat ×1
colordiff ×1
colors ×1
columns ×1
command-line ×1
diff ×1
dwm ×1
files ×1
filesystems ×1
git ×1
linux ×1
lock ×1
ls ×1
memory ×1
mount ×1
open-files ×1
pager ×1
performance ×1
proc ×1
setuid ×1
shell-script ×1
source ×1
ssh ×1
sshfs ×1
su ×1
time ×1
upgrade ×1
users ×1
xterm ×1