小编Pao*_*olo的帖子

如何正确添加路径到PATH?

我想知道必须向PATH环境变量添加新路径的位置。我知道这可以通过编辑来完成.bashrc(例如),但不清楚如何做到这一点。

这边走:

export PATH=~/opt/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

或这个?

export PATH=$PATH:~/opt/bin
Run Code Online (Sandbox Code Playgroud)

bash path environment-variables bashrc

1174
推荐指数
11
解决办法
278万
查看次数

递归全局?

我想写这样的东西:

$ ls **.py
Run Code Online (Sandbox Code Playgroud)

为了获得所有 .py 文件名,递归遍历目录层次结构。

即使要查找 .py 文件,shell (bash) 也会给出以下输出:

ls: cannot access **.py: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做我想做的事吗?

编辑:我想说明我对 的特定情况不感兴趣ls,但问题是关于 glob 语法。

shell bash recursive wildcards

119
推荐指数
3
解决办法
7万
查看次数

如何将 VIM 的默认编码设置为 UTF-8?

我想为一个提供翻译字符串的开源项目做出贡献。他们的要求之一是贡献者必须使用 UTF-8 作为 PO 文件的编码。

我在 Linux 上使用 VIM 7.3。我如何确定 VIM 的编码设置为 UTF-8,以便我可以以正确的方式编辑和保存 .po 文件?

vim character-encoding unicode

65
推荐指数
2
解决办法
8万
查看次数

在命令选项中使用从管道而不是从文件读取的数据

根据 man 定义,此命令从文件中获取输入。

$ command -r FILENAME
Run Code Online (Sandbox Code Playgroud)

假设这FILENAME是一个包含文件名列表的文件,因为它是使用ls > FILENAME.

相反,我如何ls直接将结果提供给命令?在我看来,这样的事情应该是可能的:

$ ls | command -r

但事实并非如此, 的输出ls不会作为参数被挂钩。输出:

Usage: command -r FILENAME
error: -r option requires an argument
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得想要的效果?

bash pipe

25
推荐指数
2
解决办法
2万
查看次数

我可以安全地排除进行备份的条目

我正在计划一个基于rsnapshot的备份策略。

我想做一个完整的系统备份,不包括对恢复重新拥有工作系统无用的文件和目录。我已经排除了:

