Unix & Linux

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

15
您如何选择发行版?[关闭]
我目前正在考虑在旧笔记本电脑上安装Linux(尽管仍然可以选择BSD)发行版。但是,我不确定如何遍历所有选项-滚动发布而不是发行版X与发行版Y(我个人一直在研究Debian,Ubuntu,Fedora,Arch和OpenSUSE,但我想那是个人喜好),等等。老实说,很难做出选择。 在安装发行版时,如何确定要使用哪个发行版?是个人喜好(您使用自己喜欢的发行版)还是针对某些任务或特定用户的发行版有一些指导?

2
Ubuntu可用服务的完整列表
这个问题与以下问题非常相似:可用服务列表 对于我的特定情况,我想知道是否有一个特定的命令来显示Ubuntu下的服务的完整列表。 我确实运行了a ls /etc/init.d,它确实显示了一个非常全面的列表,但是缺少一些条目。我也看到apache2,myslq,gdm,和很多其他人。 但是其中一些人不见了。一个示例是plexmediaserver(我最近安装了plex服务器,在查找其服务名称时遇到了一些困难) 因此,请用尽可能少的词重新表述这个问题: 是否有一种方法可以获取{x} 关于 service {x} status 注意:使用Ubuntu 15.04
60 ubuntu  services 

4
我们如何允许非root用户控制system.d服务?
使用sysvinit,这样的sudoers条目就足够了: %webteam cms051=/sbin/service httpd * 这将允许以下命令: sudo service httpd status sudo service httpd restart 现在,使用systemd,服务名称是最后一个参数。即,服务重启将通过以下方式完成: systemctl restart httpd.service 自然地,我认为将命令定义为systemctl * httpd.service可行,但是将允许诸如此类的操作systemctl restart puppet.service httpd.service,而不是所需的效果。 考虑到这一点,那么非root用户控制system.d服务的最佳方法是什么?这不必是sudoers; 也许更改文件许可权可能就足够了?

7
记录SSH访问尝试
我已经用openssh配置了一个ubuntu服务器,以便连接到它并执行来自电话或笔记本电脑等远程系统的命令。问题是...我可能不是唯一的一个。 有没有办法知道对服务器进行的所有登录尝试?
60 ssh  logs 

5
如何运行涉及使用sudo重定向或管道传输的命令?
我正在尝试遵循我认为是使用sudo而不是root帐户的最佳实践。 我正在运行一个简单的concat文件操作,例如: sudo echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock 在以普通用户身份运行的“ >>”右侧,此操作失败。添加额外的sudo也会失败(预期的行为,因为通过管道传递给sudo命令而不是文件)。 例子仅此而已,但已在root帐户下进行了验证和测试。

3
在一个输出中观察多个日志文件
是否有一种简单的方法可以执行类似的操作,tail -f mylogfile但是可以显示多个文件的更改(也许在每行的开头添加了文件名)?还是GUI工具?我正在运行Debian。
60 logs  tail 

4
如何检查用户是否可以访问给定文件?
* nix用户权限确实很简单,但是当您在到达给定文件之前必须考虑所有父目录访问权限时,事情可能会变得混乱。如何检查用户是否具有足够的特权?如果不是,那么哪个目录拒绝访问? 例如,假设一个用户joe和一个文件/long/path/to/file.txt。即使file.txt已更改为777,joe仍必须能够访问/long/,然后/long/path/再访问/long/path/to/。我需要的是一种自动检查此方法的方法。如果joe没有访问权限,我也想知道他在哪里被拒绝了。也许他可以访问/long/,但不能/long/path/。


7
如何删除.bash_history中的重复项并保留顺序?
我非常喜欢使用control+r递归搜索命令历史记录。我发现了一些喜欢使用的不错的选择: # ignore duplicate commands, ignore commands starting with a space export HISTCONTROL=erasedups:ignorespace # keep the last 5000 entries export HISTSIZE=5000 # append to the history instead of overwriting (good for multiple connections) shopt -s histappend 对我来说,唯一的问题是erasedups仅擦除连续的重复项-因此使用以下命令字符串: ls cd ~ ls 该ls命令实际上将被记录两次。我考虑过定期运行cron: cat .bash_history | sort | uniq > temp.txt …

2
dd什么时候适合复制数据?(或何时分别使用read()和write())
简短版本:在什么情况下可以dd安全地用于复制数据,安全意味着不存在由于部分读取或写入而导致损坏的风险? 长版—前言: dd通常用于复制数据,尤其是从设备复制数据或向设备复制数据(示例)。有时,它被赋予了神秘的属性,即能够以比其他工具更低的级别访问设备(实际上,正是设备文件在发挥作用)-但dd if=/dev/sda与相同cat /dev/sda。dd有时被认为是更快,但cat在实践中可以击败它。但是,它dd具有独特的属性,有时使其真正有用。 问题: dd if=foo of=bar实际上与并不相同cat <foo >bar。在大多数unices¹上,dd只需调用一次即可read()。(我发现POSIX对“读取输入块”中的内容构成模糊dd。)如果read()返回部分结果(根据POSIX和其他参考文档,除非实现文档另有说明,否则允许这样做),将复制部分块。确实存在相同的问题write()。 观察:在实践中,我发现它dd可以应付块设备和常规文件,但这可能只是我没有做太多的事情。当涉及管道时,不难dd犯错。例如,尝试以下代码: yes | dd of=out bs=1024k count=10 并检查out文件的大小(可能在10MB以下)。 问题:在什么情况下可以dd安全地复制数据?换句话说,在块大小,实现,文件类型等上的什么条件可以确保dd将复制所有数据? (GNU dd有一个fullblock标志来告诉它调用read()或write()在循环中进行传输,以便传输完整的块。因此dd iflag=fullblock始终是安全的。我的问题是不使用这些标志(在其他实现中不存在)的情况) ¹ 我已经检查过OpenBSD,GNU coreutils和BusyBox。
60 io  dd 

3
了解“ IFS =读-r行”
我显然明白,可以为内部字段分隔符变量添加值。例如: $ IFS=blah $ echo "$IFS" blah $ 我也知道这read -r line会将数据从保存stdin到名为的变量line: $ read -r line <<< blah $ echo "$line" blah $ 但是,命令如何分配变量值?它是否首先存储数据from stdin到变量line,然后给出lineto的值IFS?


3
在“滚动”到上一个命令后使用BASH ...如何在此历史记录中继续前进到下一个?
抱歉,这个标题不是我设计过的最优雅的标题。 但是我想很多人会对此感到疑惑,我的问题可能是愚蠢的……我只能说我还没有找到。 当我说“向上滚动”时,我的意思是使用键盘上的“向上箭头”键,它显然会从最新命令开始沿历史记录向上滚动。 因此,您找到了一个命令,也许有30个命令回退了……然后运行它。然后您想运行最初在它之后的命令...是否有一种简便的方法来执行此操作?或者那些精通BASH的人如何做到这一点?



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.