Questions tagged «command-line»

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



6
了解不同的Linux发行版
在了解基于Linux的OS时,我有些困惑。当我下载Mint和Ubuntu的最新版本时,它们不是核心(内核)“相同”吗?似乎他们具有不同的GUI?从技术上来说,GUI不仅仅是在计算机启动时运行的程序吗?与Windows相同(dos是核心,而explorer.exe是gui)。有人能解释吗? 使用sudo apt-get命令不能从薄荷终端安装Ubuntu吗? 我知道这是一个混乱的问题,但是希望有人可以在GUI出现之前,然后在GUI出现之后澄清多个发行版之间的差异。

4
什么是“打印到文件”,可以从命令行使用它吗?
在Gnome打印对话框(不是cups-pdf)中选择“打印到文件”时: ...实际执行的命令是什么?(如图所示,我对后记变体感兴趣) 另一方面-也许没有命令调用;也许是gtk_print_operation_set_export_filename来自新的Gtk + Printing API? 在任何情况下-我是否可以通过命令行(而不是pdf2ps类似的方式)利用此特定代码?说来,通过使用lpr“打印到文件”到后记文件-就像我在使用上面的对话框一样?

2
如何为输入字符串打印Unicode字形名称?
我希望能够跑步 unicode-names 'abç' 并查看相应的Unicode字符名称: LATIN SMALL LETTER A LATIN SMALL LETTER B LATIN SMALL LETTER C WITH CEDILLA 在多种情况下,将字符串打印为一系列Unicode字形名称将很有用: 区分容易混淆的字符,例如“ i”和“í”。 说明文字字符串实际包含的内容(例如,不可打印或未分配的零宽度字符)。


3
如何通过“ tab complete”显示管道显示的命令列表?
在bash中使用命令时,我喜欢double选项卡选项以显示可用命令。一些命令比其他命令具有更多可能的匹配项: 选项卡补全的屏幕快照http://img13.imageshack.us/img13/5541/picturemhy.jpg 有没有办法将double选项卡的输出通过管道传递到somwehere,例如grep?我找到了相关的帖子,但是我仍然不确定如何实现将其通过管道传递到grep。

4
ls命令的操作方式因收件人而异
像这样的命令如何ls知道其标准输出是什么? ls根据目标标准输出的不同,操作似乎有所不同。例如,如果我这样做: ls /home/matt/tmp 结果是: a.txt b.txt c.txt 但是如果我这样做 ls /home/matt/tmp | cat 结果是(即每个结果换行): a.txt b.txt c.txt 进程被传递了一个文件描述符1,用于stdout吗?如何确定结果的格式?文件描述符是否显示信息?

2
为什么我不能使用chsh命令更改外壳?
至少我以为,我学会了一条新命令,因为该命令:的chsh行为不像所描述的那样。 它被描述为这样工作: cat /etc/shells 要知道安装了哪些外壳,因此可以在其中进行选择。 这样做echo $SHELL就知道了,它外壳所使用。 选择一种贝壳并输入 chsh -s /path/to/shell 输入密码并使用验证echo $SHELL您是否在新的外壳中。 我这样做了,输入密码时没有收到错误消息,但是我仍然在同一外壳中。 % echo $SHELL /bin/bash % cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash % chsh -s /bin/sh Password: % echo $SHELL /bin/bash

3
为什么我们必须在exec函数中两次传递文件名?
我读了第 8 章的Stevens撰写的《 UNIX环境中的高级编程》。我阅读并理解了exec函数的全部六个。 我注意到的一件事是,在所有exec函数中: 第一个参数是文件名/路径名(取决于exec函数)。 第二个参数是我们输入的argv [0] main(),它是文件名本身。 因此,这里我们必须在函数中两次传递文件名。 是否有任何原因(例如我们无法从第一个参数的路径名中获取文件名)?

3
grep:输入文件“ X”也是输出
我使用ubuntu 14.4,并尝试将grep命令的输出重定向到文件,但我不断收到此错误: grep: input file 'X' is also the output 我已经搜索了这个问题,才发现这是一个错误,ubuntu 12.4并且没有任何描述,有人可以帮助我解决这个问题吗? 我运行以下命令: grep -E -r -o -n r"%}(.*){%" > myfile

