Unix & Linux

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

4
使用嵌套循环退出shell脚本
我有一个带有嵌套循环的shell脚本,只是发现“退出”并没有真正退出脚本,而只是退出了当前循环。还有另一种方法可以在某些错误情况下完全退出脚本? 我不想使用“ set -e”,因为存在可接受的错误,并且需要进行大量重写。 现在,我正在使用kill手动终止进程,但是似乎应该有更好的方法来执行此操作。
11 bash  shell  scripting  exit 

3
使用“ yum更新”的CentOS 7更新不起作用
我有一台运行CentOS 7的VM,我已经很长时间没有使用它了。今天,我启动了它,并尝试使用将CentOS系统更新到最新版本yum update,但是我遇到了很多错误: Loaded plugins: fastestmirror, langpacks http//bay.uchicago.edu/centos/7.0.1406/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. http//mirror.cs.pitt.edu/centos/7.0.1406/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. http//mirror.anl.gov/pub/centos/7.0.1406/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 403 - Forbidden Trying other mirror. http//mirror.pac-12.org/7.0.1406/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not …
11 centos  upgrade 

2
如何在Ansible任务中注册动态命名的变量?
我正在尝试使用Ansible任务按名称检索两个组(syslog和utmp)的组ID 。为了进行测试,我创建了一个剧本来从Ansible主机本身检索信息。 --- - name: My playbook hosts: enabled sudo: True connection: local gather_facts: False tasks: - name: Determine GIDs shell: "getent group {{ item }} | cut -d : -f 3" register: gid_{{item}} failed_when: gid_{{item}}.rc != 0 changed_when: false with_items: - syslog - utmp 不幸的是,运行剧本时出现以下错误: fatal: [hostname] => error …
11 ansible 

3
如何合并两列中的值?
我有以下格式的文件: $ cat /tmp/raw 2015-01 5000 1000 2015-02 6000 2000 2015-03 7000 3000 现在,我想要从每行的第2列和第3列中获取组合值,以便结果如下: 2015-01 6000 2015-02 8000 2015-03 9000 我试过了,但它只显示文件中的最后一个值,如2015-03值。

1
为什么xterm显示256种颜色(而不是xterm-256color)?
有人可以解释一下吗?我正在使用gnome-terminal。首先,一些信息: # echo $TERM xterm # infocmp xterm Reconstructed via infocmp from file: /lib/terminfo/x/xterm colors#8, cols#80, it#8, lines#24, pairs#64 # tput colors 8 我编写了简单的脚本来为扩展的颜色集创建代码: # Output file (current directory) and text. OFILE='xterm256_colors_test.sh' OFILE_COLORS='terminal_256_colors' OTEXT='Sed ut perspiciatis unde omnis iste natus error sit voluptatem...' # Clearing the contents from previous runs. …

