我目前Fedora 16在我的笔记本电脑上运行,这就像 3 年的 EOL-ed。之所以会这样,是因为在 Fedora 中升级到当前版本(至少 v16)并不容易,并且需要完全重新安装。所以它上面的所有东西都很旧并且不能很好地工作,我只是懒得将我的数据移动到外部介质上并重建操作系统。理想情况下,我想通过运行一个简单的yum/apt-get命令来升级。
因此,我从这次经历中吸取的教训是,我希望我的下一个 Linux 发行版非常容易更新,这不是因为我无法处理 Linux,而是因为我很懒惰并希望保持这种状态。我也相信,在这个时代,操作系统应该很容易升级。
哪些 Linux 发行版使升级更容易符合这个议程?我特别不想在执行升级之前将数据或文件系统移动到单独的介质。
我还希望发行版支持 KDE,这是我的首选界面。
我安装Python 3.4在CentOS 7.3:
sudo yum install epel-release
sudo yum install python34.x86_64
Run Code Online (Sandbox Code Playgroud)
python 2之前有安装下
type python
python is hashed (/bin/python)
Run Code Online (Sandbox Code Playgroud)
所以版本 3 在python3:
type python3
python3 is hashed (/bin/python3)
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,我有 3.5 版,我安装软件包的方式是:
python -m pip install <package_name>
Run Code Online (Sandbox Code Playgroud)
所以我在 CentOS 上尝试了同样的方法,但调用 python3 而不是 python:
python3 -m pip install psycopg2
/bin/python3: No module named pip
Run Code Online (Sandbox Code Playgroud)
如何在 CentOS 上的 Python 3.4 中安装或启用 pip 以便我可以安装软件包?
在 Unix/Linux 术语中,“设备”和“驱动器”这两个词是同义词吗?
我正在尝试调试其他人的脚本:
代码行是:
y=$((${oldvalue[$x]}-${newvalue[$x]}))
Run Code Online (Sandbox Code Playgroud)
y只要双方都是正数,就可以很好地计算。但是,我有一个生产情况,它们都是负面的,我得到的错误是:
DEBUG Old value = -4144290000
DEBUG New value = -4009685000
script.sh: line 123: -4144290000--4009685000: assignment requires lvalue
Run Code Online (Sandbox Code Playgroud)
ksh即使是最简单的计算,我也不会使用自己,但我处于生产支持的位置并且必须处理一大堆泥浆,我至少会使用 Perl/Python。谁能告诉为什么会发生这个问题以及如何解决它?
我正在运行 Ubuntu VMVirtual Box和Vagrant:
vagrant@lucid64:~$ uname -a
Linux lucid64 2.6.32-38-server #83-Ubuntu SMP Wed Jan 4 11:26:59 UTC 2012 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我的 $PS1 变量实际上与提示不匹配,而且要复杂得多:
vagrant@lucid64:~$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Run Code Online (Sandbox Code Playgroud)
我正在寻找 $PS1 和我的提示之间关系的解释,$USER@$HOST:$PWD\$如上所示。
例如,在我的普通笔记本电脑上,它承载了这个虚拟机并且是一台 Mac,它干净简单,如下所示:
~@12:10:20>echo $PS1
\w@\t>
Run Code Online (Sandbox Code Playgroud) 我使用RHEL 7.3的AWS EC2:
$ cat /etc/*-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)"
Run Code Online (Sandbox Code Playgroud)
我想安装OpenVPN客户端并遵循这些说明。我开始了sudo yum update,完成得很好。然后
$ sudo yum install epel-release
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
rhui-REGION-client-config-server-7 | 2.9 kB 00:00:00
rhui-REGION-rhel-server-releases | 3.5 kB 00:00:00
rhui-REGION-rhel-server-rh-common | 3.8 kB 00:00:00
No package epel-release available.
Error: Nothing to do
$ sudo yum install openvpn easy-rsa
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
No package openvpn available.
No package easy-rsa available.
Error: Nothing …Run Code Online (Sandbox Code Playgroud) find . -name *.jks -print 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
扩展的回报文件JKS那些没有下划线作为其名称的一部分。令我惊讶的是,我刚刚发现 * 不能代替下划线。
find . -name *_*.jks -print 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
扩展的回报文件JKS是有一个底线。
如何搜索具有 0 个或多个下划线的文件?使用 OSX Mountain Lion。
在我的bash脚本中,我想检查字符串是否以# modified:或开头# new file:。在这两种情况下,# 后面的字符都是制表符。在后一种情况下,“new”和“file”之间的字符是一个空格。
我试过:
if [[ $outline == "#\tmodified:*" ]]; then
和
if [[ $outline == "# modified:*" ]]; then (在# 后点击实际选项卡)
但都没有奏效。我该怎么做呢?
我搜索我的代码库以查找字符串模式并列出找到该模式的所有文件,但仅列出文件而不是找到它的行:
find . -name *.java -exec grep -l 'someText' {} \; -print 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
但是,它为找到的每个文件输出两行。为什么会发生这种情况,我应该如何修改命令以列出唯一的文件名?
同时拥有.bash_profile和有什么意义,.bashrc前者通常采购后者,后者又/etc/bashrc在登录时采购?将.bashrc中的所有内容都放在.bash_profile 中(或反之亦然)并仅提供该登录脚本有什么缺点?
bash ×2
find ×2
amazon-ec2 ×1
arithmetic ×1
bashrc ×1
centos ×1
devices ×1
grep ×1
ksh ×1
login ×1
openvpn ×1
profile ×1
prompt ×1
python ×1
rhel ×1
scripting ×1
shell-script ×1
terminology ×1
wildcards ×1
yum ×1