4
所有ssh命令的本地时间戳记录?
如何保留我在其中使用的所有远程命令的本地时间戳记ssh(命令行openssh客户端始于bash)? 要求: 必要: 100%客户端,无需依赖服务器日志 为每个用户配置或安装的日志存储在用户的主目录中。 支持区分与多个用户和主机的多个同时会话。 非侵入性(无需每次都激活它,并且不会严重干扰使用ssh) 高优先级: 没有记录输出或尽可能过滤掉 密码条目未记录或文件已加密 指示实际使用的命令(在完成制表符/历史记录,退格键,CTRL+ C等之后的操作) 很高兴有: 还记录链接会话中的命令(在远程ssh或su <user>会话期间输入的命令) 会话的开始和结束应被记录 一个bash基于简单的,非root用户的解决方案将是最好的(也许是该命令的alias或bash包装脚本ssh?) 我的技能水平: 我对编程并不陌生,但仍在学习bash和学习“ Linux方式”,因此,对带有简短说明的代码示例将不胜感激。 可能的策略 键盘记录程序 -问题:记录密码,不记录选项卡/历史记录完成(请参阅glenn的回答) screen每秒进行一次回滚转储,并diff在它们之间找到新的回滚行 -问题:如何以一种有用的自动化方式实现这一点? ssh "$@" | tee >(some_cleaner_function >> $logfile) -问题:无法在链接的会话中处理多行命令或历史记录,需要仔细清理(请参阅我的答案) 以上一些的组合 一个例子 以下SSH会话: user@local:~$ ssh user@remote Last login: Tue Jun 17 16:34:23 2014 from local user@remote:~$ cd …

3
diff -r仅适用于某些文件类型
有没有一种方法可以执行两个目录的递归比较,但仅比较(在各自位置)匹配特定文件名或文件类型谓词的文件? 例如,我想这样做的东西像 diff -r dir-a dir-b -filenames *.java, ivy.xml, build.xml ...甚至更好: diff -r dir-a dir-b -filetype text 显然,并不是强制性使用,diff因为我认为有一个咒语,find并且-exec diff也可能会成功(我只是不知道在后一种情况下如何生成互补文件路径)。

3
使用/ dev / random,/ dev / urandom生成随机数据
我正在寻找从命令行使用/dev/random(或/dev/urandom)的方法。特别是,我想知道如何使用这样的流stdin将随机数流写入stdout(每行一个数字)。 我对机器体系结构本机支持的所有数字类型的随机数感兴趣。例如,对于64位架构,这些将包括64位有符号和无符号整数以及64位浮点数。就范围而言,各种数字类型的最大范围都可以。 我知道如何使用通用解释器(例如Perl,Python等)来完成所有这些操作,但是我想知道如何使用外壳中的“更简单”的工具来执行此操作。(“简单”是指“即使在最小的Unix安装中也更有可能使用”。) 基本上,该问题减少了在命令行上将二进制数据转换为其字符串表示形式的问题。(例如,这不会:)printf '%f\n' $(head -c8 /dev/random)。 我正在寻找与外壳无关的答案。此外,之间的差别/dev/random,并/dev/urandom没有对这个问题很重要。我希望即使对结果的语义可能有所不同,任何适用于一个过程的过程也会适用于另一个过程。 我改编了SevenBitTony的答案以产生toints如下所示的函数等。 使用示例: % < /dev/urandom toprobs -n 5 0.237616281778928 0.85578479125532 0.0330049682019756 0.798812391655243 0.138499033902422 备注: 我使用hexdump而不是od因为它为我提供了一种更轻松的方式来格式化输出,使其符合我的期望。 令人讨厌的是,hexdump它不支持64位整数(wtf ???); 函数的接口需要工作(例如,它们应该接受-n5和-n 5),但是鉴于我可怜的shell编程技能,这是我可以快速组合的最好方法。(一如既往地欢迎评论/改进。) 我从这次练习中得到的最大惊喜是发现在shell上编写最基本的数字内容有多难(例如,读取十六进制浮点数或获取最大本机浮点值)... _tonums () { local FUNCTION_NAME=$1 BYTES=$2 CODE=$3 shift 3 local USAGE="Usage: $FUNCTION_NAME [-n <INTEGER>] [FILE...]" local -a PREFIX case $1 in …

2
完成的后台工作状态中的“退出2”是什么?
我有一个练习,将一些数据(某些目录的* conf)放入文件中,并且需要在后台进行。我做到了,我想知道输出消息的含义是什么: [A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 & 输入升起此行: [1] 2533 这是什么意思?在其他回车之后,出现另一条消息 [A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 这是什么意思?什么是“出口2”? 输入检查结果-似乎一切正常。 [A@localhost tests]$ [A@localhost tests]$ ls -l test1_6_conf.txt -rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt [A@localhost tests]$ 我正在使用CentOS …

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.