Unix & Linux

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

6
如何仅替换文件中第N个出现的模式?
如何使用sed命令替换文件中字符串的第三次出现。 例: 仅更改的第三次出现is到us的文件中。 我的输入文件包含: hai this is linux. hai this is unix. hai this is mac. hai this is unchanged. 我期望输出是: hai this is linux. hai thus is unix. hai this is mac. hai this is unchanged.

3
蓝牙鼠标断开
我正在使用Debian Jessie(测试)。我有一个蓝牙鼠标(Microsoft Sculpt Comfort),可以将其配对并可以正常使用,但是在闲置了一段时间(约10分钟)后,它停止工作,我必须手动触摸鼠标上的可发现按钮并重新设置在命令行上将其配对。 我在OS X上尝试过的同一只鼠标也可以使用,因此这不是硬件问题 内核3.14.12-1(2014-07-11) 我将鼠标与此命令配对: sudo hidd --connect 30:59:B7:72:A5:A7 正确配对后,这是/ var / log / syslog输出 Jan 7 15:22:42 desktop hidd: New HID device 30:59:B7:72:A5:A7 (Microsoft Bluetooth Mouse ) Jan 7 15:22:42 desktop kernel: [103877.102083] hid-generic 0005:045E:07A2.0009: unknown main item tag 0x0 Jan 7 15:22:42 desktop kernel: [103877.102481] …
10 debian  usb  mouse  bluetooth 

4
重新启动NFS客户端而无需重新启动
我一直在服务器上工作,使用NFS从其中导出一个目录。当然,在服务器重启一周左右的时间里,我多次忘记umount了工作站中的导出文件系统(该文件系统从/etc/fstab启动时挂载)。在此之后,我能够umount重新安装(我没有使用autofs): umount -fl /data0 mount /data0 但是,这不再起作用。 我无法从服务器将导出的目录挂载到其他目录上(挂起挂起),但是我可以将导出的目录挂载到在我的工作站上运行的虚拟机上。 我试过的是删除(rmmod)nfs和nfsv3模块(无法使用:)Resource temporarily unavailable。lsof挂。mount没有显示通过挂载的任何内容nfs。这可能都是多次使用'umount -l'的结果,但是前两次使用都没有问题。 在不进行任何安装而无法挂载之后,我同时重新启动了服务器。我也用过service nfs-kernel-server restart。我怀疑如果重新启动客户端工作站,一切都会恢复正常。 有没有办法从中恢复并重新启动工作站上的nfs客户端,而无需重新启动? 如果无法重新启动就无法解决此问题,那么如果我开始使用它会不会再次发生autofs? lsof -b 挂在最后一行: lsof: avoiding readlink(/run/user/1001/gvfs): -b was specified. lsof: avoiding stat(/run/user/1001/gvfs): -b was specified. lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1001/gvfs Output information may be incomplete. 在此之前的行中,没有/data0。 条目/etc/fstab: 192.168.0.2:/data0 /data0 nfs …
10 nfs 

4
确定文件是否已被修改
在Linux(当前使用ext4文件系统)中,如何在不读取文件内容的情况下快速检查文件内容是否已被修改? 该stat命令是推荐的方法吗?我目前正在 $ stat --format "%Y" hello.txt 然后我可以检查相同的命令是否产生相同的输出。如果是这样,我得出结论hello.txt没有更改。 我的感觉是,想要输入更多的参数来更加确定。例如,添加文件大小,文件名等是否可以提供更好的文件“指纹”? 关于这个主题,我记得增量备份程序始终忽略了我曾经拥有的TrueCrypt卷,这可能是因为TrueCrypt确保确保不保留任何元数据更改。我想确实有可能更改所返回的所有数据stat,因此不能保证可以对文件的每次可能修改都进行选择吗?
10 files  timestamps  stat 

2
移动文件,但仅在关闭状态下
我想在关闭后立即移动由外部进程创建的大文件。 这个测试命令正确吗? if lsof "/file/name" then # file is open, don't touch it! else if [ 1 -eq $? ] then # file is closed mv /file/name /other/file/name else # lsof failed for some other reason fi fi 编辑:该文件表示一个数据集,我必须等到它完成移动后才能使另一个程序对其执行操作。这就是为什么我需要知道外部进程是否已使用文件完成的原因。


1
在没有劫持提示的情况下从后台进程中回显进度
考虑简单的脚本hello: #!/bin/bash echo 'hello world!' 现在从bash开始,如果我尝试在后台运行此命令: $ hello & [1] 12345 $ hello world! █ <--- prompt is stuck here until I hit enter! [1]+ Done $ █ <--- prompt back to normal 我宁愿看到: $ hello & [1] 12345 [1]+ hello world! [1]+ Done $ █ <--- prompt normal the …

