uuidd
我不小心从系统中删除了系统用户及其组。
uuidd
我想重新安装它们所属的软件包,但是当我在网上查找手册时,它引用了该util-linux
软件包。重新安装此软件包sudo apt --reinstall install util-linux
不会恢复此用户。
如何找到要重新安装和修复系统的软件包?
uuidd
我不小心从系统中删除了系统用户及其组。
uuidd
我想重新安装它们所属的软件包,但是当我在网上查找手册时,它引用了该util-linux
软件包。重新安装此软件包sudo apt --reinstall install util-linux
不会恢复此用户。
如何找到要重新安装和修复系统的软件包?
我想看看我是通过 ssh 连接还是运行本地终端。
如果我只是 ssh 进入服务器而不通过更改为 root sudo
,这很容易。任何变量$SSH_CLIENT
,$SSH_CONNECTION
或$SSH_TTY
可用于检查一个是通过 SSH 连接还是本地连接。
问题:当我提升到 root 帐户sudo -i
以执行管理任务时,这些变量都没有帮助 - 它们都是空的。
找出连接是本地连接还是通过 SSH 的最佳方法是什么?
编辑:通过接受的答案,很容易有一个反映 ssh 状态和权限的不显眼的 bash 提示:
if [ "$color_prompt" = yes ]; then
# when system is accessed via SSH, hostname with light grey background
if [[ $(pstree -s $$) = *sshd* ]]; then sshbg="\[\033[48;5;7m\]"; fi
# when used as root, change username to orange and '#' to red for prompt
if [ $(id -u) -eq 0 ]; then usercol="\[\033[38;5;3m\]"; hashcol="\[\033[38;5;1m\]"; else usercol="\[\033[38;5;2m\]"; fi
# bash PS1 prompt
PS1="${usercol}\u\[$(tput sgr0)\]@\[$(tput sgr0)\]\[\033[38;5;4m\]${sshbg}\h\[$(tput sgr0)\]:\[$(tput sgr0)\]\[\033[38;5;6m\]\w\[$(tput sgr0)\]${hashcol}\\$ \[$(tput sgr0)\]"
unset sshbg rootcol hashcol
fi
该pstree
部分的定时版本运行时间不到 20 毫秒,因此可以在不引入明显延迟的情况下使用它。
我正在使用以 zfs 作为根文件系统的 Ubuntu 系统(19.10)。
我将系统安装为双引导系统,方法是安装在一个较小的磁盘上,然后将分区转移到一个较大的磁盘上,其中已经有 Windows 分区,因此 gpt 分区方案现在具有以下分区:
第 1 部分 - UEFI 引导 - /boot/efi
第 2 部分 - Grub 引导分区 - /boot/grub
第 3 部分 - 交换
第 4 部分 - zfs 引导 (bpool)
第 5 部分 - zfs root (rpool)
第 6 部分 - Windows MSR
第 7 部分 - Windows系统
第 8 部分 - Windows RE
所以,我现在想重新安装系统,原因不相关。如果它更灵活,我什至愿意测试 20.04。我怎样才能最好地重新安装系统?普通的 Ubuntu 安装程序不了解 zfs,并且 zfs 选项仅适用于整个磁盘。
换句话说,我想再次安装 Ubuntu,第 3 - 5 部分可以删除/格式化,其他部分应该保持不变。
我想在我的tmux
会话中有一个自定义页脚conky
,我的 conky 配置按照 conky 官方推荐screen
:
conky.config = {
out_to_x = false,
out_to_console = true,
total_run_times = 1
};
conky.text = [[${time %H:%M}|free space:${fs_free /}|$loadavg|free mem:$memeasyfree]]
tmux
仅包含一行.tmux.conf
:
set-option -g status-left "#(conky -i 1 -c ~/.conkyintmux) |"
但是当我开始时tmux
,页脚行显示
13:48|free0:bash* "D830-2" 13:48 06-Sep-18
并且没有任何.tmux.conf
(不叫 conky),它会读
[0] 0:bash* "D830-2" 13:53 06-Sep-18
预期输出:
13:48|free space:8.0GB|0.1 0.1 0.1|free mem:548MB|[0] 0:bash* "D830-2" 13:53 06-Sep-18
开始看看是否一切都如预期的那样。
我怎样才能改变 的行为tmux
?
在最近一次 dist-upgrade 之后,我破坏了手册页。症状是man <any command here>
拒绝加载任何内容并显示空白控制台,除了左上角的行:
Manual page man(1) line ?/? (END) (press h for help or q to quit)
退出后,我收到以下错误行:
man: command exited with status 4: /usr/lib/man-db/zsoelim | /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE | preconv -e UTF-8 | tbl | nroff -mandoc -rLL=195n -rLT=195n -Tutf8
这对我没有帮助。我试过了sudo mandb
,sudo mandb -c
但没有成功。
我通过 ssh 登录的其中一台机器没有给我一个彩色提示,尽管它是通过.bashrc
. 有问题的.bashrc
部分是
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1='${debian_chroot:+($debian_chroot)}\[\e[00;33m\]\u\[\e[00m\]@\[\e[00;34m\]\h\[\e[00m\]:\[\e[00;36m\]\w\[\e[00m\]\e[01;31m#\e[00m '
else
PS1='${debian_chroot:+($debian_chroot)}\[\e[00;32m\]\u\[\e[00m\]@\[\e[00;34m\]\h\[\e[00m\]:\[\e[00;36m\]\w\[\e[00m\]$ '
fi
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
我在其他几台机器上使用它并获得所需的结果。
我不知道为什么这台特定的计算机不使用 this .bashrc
。如果我使用
export PS1='${debian_chroot:+($debian_chroot)}\[\e[00;32m\]\u\[\e[00m\]@\[\e[00;34m\]\h\[\e[00m\]:\[\e[00;36m\]\w\[\e[00m\]$ '
(上面的行),我的提示得到了所需的格式。/etc/bash.bashrc
也存在,/etc/profile
在我看来都不错。
另外,如果我 ssh 进入这台计算机,xterm 标题不会被设置。通常,它被设置为这台机器的 user@host。我怀疑同样的根本原因,但我不知道去哪里找。
我有一个脚本,只有在 VPN启动时才想运行。
当 VPN 启动和关闭时,我可以通过 OpenVPN 运行作业,但我希望在 VPN 启动时定期运行一项作业,而不是在它关闭时运行。
实现这一目标的最优雅的方法是什么?
所有可用信息均适用于古代版本,因此这里专门针对 16.04:
是否可以通过带有 mstsc.exe 的 MSWindows PC 远程访问运行 xrdp 的 Ubuntu 16.04 PC,而无需安装备用桌面?
这自 12.04 以来就被破坏了,所以这里的任何更新都将不胜感激。