# System:
exclude /dev/*
exclude /proc/*
exclude /sys/*
exclude /tmp/*
exclude /run/*
exclude /mnt/*
exclude /media/*
exclude /lost+found

# Application:
exclude /*.pyc
exclude /*.pyo
Run Code Online (Sandbox Code Playgroud)

我想知道我可以将哪些其他条目添加到排除列表中而不会影响恢复的系统。谈到“通用”Linux 系统,您能否建议进一步的 glob 扩展、临时目录、缓存等。我可以安全地排除?

linux backup rsnapshot

11
推荐指数
1
解决办法
9384
查看次数

跨越文件系统边界、--one-file-system 等的含义

我计划使用 rsnapshot 来备份我的整个 Linux 系统,尽管我对-x选项感到困惑(与one_fsin相同rsnapshot.conf)。手册页说:

-x 一个文件系统,不要在每个备份点内跨分区

我知道这不是特定的 rsnapshot 选项,因为 rsync、cp、tar 和其他命令也提供此功能。

文件系统边界是指不同的分区吗?不同的挂载点?不“交叉”它们是什么意思?

回到我的情况,我读到很多人建议使用-xrsnapshot,但我想知道这样做是否会影响我备份的完整性。我想备份下的一切/,包括/boot/home,它驻留在同一磁盘的专用分区,而在同一时间,我不想备份的文件和目录不严格属于我的系统,如/mnt/media等。

mount在我的系统上执行命令给出以下输出。实际上,使用rsnapshot -x,什么会被包括在内,什么会被排除在外?

/dev/sda7 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts …
Run Code Online (Sandbox Code Playgroud)

filesystems backup rsync rsnapshot

11
推荐指数
2
解决办法
1万
查看次数

如何正确转义单引号创建别名

我得到了这个单行代码来了解我的进程消耗了多少内存。

$ ps -u $USER -o pid,rss,command | \
    awk '{print $0}{sum+=$2} END {print "Total", sum/1024, "MB"}'
Run Code Online (Sandbox Code Playgroud)

现在我想为该命令创建一个别名,但在转义'字符时遇到问题:

$ alias mm=ps -u $USER -o pid,rss,command | \
    awk '{print $0}{sum+=$2} END {print "Total", sum/1024, "MB"}'
bash: alias: -u: not found
bash: alias: myuser: not found
bash: alias: -o: not found
bash: alias: pid,rss,command: not found
Total 0 MB
Run Code Online (Sandbox Code Playgroud)

我试图转义单引号,但仍然不起作用。

$ alias mm='ps -u $USER -o pid,rss,command | \
    awk \'{print $0}{sum+=$2} END {print "Total", sum/1024, "MB"}\''
> 
Run Code Online (Sandbox Code Playgroud)

你能帮我理解如何创建这个别名吗?

shell bash alias quoting escape-characters

11
推荐指数
3
解决办法
2万
查看次数

/proc/sys 中的 Linux 内核参数记录在哪里?

我在哪里可以找到/proc/sys(ob Linux) 中列出的内核参数的技术说明?

linux kernel documentation parameter linux-kernel

9
推荐指数
2
解决办法
2789
查看次数

了解 Vim 中的可修改性

在操作系统升级 (Linux) 期间,Vim 或其某些部分也已更新。

现在,有时当我保存文件(文件未保存)时,我会收到此错误:

E21:无法进行更改,“可修改”已关闭

我做:help E21了,手册上说:

        {not in Vi}     *E21*
When off the buffer contents cannot be changed.  The 'fileformat' and
'fileencoding' options also can't be changed.
Can be reset with the |-M| command line argument.
Run Code Online (Sandbox Code Playgroud)

我不清楚这意味着什么。我以通常的方式使用和启动编辑器,没有任何改变。工作流程也是一样的。我打开不同的窗口CTLR-W N,然后在那里加载和编辑文件并在窗口之间切换等。

我想知道如何禁用此行为以及副作用。

linux vim

5
推荐指数
1
解决办法
6020
查看次数

到套接字的符号链接

从安全角度来看,创建套接字文件的符号链接是否安全?以下上下文涉及在共享托管服务上部署 Web 应用程序。

$ ls -al ~/runtime/supervisor
srwx------ 1 myuser myuser 0 Oct  6 20:02 supervisord.sock

$ pwd
~/runtime/deployment_1
$ ln -s ../supervisor/supervisor.sock
$ ls -al
lrwxrwxrwx 1 myuser myuser 47 Oct  6 21:20 supervisord.sock -> ../runtime/supervisor/supervisord.sock=
Run Code Online (Sandbox Code Playgroud)

我应该对符号链接或其他内容设置任何特殊权限吗?

security permissions symlink socket

5
推荐指数
1
解决办法
8647
查看次数

如何在远程服务器上原子地恢复数据?

我希望能够备份和恢复远程帐户的主目录。

我使用的命令是:

备份

ssh myuser@myuser.server.com "tar jcf - ." > backup.tar.bz2
Run Code Online (Sandbox Code Playgroud)

恢复

cat backup.tar.bz2 | ssh myuser@myuser.server.com "tar jxf - ."
Run Code Online (Sandbox Code Playgroud)

我想确保所有文件都被恢复或没有,即使服务器在恢复过程中重新启动。

有什么办法可以实现我想要的吗?我想保留上面显示的命令作为基础,但也欢迎其他想法。

backup remote restore integrity

3
推荐指数
1
解决办法
906
查看次数