1
mutt:如何正确显示表情符号字符?
我希望能够在mutt中正确看到表情符号字符,但是例如💗在mutt的传呼机中显示为^ J。跑步 :set pager=view 然后重新打开该消息,可以正确显示带有vim的字符。 有问题的电子邮件是经过PGP加密的,但是我认为未加密的电子邮件也可以做到这一点(https://groups.google.com/forum/#!topic/comp.mail.mutt/50_MpyYkXR4)。 我还发现了这篇文章(/programming/23526353/how-to-get-ncurses-to-output-astral-plane-unicode-characters),它解释了我遇到的一个可能的问题,但是就像我说的那样,vim在同一终端窗口中可以正常显示字符。此外,我使用的是glibc 2.19,我看不到这两个应用程序如何在同一系统上使用不同的glibc版本。 有没有办法让mutt的内置寻呼机正确显示这些内容? 编辑:所以我忘了包括除'mutt'和'vim'以外的所有相关信息...我正在使用mutt-patched软件包运行Debian稳定版。 $ uname -r 3.16.0-4-amd64 $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.0 (jessie) Release: 8.0 Codename: jessie $ mutt -v Mutt 1.5.23 (2014-03-12) Copyright (C) 1996-2009 Michael R. Elkins and others. Mutt comes …
11 vim  mutt  unicode 

4
如何自动分配回路设备?
我正在编写一些Shell脚本来处理某些磁盘映像内容,并且需要使用循环设备来访问某些磁盘映像。但是,我不确定如何在不使程序处于竞争状态的情况下正确分配循环设备。 我知道我可以losetup -f用来获取下一个未分配的循环设备,然后像这样分配该循环设备: ld=$(losetup -f) sudo losetup $ld myfile.img dostuffwith $ld 但是,在我想同时运行程序的多个实例的情况下,这几乎是关于竞赛条件的教科书示例,这让我非常困扰。如果我正在运行该程序的多个实例,或者其他程序也试图获取一个循环设备,则每个进程可能无法在下一个调用之前分配循环设备losetup -f,在这种情况下,两个进程都将认为同一循环设备可用,但只有一个设备可以使用。 我可以为此使用外部同步,但是我想(如果可能)避免额外的复杂性。同样,其他使用循环设备的程序也不太可能遵循我可能提出的任何同步要求。 如何避免这种潜在的比赛状况?理想情况下,我希望能够以原子方式发现和绑定循环设备,例如,使用以下命令: ld=$(sudo losetup -f myfile.img) dostuffwith $ld 但是,当我这样做时,$ld不会分配给循环设备路径sudo,而是将其移出,因为这样会导致sudo ld=$(losetup -f myfile.img)权限错误。

1
Linux +仅向特定用户发送留言
众所周知,我们可以向Linux计算机上的所有用户发送广播消息。 但是,如何仅将消息发送给特定用户? 例如: #who rodegc pts/1 2015-05-04 04:23 (10.4.72.1) dwwar pts/3 2015-05-03 00:56 (10.4.72.2) tzcsar pts/5 2015-05-03 22:32 (10.4.72.6) . . . . . 在这种情况下,如何仅向用户Rodegc发送广播消息? 从手册页: WALL(1) Linux User's Manual WALL(1) NAME wall -- send a message to everybodyגs terminal. SYNOPSIS wall [-n] [ message ] 在手册页上,我看不到任何发送给特定用户的选项。
11 linux  users 

5
bash:将变量的第一行分配给变量
我有一个多行变量,我只想要该变量的第一行。以下脚本演示了该问题: #!/bin/bash STRINGTEST="Onlygetthefirstline butnotthesecond orthethird" echo " Take the first line and send to standard output:" echo ${STRINGTEST%%$'\n'*} # Output is as follows: # Onlygetthefirstline echo " Set the value of the variable to the first line of the variable:" STRINGTEST=${STRINGTEST%%$'\n'*} echo " Send the modified variable to standard output:" …
11 bash 

2
有人真正使用透明大页面并从中受益吗?
最近,我一直在努力处理透明的大页面性能问题,并且注意到许多数据库系统建议将其关闭。我说的是Oracle,Postgresql,MySQL,Cassandra,NuoDB,Redis,Hadoop等。 举些例子: 彼得·扎伊采夫(2014年7月23日)。为什么TokuDB讨厌透明的HugePages。Percona。 米歇尔·凯西(2013-09-17)。透明巨大页面的性能问题。甲骨文 亚当·阿布雷瓦亚(Adam Abrevaya)和奥列格·莱文(Oleg Levin)(2014-05-15)。 Linux透明大页面,JEMalloc和NuoDB。NuoDB开发中心。 所以我想知道:什么功能可以从此功能中受益?



2
如何批量调整文件夹(包括子文件夹)中所有图像的大小?
我的服务器上有12GB的巨大图片库,里面充满了各个子文件夹中的图像。这些文件太大,无法完全使用。我需要将所有图像的尺寸调整为820像素(保持比例)。所以我的问题是-如何创建某种爬网脚本,将所有图像的大小调整为大于820px,然后保存回覆原始文件? 希望您能帮助我:-)预先谢谢。

1
如果旧文件已经存在,如何使rsync用--link-dest选项链接相同文件?
可能有人认为,--link-dest在所有情况下都可以对相同文件进行操作。但是,即使文件已过期/具有不同的内容,当文件存在时也不会。 因此,在rsync手册页上--link-dest: “此选项在复制到空的目标层次结构中时效果最佳,因为rsync将现有文件视为权威文件(因此,当目标文件已存在时,rsync永远不会在链接目标目录中查找)” 这意味着,如果y/file与源存在相同且z/file已过期, rsync -a --del -link-dest=y source:/file z 将导致使用两个inode(和磁盘空间的两倍)y/file和z/file,它们将具有相同的内容和日期戳。 之所以遇到此问题,是因为我基本上每天备份一次,而该脚本每天运行一次: mv $somedaysago $today; yest=$today; today=`date +%Y%m%d`; rsync -avPShyH --del --link-dest=../$yest host:/dirs $today 因为我的备份最多可以存储1000万个文件,所以这样做rm -rf $olddir; rsync source:$dir newdir会花费太长时间(尤其是每天仅更改0.5%的文件时,会导致删除和创建10M目录条目只是为了处理5万个新文件或更改过的文件,这会使我备份未在第二天及时完成)。 这是情况的演示: a是我们的来源,1通过4我们的编号备份: $ mkdir -p 1 2; echo foo > 1/foobar; cp -lrv 1/* 2 `1/foobar' -> `2/foobar' $ ls …
11 rsync 

2
如何从历史记录中的最后一个命令访问第二个参数?
我开始学习一些正则表达式,因此我反复使用此命令: grep pattern /usr/share/dict/american-english 只有带有模式的部分会发生变化,因此我不得不一次又一次写出长表达式“ / usr / share / dict / american-english ”。 有人说,可以通过键入隐含的字符组合而不是完整的表达式从命令历史中扩展命令的自变量。你能告诉我那些神秘的字符组合吗?

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.