Unix & Linux

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

4
为什么猫x >> x循环?
以下bash命令进入无限循环: $ echo hi > x $ cat x >> x 我可以猜到它开始写到stdout之后会cat继续读取x。但是,令人困惑的是,我自己的cat测试实现表现出不同的行为: // mycat.c #include <stdio.h> int main(int argc, char **argv) { FILE *f = fopen(argv[1], "rb"); char buf[4096]; int num_read; while ((num_read = fread(buf, 1, 4096, f))) { fwrite(buf, 1, num_read, stdout); fflush(stdout); } return 0; } 如果我运行: $ …

3
运行sh脚本:尽管具有可执行位和root权限,但«权限被拒绝»
我在VirtualBox中安装了Debian (用于各种通常会破坏系统的实验),并尝试启动VirtualBox guest虚拟机附加脚本。我以root用户身份登录并尝试启动autorun.sh,但是得到了“权限被拒绝”。ls -l显示该脚本具有可执行权限。 抱歉,我无法复制输出-VirtualBox在没有插件的情况下绝对没有用,因为共享目录或共享剪贴板都不起作用。但是请您确定,我手动复制了权利: #ls -l ./autorun.sh -r-xr-xr-x 1 root root 6966 Mar 26 13:56 ./autorun.sh 起初我以为脚本可能执行了导致错误的操作。我尝试用替换/bin/sh为#/pathtorealsh/sh -xv,但没有输出-似乎脚本甚至无法执行。 我什至不知道是什么原因造成的。

1
在Gtk + 3应用程序中更改图标大小
使用Gtk+ 2,我可以使用以下gtk-icon-sizes选项: gtk-icon-sizes = panel-menu=32,32:panel=32,32:gtk-menu=32,32:gtk-large-toolbar=64,64:gtk-small-toolbar=48,48:gtk-button=32,32 gtk-icon-sizes已弃用,并已在中删除Gtk+ 3。 如何更改中的图标大小Gtk+ 3?
17 gtk3 

2
如何找回丢失的别名?
我对.bash_aliases文件执行了echo命令,并删除了除测试别名以外的所有别名。但是,我仍然有一个打开的会话,其中已加载了别名(到tcl中?)。我可以从本次会议中找回他们吗?

2
如何运行systemd用户服务以在睡眠(又称为挂起,休眠)时触发?
基于各种资料,我凑齐了~/.config/systemd/user/screenlock.service: [Unit] Description=Lock X session Before=sleep.target [Service] Environment=DISPLAY=:0 ExecStart=/usr/bin/xautolock -locknow [Install] WantedBy=sleep.target 我已经使用启用了它systemctl --user enable screenlock.service。但是在重新启动,登录,挂起和恢复运行(通过systemctl suspend并通过关闭盖子进行测试)之后,屏幕并未锁定,并且中没有任何内容journalctl --user-unit screenlock.service。我究竟做错了什么? 运行DISPLAY=:0 /usr/bin/xautolock -locknow将按预期锁定屏幕。 $ systemctl --version systemd 215 +PAM -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP -APPARMOR $ awesome --version awesome v3.5.5 (Kansas City Shuffle) • Build: Apr 11 …



2
如何在MOTD中使用颜色?
我编辑了默认设置/etc/update-motd.d/00-header,添加了一些颜色以使其更易于阅读: printf "Welcome to \e[1;34m%s\e[0m \e[2m(%s %s %s)\e[0m\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)" 我可以在终端中很好地运行该行代码,但是当我00-header使用此信息进行编辑时,我得到了以明文形式打印的转义代码: Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m 如何在当天的留言中添加一点色彩?
17 shell  ubuntu  colors  motd 

3
tput的“ setf”和“ setaf”有什么区别?
该命令tput有两个用于设置颜色的选项,setf和setaf,但是它们在我的计算机上似乎都可以正常工作: $ tput setf 2 && echo 'Hello world!' $ tput setaf 2 && echo 'Hello world!' setb和和似乎有相似的对偶性setab。 两种选择之间有什么区别?
17 tput 

1
无人参与的升级和修改的配置文件
我们每个星期一都有无人值守升级软件包,通过安全升级来升级服务器,效果很好。但是今天,它使用新版本的PHP5升级了我们所有的服务器。因为我们已经移动了默认的PHP5-FPM配置文件,所以apt抱怨该文件已被移动,以及我们要对此进行处理(安装新版本,保留旧版本,显示差异,启动shell)。由于无人值守的升级不知道如何处理,因此它只是中止了,我们剩下数十台机器,直到通过监视重启PHP5-FPM为止。 因此,问题是-当下一次发生这种情况时,我们如何确保无人值守的升级可以处理这种情况?我们希望始终保留当前安装的版本。我尝试使用Google搜寻,但是空了出来。
17 apt  upgrade  dpkg 

1
start-stop-daemon无法正常工作,未写入pid文件
我正在尝试控制基于python的程序(不会与控制台分离) #!/bin/bash user=nobody pid=/var/run/xx.pid name=xx prog=/xx.py case $1 in start) /sbin/start-stop-daemon --start -b --oknodo --user "$user" --name "$name" --pidfile "$pid" --startas "$prog" --chuid nobody -- --daemon ;; stop) /sbin/start-stop-daemon --stop --oknodo --user "$user" --name "$name" --pidfile "$pid" --retry=TERM/5/KILL/1 ;; restart) ;; *) ;; esac 开始部分工作正常。我可以看到脚本已启动并正在运行,但是停止部分却没有。它只是说No xx found running; none killed. …

3
如何通过VNC转发声音?
我使用TightVNC和Remmina Remote Desktop通过VNC将Raspberry Pi连接到Ubuntu笔记本电脑。除了没有声音的事实外,它在大多数情况下都非常有效。 我到处搜索Google,查找通过VNC转发的声音,通过SSH隧道通过VNC的声音,通过PulseAudio Network Transparency进行的声音转发。我找不到方法。 有谁知道如何通过VNC获得声音?

2
如何获取以sudo执行bash脚本的用户名?
我想创建一个必须使用sudo执行的bash脚本,但应考虑执行它的非sudo用户的名称。因此,如果用户bob运行,sudo ./myscript.sh我想myscript.sh知道bob是执行它的那个人。 让我们看看里面myscript.sh: USER=$(whoami) # Do something that takes into account the username. 我怎么知道产生该过程的用户名?更具体地讲,我应该怎么用的,而不是whoami来获得bob,而不是root?

1
.d目录中的配置文件中的数字前缀是什么
文件xx.d夹中的许多unix配置文件都以数字作为前缀,例如: $ ls /etc/grub.d/ 00_header 10_linux 30_os-prober 40_custom 05_debian_theme 20_linux_xen 30_uefi-firmware 41_custom 这个号码有约定吗?这是什么意思 ? 可能只是为了避免名称冲突,但我想知道是否还有更多内容。

4
运行Shell脚本时提示用户以root用户身份登录
我遇到的问题是,当我输入命令时, su - root 在我的shell脚本文件的开头,它会提示用户输入密码,然后它不与外壳脚本的其余部分继续。然后,我必须通过终端手动定位并运行Shell脚本。我希望脚本确保用户以root用户身份登录,然后继续执行其余的Shell脚本。 换句话说,我想以任何用户身份运行脚本,但是一旦脚本开始执行,用户必须更改为root用户,然后以root用户身份继续其余脚本,直到完成。能做到吗?

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.