来自man bash
:
!#
到目前为止键入的整个命令行。
来自man zshall
:
!#
参考目前输入的命令行。该行被视为完整,直到包含!#
引用的单词之前的单词。
我唯一能想到的是:
cd ..;!#!#!#
要上 8 个步骤:))
来自man bash
:
!#
到目前为止键入的整个命令行。
来自man zshall
:
!#
参考目前输入的命令行。该行被视为完整,直到包含!#
引用的单词之前的单词。
我唯一能想到的是:
cd ..;!#!#!#
要上 8 个步骤:))
我有一个脚本s
:
echo a &
echo b &
echo c &
现在我想知道脚本完成需要多长时间。我试试
time bash s
但它给了我一个不正确的即时结果(我的脚本当然比我在这里写的要复杂得多并且需要很多时间)我怎么能要求时间等待所有子流程完成。
我ssh
编辑到我的服务器并运行wget -r -np zzz.aaa/bbb/ccc
它并开始工作。然后我的互联网连接(在我家)被中断了,我担心它wget
已经被hup
ped 因为ssh
连接丢失了,因此终端已经死了。但是后来我ssh
编辑到我的服务器并意识到它仍在运行并将输出放入wget.log
并下载内容。有人可以向我解释一下这里可能发生了什么吗?
这就是ps
给我的:
PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
32283 0.6 29.4 179824 147088 ? S 14:00 1:53 wget -r -np zzz.aaa/bbb/ccc
?
它在 ? 列中的含义(问号)是什么意思tty
?
我发现自己<command> --help | grep <feature>
每天都在做非常非常频繁的事情。我想知道是否有可能使类似的东西^^
扩展到"--help | grep"
然后我这样做:
ls ^^ size
这将执行以下操作:
ls --help | grep size
所以我有一个 100GB 的文本文件,我想把它分成 10000 个文件。我曾经用类似的方法来完成这样的任务:
split -l <number of lines> -d --additional-suffix=.txt bigfile small_files_prefix
但是我试图用这个来做到这一点,我监控了我的系统并意识到它没有使用太多的内存或 CPU,所以我意识到它只是用一个线程从头到尾读取文件。
是否有任何低级(或非常高性能)的工具可以用多个线程完成这样的任务。
如果有必要,我什至更愿意复制文件,如果可能更快的话,我会利用我的多个内核(我不这么认为!)。
我有一个mycommand.sh
无法运行两次的脚本。我想将输出拆分为两个不同的文件,一个文件包含与正则表达式匹配的行,另一个文件包含与正则表达式不匹配的行。我希望拥有的基本上是这样的:
./mycommand.sh | grep -E 'some|very*|cool[regex].here;)' --match file1.txt --not-match file2.txt
我知道我可以将输出重定向到一个文件,然后重定向到两个不同的带有和不带 -v 选项的 grep,并将它们的输出重定向到两个不同的文件。但我只是想知道是否可以用一个 grep 来做到这一点。
那么,是否有可能在一行中实现我想要的?
我有一个脚本s1
,它输出用“,”分隔的数字列表,例如1,2,3,4
。现在我想将这些数字s2
作为参数提供给脚本,以便 s2 将在它们中的每一个上运行并将其结果输出到单独的行中。例如,如果 s2 将数字乘以 2,这将是我正在寻找的结果:
2
4
6
8
我现在正在做的是:
s1 | xargs -d "," | xargs -n1 s2
但是我觉得我这样做很愚蠢!所以我的问题是:
正确的做法是什么?
我的解决方案的问题是它调用 xargs 两次并迭代输入两次,这在我看来当然是不合理的性能!答案xargs -d "," -n1
似乎不错,但我不确定它是否只迭代一次。如果是,请在您的答案中验证,我会接受。顺便说一句,我宁愿不使用 Perl,因为它仍在迭代两次,而且 Perl 可能不存在于许多系统上。
我对我想知道其用户列表的服务器具有非 sudo ssh 访问权限,我认为该服务器正在使用 ldap,因为:
-bash-4.2$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
但:
-bash-4.2$ cd /etc/sssd/
-bash: cd: /etc/sssd/: No such file or directory
请注意两者都没有/etc/passwd
,ls -lsa /var
或者getent passwd
没有给出我想要的列表(他们甚至不包括我自己的用户名)
那么,有没有人知道如何获取该服务器的用户名和 ID 列表?
-bash-4.2$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.11 (wheezy)
Release: 7.11
Codename: wheezy
起初我想在我没有 root 访问权限的服务器上安装一个包。由于我没有 root 访问权限,因此我尝试自己构建它,但在配置阶段出现错误。
这是我运行的命令:
cd ~
git clone https://github.com/stella-emu/stella.git
cd stella/
./configure --prefix=$HOME/atari
然后我收到以下错误:
Running Stella configure...
mkdir: cannot create directory `/tmp/cg-2059': Permission denied
config.guess: cannot create a temporary directory in /tmp
Looking for C++ compiler... none found!
有什么办法可以解决这个问题吗?
以下是一些诊断信息
-bash-4.2$ ls -ld /tmp
drwxr-xr-x 7 root root 4096 Dec 9 20:39 /tmp
-bash-4.2$ find /tmp -mindepth 1 -maxdepth 1 -printf x | wc -c
12
-bash-4.2$ mkdir ~/tmp
-bash-4.2$ ls
amin bs94 Maildir public_html skel.tar.gz speedtest_cli.py speedtest.py stella tajdari tmp
-bash-4.2$ cd stella/
-bash-4.2$ TMPDIR="$HOME/tmp" ./configure --prefix=$HOME/atari
Running Stella configure...
Looking for C++ compiler... none found!
-bash-4.2$ type -a c++ g++ clang++
c++ is /usr/bin/c++
g++ is /usr/bin/g++
-bash: type: clang++: not found
-bash-4.2$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.11 (wheezy)
Release: 7.11
Codename: wheezy
所以现在我尝试使用junest但在运行后再次使用:
git clone git://github.com/fsquillace/junest ~/.local/share/junest
export PATH=~/.local/share/junest/bin:$PATH
我得到:
-bash-4.2$ junest
mktemp: failed to create directory via template `/tmp/junest.XXXXXXXXXX': Permission denied
Error: null argument
-bash-4.2$ junest -u
mktemp: failed to create directory via template `/tmp/junest.XXXXXXXXXX': Permission denied
Error: null argument