Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答


6
CTRL + C不正确地用于返回命令行吗?
在使用tail -f并且想返回外壳时,我总是使用CTRL+C。或者,当我键入命令并想中止它并重新开始时,我只是CTRL+C回到一个空的命令行提示符。这被认为是不良做法吗?我有时会觉得有一种更好的方法可以脱离某些事物,但是真的不知道。
27 linux  bash 

4
测试shell脚本中变量是否为空
我已经看到以下技术在许多不同的shell上多次使用,以测试变量是否为空: if [ "x$1" = "x" ]; then # Variable is empty fi 与更规范的用法相比,使用此方法有什么好处if [ -z "$1" ]吗?可能是可移植性问题吗?


4
SSH在未设置密码短语的情况下在公用密钥上要求密码短语
我已经在服务器上使用公钥认证已有一段时间了,但是在尝试连接github的新“客户端”上遇到问题。我已经阅读了许多线程以验证我的权限设置正确,并为github生成了一个新密钥。我面临的问题是,即使我没有设置密码,ssh仍要求输入密码。我什至重新制作了密钥,以确保100%确保没有输入密码。 ssh -vvv提供以下相关输出: debug1: Offering public key: /home/me/.ssh/github.pub debug2: we sent a publickey packet, wait for reply debug3: Wrote 368 bytes for a total of 1495 debug1: Remote: Forced command: gerve mygithubusername c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7 debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: …

2
添加新的系统日志工具
我想使用syslog记录来自基于PHP的站点的消息。我的问题是-我可以添加自定义设施名称吗?我知道有一些预定义的功能,例如: auth, authpriv, cron, dæmon, kern, lpr, mail, mark, news, syslog, user, UUCP and local0 through local7. 据我了解,我可以为此使用local0-local6设施。 但是我只是觉得,如果可以在syslog中添加以下内容: mySiteName.* /var/log/mySiteName.log 对于其他人来说,从视觉上更容易理解。不幸的是,以上代码导致: rsyslogd-3000: unknown facility name "mySiteName" 那么-有没有办法使用自定义工具名称?
27 logs  syslog  rsyslog 

4
更新目录内容时如何运行命令?
有一个目录,A其内容经常被其他人更改。 我已经建立了一个个人目录B,其中存放了曾经存在的所有文件A。 目前,我只是偶尔运行rsync需要的档案从备份A到B。但是,我担心某些文件可能会被添加进来A,然后再从中删除,A然后才有机会将它们复制到B。 防止这种情况发生的最佳方法是什么?理想情况下,每次A获取内容更改时,我都希望运行当前的备份脚本。


4
两个文件是否被硬链接?
如何判断是否从命令行将两个文件进行了硬链接?例如一些链接: $ ls fileA fileB fileC $ is-hardlinked fileA fileB yes $ is-hardlinked fileA fileC no
27 shell  files 

1
Linux内核构建过程的每个步骤会发生什么?
我已经阅读了许多有关如何构建自定义内核并使用这些内核引导Ubuntu的教程,并成功地遵循了指南和引导的自定义内核,但是我不了解指南中的每个命令的作用以及实际发生的情况。每个命令。 在描述的过程Ubuntu的网站上做了很多工作,用的fakeroot,dpkg,make-kpkg,一些initramfs中,和其他可怕的东西,作品,但根本不帮我明白是怎么回事。 makelinux内核目录的输出是什么? 它会创建“压缩内核映像”吗? “压缩内核映像”文件的名称是什么,它放在哪里? 怎么make modules办? 应该make modules在之前还是之后完成make? 不会make自动构建模块吗? 将新生成的内核添加到可启动内核列表中的过程(用英语,而不仅仅是命令列表)是什么过程? 怎么make install办? 将make install它添加到我的启动内核的列表,以便我没有做任何事情吗? 是否有一个等效的make modules_install?

