Questions tagged «command-line»

命令行是您的Shell的交互式界面。

2
命令删除输入中的前N行
背景 我正在运行SSH服务器,并且要删除此用户。我无法删除此用户,因为他当前正在运行一些我首先需要杀死的进程。 这是我当前正在使用的管道,以找出我当前正在使用的用户的所有进程ID: ps -u user | awk '{print $1;}' 输出看起来像这样: PID 2121 2122 2124 2125 2369 2370 我想用它kill -9杀死所有进程,所以我可以这样删除这个愚蠢的用户: ps -u user | awk '{print $1;}' | sudo xargs kill -9 但这由于PID标题而无法正常工作: kill: failed to parse argument: 'PID' 问题 我认为必须有一个简单的Unix命令才能删除输入的第一行。 我知道我可以使用tail它,但是我不想计算输入中包含多少行来准确地确定要显示的行数。 我正在寻找类似head或tail反转的内容(而不是仅显示流的第一部分/最后一部分,而是显示流的开始/结束以外的所有内容)。 注意 我设法通过简单地| grep [[:digit:]]在awk命令后添加来解决此问题,但是我仍在寻找删除文件第一行的方法,因为我认为在其他情况下这将非常有用。
11 command-line  sed  awk  tail  head 


5
gzip是原子的吗?
是gzip原子的吗? 如果gzip在gzip压缩文件的过程中停止该过程,会发生什么情况? 如果它不是原子的,并且已经在gzip *.txt进程中按了Ctrl + C ,如何安全地恢复? (我不仅对如何恢复感到好奇,而且还对是否gzip特别是原子性感到好奇。)

2
有选择地使用chmod命令
我想对特定目录下的所有文件和子目录设置755权限,但是我只想对不具有755权限的那些组件执行chmod 755。 find /main_directory/ -exec chmod 755 {} \; 如果find命令返回一个长列表,则将花费大量时间。我知道我可以使用stat命令来检查每个组件的八进制文件级别权限,然后使用if-else来切换文件权限,但是是否有任何单行方法使用find并xargs首先检查文件/目录具有的权限,然后将chmod其更改为755(如果设置为其他值)。

8
通过cat命令显示空白行
我在下面有一个files.txt列表: -rw-rw-r-- 1 root dev 11 May 16 12:18 20_SumActive.txt -rw-rw-r-- 1 root dev 11 May 16 12:18 22_SumActive.txt -rw-rw-r-- 1 root dev 7 May 16 12:18 24_SumActive.txt -rw-rw-r-- 1 root dev 0 May 16 12:18 26_SumActive.txt -rw-rw-r-- 1 root dev 0 May 16 12:18 28_SumActive.txt 输出: kpgmeddev01> cat 2[0-8]_SumActive.txt …

2
用作路径前缀的〜(波浪号)是什么?
编辑:这是/programming/998626/含义-tilde-in-linux-bash-not-home-directory /的副本。我没有以重复形式结束此问题的声誉。 我指的不是~主目录,而是这样的: $ ls ~foo/bar /some/mount/point/foo/bar 但是,如果我尝试使用不同的挂载点,例如: $ mount | ag "/dev " devfs on /dev (devfs, local, nobrowse) $ ls /dev/stdin /dev/stdin $ ls ~stdin zsh: no such user or named directory: stdin . # bash has a similar error message: ls: ~stdin: No such file or directory …
11 command-line  osx 

1
关于改变参数和选项含义的困惑,是否有官方的标准定义?
在理解关于命令语法的选项和参数时,我遇到了一个令人困惑的变化。 例如,我遇到了如下定义: command -a -b -c d e f 之间有一些不同-a -b -c,称它们为选项或开关以及d e f称它们为参数。 command -a -b -c d e f 其中的一些(例如bash手册)调用了所有-a -b -c d e f参数并进行了解释,分别可以从脚本中访问所有参数$1 $2 $3 $4 $5 $6。 command -a b=c 一些调用-a一个选项,b一个参数和c一个值,但是其他一些则像在前两点中那样将它们混合在一起,以多种形式调用所有-a b c参数。 这三个版本只是大量不同调用品种的示例,我什至不知道如何列出所有这些品种,但是我注意到肯定没有固定的命名约定。 或至少没有我所知道的标准化命名约定,因为我遇到了不同的随机来源,但是即使在Linux和GNU官方附属站点或手册中,我也可能遇到这种不一致的情况。 我可以参考毫无疑问的官方命名方案吗?

