我通常在没有版本控制的服务器上备份配置文件,如下所示:
# cp httpd.conf{,.bak}
# ls
httpd.conf httpd.conf.bak
Run Code Online (Sandbox Code Playgroud)
但是,对于 web 根目录中的文件,我会花时间小心地将.bak文件扩展名放在文件扩展名之前,以便.php如果有人设法猜测或探测服务器以获取此类文件,则 Apache 仍将通过 PHP 解释器发送文件:
$ cp index.php index.bak.php
$ ls
index.php index.bak.php
Run Code Online (Sandbox Code Playgroud)
有没有办法使用制表符完成和肌肉记忆将.bak文件扩展名放在前面?我已经Tab{}?,.bak陷入了肌肉记忆,我无法在 web 根目录中的文件上使用这个漂亮的“肉宏”。
谢谢。
在什么情况下可能希望cp在目录上使用该命令但它不是递归的?考虑:
$ tree
.
??? old
??? inner
??? a.txt
2 directories, 1 file
$ cp old/inner/ .
cp: omitting directory `old/inner/'
$ tree
.
??? old
??? inner
??? a.txt
2 directories, 1 file
Run Code Online (Sandbox Code Playgroud)
那到底做了什么?那么为什么人们永远不会使用该-r标志,因此为什么不指定它就暗示它呢?请注意,该-r标志对常规文件没有不良影响:
$ cp -r old/inner/a.txt .
$ ls
a.txt old
Run Code Online (Sandbox Code Playgroud)
我确实意识到我可以别名cp,cp -r但我的目标是了解原因是什么,而不是解决任何问题。
我知道使用.[!.]*来引用目录中除 之外的所有点文件..,但是如何引用除..and之外的所有点文件.git?我已经尝试了几种变体.[!.||.git]*等等.[!.][!.git]*,但没有一个是指预期的文件。
我最近有一个损坏的 ext4 文件系统抛出这些错误:
kubuntu@kubuntu:~$ sudo mount -t ext4 /dev/sdc2 c1
mount: wrong fs type, bad option, bad superblock on /dev/sdc2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
kubuntu@kubuntu:~$ sudo fsck.ext4 -v /dev/sdc2
e2fsck 1.42.5 (29-Jul-2012)
fsck.ext4: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdc2
Could this be a zero-length partition?
kubuntu@kubuntu:~$ dmesg | tail …Run Code Online (Sandbox Code Playgroud) 侦听端口 8113 (Solr) 的进程没有响应。我找到了它的 PID,netstat但是服务器有大约两打 Solr 进程在不同的screen会话中运行。
3607.foobar-client2 (12/27/14 20:54:02) (Detached)
3797.solr.bo.app (12/25/14 11:51:30) (Detached)
2962.solr (12/25/14 11:47:23) (Detached)
1410.solrTester (12/25/14 11:39:41) (Detached)
1348.solrReports (12/25/14 11:38:41) (Detached)
....
Run Code Online (Sandbox Code Playgroud)
我发现识别它们的唯一方法是停止进程。我尝试通过哪些文件打开它们来识别它们,lsof但这在这种情况下根本没有帮助。有什么方法可以根据 PID 确定screen进程在哪个会话中运行?
从本 Bash 完成指南中我们了解到,为了让 Bash 执行自动完成,必须执行. /etc/etc/bash_completion.d/foobar(注意后面的空格.)才能使 Bash 完成工作。
$ /etc/bash_completion.d/ssh
bash: /etc/bash_completion.d/ssh: Permission denied
$ . /etc/bash_completion.d/ssh
$ ls -l /etc/bash_completion.d | grep ssh
-rw-r--r-- 1 root root 297 Jan 28 18:04 ssh
Run Code Online (Sandbox Code Playgroud)
是命令.的快捷方式source吗?如果不是,那是什么?这是不可能的谷歌,man source回报什么,apropos source并info source给这么多不相关的信息,我不能告诉我们,如果有什么我要找的是在那里。我什至如何开始 RTFM 自己找到这个问题的答案?
我正在尝试设置一个 bash 提示,- hostname(screen#):directory$如果最后一个命令成功完成则为绿色,否则为红色。到目前为止,这是我所拥有的,它实际上完成了这项工作,但如果命令换行,似乎会导致显示问题:
PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m'; else echo '\e[31m' ; fi\` - \h(${WINDOW}):\W$\e[00m "
Run Code Online (Sandbox Code Playgroud)
谷歌搜索这个问题,我发现这个有用的 SO 帖子有一条评论,其中提到了将非打印字符包裹起来\\[并\\]避免这个问题。因此,我尝试了以下方法,但并没有解决问题,而且还破坏了颜色变化:
PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m'; else echo '\e[31m' ; fi\`\] - \h(${WINDOW}):\W$\[\e[00m\] "
Run Code Online (Sandbox Code Playgroud)
如何使用颜色保留此提示的结构,但对其进行修复以便正确显示长命令?
有什么办法可以查出我刚才杀了什么?
$ ps -A -o pid,cmd | grep someApp | grep -v grep
2802 python someApp.py
$ sudo kill 2302
$
Run Code Online (Sandbox Code Playgroud)
编辑:为了澄清,我需要在杀死它之前知道 PID 2302 是什么。这ps条线是为了说明我是如何杀死 2302 的,而我什至不知道它是什么。
我最小的女儿 (6) 对sl和gti命令很着迷。她甚至学会了将它们与它们结合起来,;当需要教她返回值时,我会向她展示如何sl && gti工作但gti && sl不工作 ,作为gti返回1。
我还能教她什么命令?ls当她要求我向她解释我在做什么时,她会及时学习和其他有用的命令,但我正在寻找其他有趣的命令,例如sl和gti。aafire并且cowsay有点有趣,但是如果有其他令人兴奋的命令sl,gti我们很想知道。
她说谢谢!
在我公司的 Ubuntu 15.10 桌面系统上,我使用一些基于PBIS 的魔法通过 Active Directory 登录。因此,即使我的主目录在/home/local/FOOBAR/dotancohen/. 当没有要编辑的 /etc/passwd 行因此无法使用时,如何将 bash 配置为 shell chsh?
我在这台机器上有另一个具有管理员访问权限的帐户,因此我可以根据需要将系统配置为管理员。但是,如果有一个仅限用户使用的解决方案,我希望将来在我没有管理员访问权限时使用它!
以下是在 Unity(Ubuntu 桌面)中打开 Gnome 终端运行的几个关键命令的结果:
$ echo $HOME
/home/local/TECHMARKETING/dotan
$ whoami
FOOBAR\dotancohen
$ grep dotan /etc/passwd
$ grep sourced ~/.profile
echo 'sourced .profile'
$ grep sourced ~/.bashrc
echo "sourced .bashrc"
$ echo $SHELL
/bin/sh
$ echo $TERM
xterm
$ bash
sourced .bashrc
- dotan-tm():~$ echo $SHELL
/bin/sh
- dotan-tm():~$ echo $TERM
xterm-256color
Run Code Online (Sandbox Code Playgroud)
可以看出,当它们被获取时,.bashrc和 都.profile回显。似乎.profile …
bash ×5
command-line ×2
corruption ×1
cp ×1
dot-files ×1
ext4 ×1
gnu-screen ×1
kill ×1
linux ×1
process ×1
prompt ×1
rename ×1
shell ×1
wildcards ×1