1
如何知道dm-cache缓存了什么?
我已经成功使用dm-cache一段时间了。现在,我想知道当前在缓存中的文件。我知道dm-cache适用于块,而不适用于文件,但是由于上面有一个文件系统,从理论上讲应该可以将其转换为要缓存的文件(的一部分)。 当然,我关心一个实际的解决方案:如何列出dm-cache中当前的内容?
10 linux  cache  ssd 


2
cp:不能统计:没有这样的文件或目录
尝试使用将文件从本地计算机复制到远程服务器时出现错误ssh。无论使用cp还是,都会出现相同的错误scp。 这是我对产生的错误的输入: [root@xxx.xx.xxx.xx /]# cp /home/username/some.xml root@xxx.xx.xxx.xx:/path/to/directory/ cp: cannot stat ‘/home/username/some.xml’: No such file or directory 我已经检查过,并且/home/username/some.xml本地计算机上的路径中肯定有一个文件。 本地计算机和远程服务器都在运行CentOS 7。如何解决此错误并成功复制?
10 ssh  centos  cp  scp 

3
如何添加数字作为命令行参数?
我正在尝试从命令行添加1个数字,并像默认值一样添加一个数字。例如:当用户输入数字50时,脚本将添加10(作为默认数字)。 ./script 50 The sum of 50+ 10 is 60. 这是我到目前为止所拥有的。 echo -n "Please enter a number: " read number default = 10 sum = $((default + number)) // this line does not seem to work echo "The sum of $number and 10 is $sum." 我的语法是否错误?我不确定自己是否走对了。我把数字加错了吗?我应该改用awk吗? let sum = $default …
10 bash 

3
$ PWD发生任何更改后,如何在bash中运行命令?
zsh提供了一些不错的钩子函数,包括chpwd用于在用户更改目录后运行函数。 # zsh only function greet() { echo 'hi'; } chpwd_functions+=("greet") cd .. # hi pushd # hi popd # hi 我试图在bash中模拟它。 限制条件: 它必须在交互式和非交互式shell中都可以工作,我认为这意味着它不能依赖于 $PROMPT_COMMAND 它无法重新定义cd,因为我希望它可用于更改目录的任何命令(例如pushd和popd) 它必须在用户的命令之后运行,因此trap "my_function" DEBUG不起作用,除非我可以在其中以某种方式说“首先运行$BASH_COMMAND我们被困的设备,然后再执行此操作……”我看到可以避免自动运行$BASH_COMMAND if extdebug启用并且 trap函数返回1,但我不认为我想强制执行extdebug,并且返回1成功(但已修改)的命令似乎是错误的。 最后一部分-“在用户命令后运行”-是当前让我感到困惑的部分。如果我可以在每个命令之后运行一个函数,则可以让它检查自上次检查以来目录是否已更改。例如: function check_pwd() { # true in a new shell (empty var) or after cd if [ "$LAST_CHECKED_DIR" …
10 bash  hook  pwd 

3
在Bash中,如何不在别名中包含额外的参数?
我正在尝试做类似的事情 alias ftp='echo do not use ftp. Use sftp instead.' 只是为了避免ftp意外使用。但我注意到 ftp abcd.com 将导致命令回显 do not use ftp. Use sftp instead. abcd.com 因为将abcd.com视为是的参数echo。 有没有一种方法可以使Bash不添加abcd.com到替代项中,或者echo不将其作为额外的参数?(每种方法都有解决方案吗?) 我以为我可以做到 alias ftp='sftp' 但是我只想使命令全部停止,以提醒自己不要使用ftp。
10 bash  alias  ftp  echo 

3
查找以数字结尾的文件
我正在尝试制作一些备份脚本,因为日志文件越来越大。我现在正在处理当前文件(例如中的secure文件/var/log/)并从该文件中删除内容。但是有些文件的名称如:secure.1,secure.2我希望对所有这些文件进行计数,如果数量更大,则2可以全部归档。我找不到找到此文件或计数它们的方法。我想到的第一个想法是: find /var/log/ -name *.1 | wc -l 1因为仅有一个文件,它将始终打印secure.1。我怎样才能像在for循环中那样在其中可以指定一定范围内的数字,例如{1..5}或类似数字。有没有一种方法可以分隔此文件,并使它们成为一个文件,然后对其进行备份或删除,或者执行任何操作……或者首先,我如何才能找到所有以数字结尾的数字。

2
重新启动youtube-dl
我觉得这应该是一件非常简单的事情,但是我不知道该怎么做。 我最近更新了youtube-dl的配置文件,并且还升级到了最新版本。更新消息显示重新启动程序以完成升级,但是我一生无法弄清楚如何进行升级。该文档没有提供执行此操作的命令,运行会service youtube-dl restart返回找不到该服务的信息。 我使用手动安装方法安装了它,因此使用进行了升级youtube-dl -U。我在Ubuntu Server 14.10上。

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.