9
更改文件中的行顺序
我正在尝试更改特定模式下的行顺序。使用包含多行(例如99行)的文件。对于每三行,我希望第二行是第三行,第三行是第二行。 例。 1-输入: gi_1234 My cat is blue. I have a cat. gi_5678 My dog is orange. I also have a dog. ... 2-输出: gi_1234 I have a cat. My cat is blue. gi_5678 I also have a dog. My dog is orange. ...

3
删除文件,但仅当它是符号链接时
理想情况下,我想要这样的命令 rm --only-if-symlink link-to-file 因为我烧掉自己太多次了,所以不小心删除了文件而不是指向文件的符号链接。当涉及到sudo时,这尤其糟糕。现在,我当然要做一个a ls -al,以确保它确实是一个符号链接,但是这样很容易受到操作员错误(类似文件,错字等)和竞争条件(如果有人出于某种原因要我删除文件)的攻击。有什么方法可以检查文件是否为符号链接,并且仅在一个命令中才将其删除?
11 bash  command-line  rm 


4
以固定宽度打印手册页
使用示例命令 man apropos > outputfile 将生成一个文本文件,其中包含的格式化man页面apropos(与man apropos直接打印在屏幕上的字体有一些细微差别,例如粗体字符)。 但是我想手动设置生成的输出文件的最大行宽,以便所有段落都可以证明为该宽度。 man页面是通过创建的groff:例如,我试图将.ll 50原始.gz man源文本文件的段落放在前面,但是如果我需要在多个man页面上工作,这是微不足道的。此外,并非所有字符都可以识别: apropos.1:45: warning: can't find character with input code 195 apropos.1:45: warning: can't find character with input code 168 apropos.1:47: warning: can't find character with input code 178 apropos.1:131: warning: can't find character with input code 169 因此,我想知道是否存在更直接的方法。在创建过程中如何修改最大线宽outputfile?有一些特定的命令吗? 编辑: (以下所有注意事项均与Ubuntu …

2
如何从历史记录中的最后一个命令访问第二个参数?
我开始学习一些正则表达式,因此我反复使用此命令: grep pattern /usr/share/dict/american-english 只有带有模式的部分会发生变化,因此我不得不一次又一次写出长表达式“ / usr / share / dict / american-english ”。 有人说,可以通过键入隐含的字符组合而不是完整的表达式从命令历史中扩展命令的自变量。你能告诉我那些神秘的字符组合吗?

3
sudo -i返回错误
当我尝试使用root切换到root时sudo -i,出现错误/var/tmp/sclDvf3Vx: line 8: -i: command not found...但是,su -我将继续使用的作品。我绝不是Linux系统管理员,因此环境对我来说仍然很模糊。我想我的问题是: 为什么会引发错误? 这两个命令有什么区别? 你为什么要使用一个? 更新: 我正在使用CentOS版本:CentOS版本6.6(最终版) 这是要求我运行的一些命令的输出,在下面的注释中。 type sudo : sudo is /opt/centos/devtoolset-1.1/root/usr/bin/sudo sudo -V : /var/tmp/sclIU7gkA: line 8: -V: command not found grep'^root:' /etc/passwd : root:x:0:0:root:/root:/bin/bash 更新: 由于我需要C ++ 11支持,因此将它添加到了我的非root用户的〜/ .bashrc中。当我注释掉它后,重新输入ssh,我就可以运行sudo -i了,而且没有任何错误。 if [ "$(gcc -dumpversion)" != "4.7.2" ]; then scl …


2
在命令行上更改用户信息
我已经在Mint 16中创建了一个用户,但是想要更改其名字和姓氏而不删除它并从头开始。我知道如何使用GUI进行操作,但是我想知道终端命令的替代方法。我检查了usermod的手册页,但无法弄清楚sh的方式。

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.