2
ssh_config中有多个“主机*”?
我对〜/ .ssh / config的工作方式的理解是,在配置文件中此点之后,每个“ Host”行对任何匹配的主机均生效。 我有许多需要连接的个人服务器和工作服务器。我正在尝试执行以下操作: # 通用设置 ControlMaster自动 ControlPath ~/.ssh/controlmaster/%r@%h:%p ForwardAgent是 ForwardX11是 GSSAPI身份验证否 PubkeyAuthentication是 #个人服务器 主持人* 用户harleypig IdentityFile〜/ .ssh / personal_id_rsa 主机host1 主机名host1.com 主机host2 主机名host2.com #工作服务器 主持人* 用户alan.young IdentityFile〜/ .ssh / work_id_rsa 主持工作1 主机名work1.companyserver.com 主持工作2 主机名work2.companyserver.com 主持人* 用户devuser 主机dev1 主机名dev1.companyserver.com 主机dev2 主机名dev2.companyserver.com 该文档似乎表明host1和host2应该使用'personal_id_rsa'和用户harleypig。work1,work2,dev1和dev2应该使用“ work_id_rsa”,并且前两个应该是用户“ alan.young”,而dev1和dev2应该是用户“ devuser” 但是,这没有发生。无论我首先输入的“主机*”是以下所有主机尝试连接的主机。我是误会还是错过了什么?
27 ssh  openssh 

4
了解联机帮助中的概要
我无法理解命令手册中的“概要”部分。例如,让我们看看它的联机帮助页man。由man man: SYNOPSIS man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justifi‐ cation] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ... man -k …
27 man 

2
什么是原始键盘模式?
根据Wikipedia的介绍,在魔术sysrq组合键中,存在以下组合alt+sysrq+r: 将键盘从原始模式(X11和svgalib等程序使用的模式)切换到XLATE模式 什么是原始模式?什么是XLATE模式? 一旦切换到XLATE模式,是否可以切换回原始模式? 如何知道键盘处于哪种模式?

2
LC_COLLATE是否(应该)影响字符范围?
整理顺序LC_COLLATE不仅定义了各个字符的排序顺序,而且还定义了字符范围的含义。还是呢?考虑以下代码段: unset LANGUAGE LC_ALL echo B | LC_COLLATE=en_US grep '[a-z]' 直观上,Bnot in中[a-z],因此不应输出任何内容。这就是在Ubuntu 8.04或10.04上发生的情况。但是,在某些运行Debian lenny或squeeze的计算机上,B发现了该字符,因为该范围a-z包括排序规则之间a和z排序规则中的所有内容,包括大写字母B到Z。 所有测试的系统的确en_US生成了语言环境。我还尝试过更改语言环境:在B上面匹配的机器上,{en_{AU,CA,GB,IE,US},fr_FR,it_IT,es_ES,de_DE}{iso8859-1,iso8859-15,utf-8}除日语(使用任何可用编码)和C/ 之外,每个可用语言环境(大多是基于拉丁语的:,也包括中文语言环境)中都会发生相同的情况POSIX。 当您超出ASCII时,字符范围在正则表达式中意味着什么?为什么一方面某些Debian安装与另一方面的其他Debian安装与Ubuntu之间有区别?其他系统如何表现?谁是正确的,谁应该报告错误? (请注意,我是专门询问字符范围的行为,例如[a-z]在en_US语言环境中,主要是在基于GNU libc的系统上。我不是在问如何匹配小写字母或ASCII小写字母。) 两个Debian的机器,一个地方B是在[a-z]和一个地方是不是,输出LC_COLLATE=en_US locale -k LC_COLLATE就是 collate-nrules=4 collate-rulesets="" collate-symb-hash-sizemb=1 collate-codeset="ISO-8859-1" 和的输出LC_COLLATE=en_US.utf8 locale -k LC_COLLATE是 collate-nrules=4 collate-rulesets="" collate-symb-hash-sizemb=2039 collate-codeset="UTF-8"


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.