我有一个bash脚本,它想并行地做一些工作,我把每个工作放在后台运行的子shell中。虽然同时运行的作业的数量应该在一定的限制下,但我通过首先在FIFO中放入一些行来实现这一点,然后在分叉子shell之前,需要父脚本从FIFO中读取一行。只有当它得到一条线后,它才能进入地下室。到目前为止,一切正常。但是当我试图在子shell中读取FIFO中的一行时,似乎只有一个子shell可以获得一行,即使FIFO中显然有更多的行。所以我想知道为什么其他子shell不能读取一行,即使FIFO中有更多行。
我的
/bin/sh-c是什么意思?-c做什么?来自bash的手册页:
-c字符串
如果存在-c选项,则从字符串读取命令。如果字符串后面有参数,则会将它们指定给位置参数,从$0开始
示例:
$ bash -c ls
将启动bash并执行命令ls
/bin/sh通常是shell的符号链接。使用-c(命令)返回到第一个shell,而不是打开一个新的shell。
它非常类似于:sudo su-l-c'echo“运行命令并返回”
例如:
#sudo su-l knoppix-c'echo“以${USER}的
Archive manager+nautilus对于任何使用归档的工作都非常有用
如果安装p7zip,则完整软件包归档管理器可以使用7z归档
但是Archive manager使用默认设置进行压缩
非常糟糕
javadoc的经典示例:
从下载
但是从man7z和LzmaLib.h我们知道最好的压缩是-mx=9-mfb=273-md=64m
让我们试试:
7z a -t7z -m0=lzma -mx=9 -mfb=273 -md=64m -ms=on javadoc.7z javadoc
du -
我有一个自己的文件夹,但也有整个组的读取权限。我想知道谁读/复制了这些内容,以及什么时候。是否可以使用脚本或其他方式执行此操作?可用于此操作可用于此操作谢谢。虽然我没有根访问权限,但您的回答还是很有帮助的。谢谢。虽然我没有根访问权限,但您的回答还是很有帮助的。
如果我想找出两个目录树之间的差异,我通常只执行:
diff -r dir1/ dir2/
这将准确地输出相应文件之间的差异。我只想得到一个内容不同的对应文件列表。我假设这只是将命令行选项传递给diff,但在手册页上找不到任何内容
有什么建议吗?试试:
diff--brief--recursive dir1/dir2/
或者,使用短标志-qr:
diff-qr dir1/dir2/
如果您还想查看两个目录中可能不存在的文件的差异:
diff--brief--recursive--新文件dir
标签: Linux
x11keypressmute
我在互联网上读过关于如何在X窗口系统中模拟键盘上的按键。到目前为止,我已经有了一个用C编写的程序,它可以从键盘上的传统按键发送按键事件。但是,我想不出一种方法来模拟某人按下键盘的静音/音量增大/音量减小键
这甚至可能与我在之前的按键操作中使用的XKeyEvent结构无关,因为我在keysymdef.h文件中没有找到任何远程关闭的内容,我认为这些事件会传递到主机操作系统,而不是每个单独的窗口
我还启动了xev,但它并没有给我太多有用的输出(或者至少是我能破解的任何输出)
有人告诉我应该去哪里找吗
我正在尝试安装一个玩具插件,它是我在EclipseHelios20100617-1415中在Fedora12下编写的。尝试安装插件都失败了。该插件在作为Eclipse应用程序执行时确实运行(加载了Eclipse的另一个副本,插件出现在菜单上,并执行它应该执行的操作)。我将插件的jar文件放在/dropins/plugins目录中,在多次重新启动之后,Eclipse未能加载它,并且似乎也不会生成任何错误消息。我还尝试使用Install New Software UI直接加载它,但失败了(在玩具插件
我正在尝试配置monodevelop的最新版本,但我被卡住了。我有libvala的最新版本和之前的版本。有人能给我解释一下吗
checking for LIBVALA... no
configure: error: Package requirements (libvala-0.12 >= 0.12) were not met:
No package 'libvala-0.12' found
Consider adjusting the PKG_CONFIG_PATH environm
我有9000个PHP文件,其中大部分包含文本foo。我知道我需要的文件在aherdeoc中有文本foo,但它可能与herdeoc的开头或结尾相距数十行,因此grep的-a或-B选项没有帮助
有没有办法执行此搜索?有比grep更好的工具吗
如果相关,这在CentOS 5.2机箱上。是的,我知道操作系统已经过时了 这是一种尝试,首先递归搜索DIR下包含herdeoc的所有.php文件,然后仅将herdeoc中的部分grep为单词FOO。没有涵盖文件中所有可能使用heredoc的情况,但应该缩小结果的
我试图在linux中导航进程的页面表。在内核模块中,我实现了以下功能:
static struct page *walk_page_table(unsigned long addr)
{
pgd_t *pgd;
pte_t *ptep, pte;
pud_t *pud;
pmd_t *pmd;
struct page *page = NULL;
struct mm_struct *mm = current->mm;
pgd = p
我正在为使用Microblaze作为处理器的嵌入式板构建一个应用程序。我已经为此交叉编译了Linux。主板有512MB内存,但内核只知道256MB(DDR3的下半部分)
这是系统的内存映射:
0x4000_0000 to 0x5FFF_FFFF -> Physical range of DDR3 (verified with cat /proc/meminfo)
0x4000_0000 to 0x4FFF_FFFF -> Known to linux and used by the
我可以执行此操作以批量调整和重命名子文件夹中的图像:
convert '*.jpg' -resize 256 small/image_%02d.jpg
它将从image_00.jpg
我的问题是,由于外部服务的导入规则,我需要从image\u 01.jpg
我允许吗
否则,实现这一目标最明智的方法是什么
我将ls和反向排序然后重命名添加1我从未尝试过这个,但记得读过一些关于-scene的内容
convert '*.jpg' -resize 256 -scene 1 small/image_%0
我使用以下指南在带有Ubuntu的机器上设置SVN服务器:
但是,当我尝试浏览svn目录时(https://X.X.X.X/svn)我收到一个“403禁止”错误
在error.log文件中,我每次都会得到以下两行:
无法获取资源信息。[403,#0]
(2) 没有这样的文件或目录:URI不包含存储库的名称。[403,#190001]
他通过改变来解决这个问题
至
并将行RedirectMatch^(/svn)$$1/添加到配置文件中
但这些解决方案对我来说都没有改变任何事情
如果我浏览htt
我试图了解从XGetImage获取的数据是如何在内存中处理的:
XImage img = XGetImage(display, root, 0, 0, width, height, AllPlanes, ZPixmap);
现在假设我想在红、蓝、绿通道中分解每个像素值。我怎样才能以便携的方式完成这项工作?下面是一个示例,但它取决于XServer的特定配置,并不适用于所有情况:
for (int x = 0; x < width; x++)
for (int y = 0; y &l
在我的代码库上运行之后,它创建了两个新目录:
html和latex
两者都包含文档化文件,以及许多空文件夹:
/html
├── d0
│ ├── d00
│ ├── d01
│ ├── d02
│ ├── d03
│ ├── d04
│ ├── d05
│ ├── d06
| ├── ...
├── d1
│ ├── d00
│ ├── d01
│ ├── d02
│ ├── d03
│ ├── d04
│ ├── d05
│ ├──
我正在使用tmpnam()在进程1中生成临时文件名。
打开该文件并将文件名发送到另一个进程2。
另一个进程2打开并写入该文件
但是,我只是想知道如果进程1死亡,该文件是否会被操作系统删除。看起来不像是这样。在这种情况下,我的选项是什么,这样我就不会在进程1结束后有文件挂起。否,当进程结束时,内核不会删除打开的文件
但是,您可以在进程结束之前删除打开的文件,只要保持打开状态,该文件仍将存在。但是,您将无法再按名称打开文件-任何进一步的访问将仅通过open filehandle进行
比如说
fnam
我有一个字符串变量x=tmp/variable/custom sqr sample/test/example
在脚本中,我要做的是将所有“-”替换为/,
在那之后,我应该得到以下字符串
x=tmp/variable/custom/sqr/sample/test/example
有人能帮我吗
我尝试了以下语法
它不起作用
exa=tmp/variable/custom-sqr-sample/test/example
exa=$(echo $exa|sed 's/-///g')
sed基本上支
这是一个采访问题,他们没有告诉任何关于文件的信息,即:扩展名、隐藏文件?、位置(存储在单个目录或目录树中),因此我对这个问题的第一反应是:
rm -fr *
哦,不,等等,应该是:
rm -fr -- *
然后我意识到上面的命令无法成功地删除隐藏文件,坦率地说,像和这样的目录可能会造成干扰,我的第二个也是最后一个想法是使用查找的shell脚本
find -depth -type f -delete
我不确定这是否是正确的方法,我想知道是否有更好的方法来完成这项任务。这并不像看上去那么明显:
您好,我正在使用Linux usb小工具来模拟usb闪存驱动器。除了性能非常低外,它工作正常
我使用一个4Gb文件,由dd创建,并在其上创建了一个ext2或vfat(尝试了两者)分区。然后,我使用以下命令序列装载它:
# modprobe dummy_hcd is_super_speed=1 # I tried is_high_speed=1, and no parameter too
# modprobe g_mass_storage file=/home/del/img/flash stal
标签: Linux
commandjobsjob-scheduling
有人能建议我如何在Linux中在后台连续运行作业吗
此作业的任务是检查一些用户帐户,看看它们是否处于活动状态
谢谢,
塔潘
使用格式****命令
这里有一个有用的资源:
使用格式****命令
这里有一个有用的资源:您可以使用@reboot作为时间字段。谢谢您提供的信息。这应该行得通。还有关于如何在Aix服务器中实现同样的功能的想法吗?嗯,我将在不同的服务器上运行它,所以我想检查一下。您可以使用@reboot作为时间字段。谢谢您提供的信息。这应该行得通。还有关于如何在Aix服务器中实现同样的功能的
我搜索了manbash,但没有找到列出所有当前bind-x键绑定的任何内容。我有办法做到吗?我尝试了以下方法:
$ bind -x '"\C-`":"echo hello"'
# test binding: press CTRL+`
hello
# Binding works!
$ bind -p | grep 'hello'
# no output
$ bind -S
# no output
那么,我有没有办法看到所有当前活动的bind-x列表?似乎可以使用bind-x(Bash中新增的4.
我是CentOS的新手
我的问题是centos中的命令行很奇怪。我可以使用向上箭头只查看上一个命令中的一个,但我不能查看多个(在ubuntu中,我可以多次按向上箭头)。我只能使用“历史记录”查看多个命令
另一件事是我不能像平常一样编辑上一个命令(比如我按一次up键,然后通过键入更多的单词来添加更多的参数)。在centos中,一旦我按下up键,它就会显示命令,然后我必须按下“I”来使用插入模式来编辑命令,“x”来删除一个字符等等。这对我来说太烦人了,因为我熟悉ubuntu。然而,我曾经在其他cen
当我执行以下head命令时:
yes 123456789 | ( head -n 1; head -n 1 )
我得到:
123456789
3456789
123456789
虽然我希望:
123456789
123456789
这也让我困惑,当我执行:
echo -e "123456789\n123456789\n123456789\n123456789\n123456789\n" | \
( head -n 1; head -n 1 )
我得到:
123456789
345678
假设我的应用映射了fileA,并且fileA被另一个进程更改。下次我的应用程序尝试读取fileA时,是否会看到更新的数据?如果使用共享地图,则会
如果您使用的是私人地图,则不会。请参阅
我正在尝试对文件进行排序,并将输出存储到tmp文件中。这是我的文件的外观:
这是我的文件(没有扩展名)
我知道排序文件的命令是sort-n$PWD/这是我的文件-o tmp,但是如何在--之后开始排序?还有一个后续问题,如果要比较的文件没有扩展名,如何区分文本文件和xml文件?您可以使用:
head -n 2 file && tail -n +3 file | sort
Names Last_Name_Initial
---
Alex G
Anderson S
Cai
我有一些shell脚本需要LF行结尾(我在Ubuntu 14.04上)。由于这是一个跨平台的开源项目,因此使用.gittributes文件“自动”使用行尾。不幸的是,他们没有
$ cat .gitattributes
# automatically normalize line endings
* text=auto
我的文件系统中有以下文件:
$ file extract.sh
extract.sh: Bourne-Again shell script, ASCII text execut
与终端不同,我不能在不知道其路径的情况下从bash脚本运行二进制文件(通过包管理器安装)。到目前为止,我一直在使用一种方法来确定那种感觉相当笨拙的东西
APP=(
"/usr/bin/my_app"
"/usr/local/bin/my_app"
"/opt/local/bin/my_app"
"/bin/my_app"
)
for i in ${APP[*]}; do
if [[ -e $i ]]; then
eval $i
我已经使用gunicorn和nginx通过ssh设置了django应用程序
以下是我的程序:
我使用gunicorn启动web应用程序:
sudogunicorn--workers=2-b:8888教程。wsgi:application
我启动nginx:sudo服务nginx启动
以下是conf文件:
server {
listen 8002;
server_name wiser.omk.dk;
access_log /home/pikachu/ac
我在Bash中搜索了元字符列表,但没有登记空格。
我想知道我假设空格是Bash中的“标记分隔符”是否正确,因为它不仅适用于Shell程序或内置程序,而且也适用于通过复合赋值引号转义空格创建数组时,就像其他大多数元字符一样。
不过,它们不能通过反斜杠逃脱。
例如,参数被传递给以空格分隔的程序和函数。
有人能解释bash是如何(以及何时)解释空格的吗?谢谢
我写了一个例子:
$ a=(zero one two)
$ echo ${a[0]}
零美元
$ a=("zero one two")
我试图找出进程调度器使用的时间量的可能价值
使用SCHED_NORMAL,据我所知,默认情况下是CFS
kernel.sched_min_granularity_ns = 3000000
。。。及
kernel.sched_latency_ns = 24000000
我是否正确理解时间量子在3到24毫秒之间?我能算出更精确的值吗?也许是通过在循环中调用gettimeofday或其他方式
我查看了我的一些系统日志及其关于随机有效用户id和组id错误的声明。例如:
Jan 31 13:20:48 server exim[24551]: 2016-01-31 13:20:48 Cannot open main log file "/var/log/exim_mainlog": Permission denied: euid=47 egid=12
我只是想知道是否有一个简单的命令可以在shell中使用,根据数字(在本例中是47和12)识别真实的用户名和组ID
我知道我可以使用chow
为什么自从我升级到Debian Jessie 8.3并编译GIT 2.6.0之后,etckeeper v1.15没有自动将文件签出到/etc
复制步骤:
1) 在本地(Windows 7,git版本2.6.3.Windows.1)创建文件ddd.txt,内容如下:
root@local-debian8:/etc#
printf "ddd\n" > ddd.txt
2) 用git看
$ git status
On branch local_master
Your branch is up
我的页面不支持IE 9或bellow,因此我在index.php文件中添加了条件注释:
<title>
Title
</title>
<!--[if lte IE 9]>
<meta http-equiv="refresh" content="0;url=Includes/min_browser.php" />
<![endif]-->
<?php
我在一台机器上设置了自动登录,并修改了.bashrc,使脚本自动运行(例如mplayer播放音乐流)
现在我使用ssh和screen登录。命令w显示自动登录使用的TTY和ssh屏幕会话中的当前TTY
09:58:43 up 18 min, 2 users, load average: 0.11, 0.16, 0.09
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
mi tty1
我已经安排了一个cronjob每天运行sche.sh文件。该sh文件具有以下命令:
RAILS_ENV=production bundle exec rails console
我在这一行收到一个例外说明
未找到bundle命令
您安装了bundler吗
$ gem install bundler
您安装了bundler吗
$ gem install bundler
我正在用websocket协议开发推送通知机制。我测试了它在两个设备上发送通知,Android和笔记本(Windows和Linux Ubuntu)。我使用Wireshark查看通知包的大小。当我测试它时,我发现有些东西困扰着我。发送到基于Linux的设备(Android和Linux Ubuntu)的数据包大小大于发送到基于Windows的设备的数据包大小。以下是截图:
根据上面的2张图片,我发现基于Windows的头是20字节,基于Linux的头是32字节。为什么两个标题都不同?我需要一些关
下面是我的输入数据,我正在尝试创建一个透视表
input.txt
ID,CreateDate,Category,Region,PublishDate,Code,Listing,Type,ModifiedDate
FRU426131598,22-Aug-16,SELLING,COUNTRY,22-Aug-16,1,SAMPLE,GRAPE,22-Aug-16
FRU426175576,23-Aug-16,SELLING,COUNTRY,23-Aug-16,1,SAMPLE,APPLE,23-Aug
是否有任何方法可以构建静态链接的gcc编译器?如果是,我应该使用配置/制造的哪些标志?我希望得到gcc和g++二进制文件
应该是“非动态可执行文件”(在使用ldd检查时
例如,禁用所有共享选项是一个好的开始。然后,可以使用例如--with-stage1-ldflags和--with-boot-ldflags将链接器标志设置为静态链接。
-一些程序员
成功了!这里使用的是配置标志:
../configure --prefix=/home/myuser/soft/gcc-6.2.0/myusr/ -
现在我知道在Linux中文件删除是如何工作的了
在ext2中,它标记为“unused”,而在ext3中,它不仅标记为“unused”,而且还将大小、块指针更改为零
但我想知道,当我创建一个指向文件的硬链接,然后删除原始文件时,inode会被标记为“unuse”吗?
或者它会发生,直到所有的硬链接被删除
谢谢。i节点包含链接计数(在ls-l输出中可见)。每个硬链接都会增加该计数。取消链接(删除链接,无论是原始文件名->索引节点链接,还是后来添加的硬链接,这是用户唯一可以请求的)会减少计数。在计数达
我已经从这里下载了Nexus-4.1.6.tar.gz
我把它解压缩到我的主文件夹,但我不知道如何编译它
文件夹目录:
CMakelist.txt
doc/
html/
许可证
README.md
README.txt
src/
普通/
nxsbuild/
nxsedit/
nxsview/
nxszip/
这些文件包含.ccp和.h文件
我找不到./configure或make
欢迎任何想法。您需要使用CMake并创建特定于平台的构建格式,在您的情况下(linux)是一个Makefile。您需
标签: Linux
perfinstructions
我想计算代码中每个函数调用的动态指令数,这样我就可以将该计数器视为:
name of function | instructions
foo() | 3533
bar() | 1234
int foo(int a, int b) {
return a << (10 + b);
}
因此,以下分问题:
这是否可以使用perf
如果是:我应该使用什么类型的perf标志来获取(至少)这些信息
如果否:我可以使用什么
我需要获取一些RPM包的信息,然后解析它们,所以我使用RPM-q--qf[FORMAT][package]命令
它工作得很好,但是包的description字段总是在多行上,这使得我的解析工作更加困难。有没有办法只在一行中以特定格式获取此字段
这是我当前的格式字符串:Name:%%{Name}\n版本:%%{VERSION}\n版本:%%{RELEASE}\n体系结构:%%{ARCHITECTURE}\n安装日期:%%{INSTALLTIME:Date}\n说明:%%{DESCRIPTION}\
我有一个简单的Dockerfile和docker compose设置来测试容器中的cron
最后一步是启动cron,我得到消息cron has started,但是当我登录到容器并检查cron服务的状态时,它没有运行。这怎么可能
我相信我误解了一些事情,但不清楚到底是什么
Dockerfile:
FROM ubuntu:bionic
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Insta
我想打印perl脚本的所有sql结果,我已经连接到数据库,我想显示sql查询的结果:
MySQL("SELECT * FROM test");
# define subroutine to submit MySQL command
sub MySQL
{
#Connect to the database.
my $dbh = DBI->connect("DBI:mysql:database=database;host=ip",
"login", '
我在这篇文章中使用了Stargateur提出的代码,效果非常好(谢谢!!!)
我用它来比较另一台机器上NIC1的tx时间戳和NIC2的rx时间戳,两者都与1米长的电缆直接相连。
我希望两个时间戳之间的差接近一个常数(对应于时钟差+通过NIC和电缆的时间旅行)
然而,我在测量之间得到了一个巨大的抖动(时间戳之间的差异有几百毫秒的变化)
知道哪里出了问题吗
谢谢
我想在top实用程序上使用grep。反复浏览top5次,以下是我的标准:
grep在top输出上一次通过两个不同的表达式
表达式1:grep获取cpu总使用量的行,然后将其输出到文件:cpu_stats.txt
表达式2:grep获取关于总体内存使用情况的行,然后将其输出到文件:memory\u stats.txt
以下是我现在拥有的:
top -b -n 5 | egrep "\%Cpu\(s\):|KiB Mem :" > both_cpu_and_memory.txt
这成功地
在尝试启动minishift时,它会自动更新主目录中的缓存
/home/abc/.minishift/cache/.....
但是,我希望minishift使用自定义目录,而不是默认的主目录,因为空间不足
这可以通过在./minishift启动期间更改任何参数来实现吗
也尝试了codeready容器,但它会复制到默认的主目录中
FATA Failed to copy embedded 'crc_libvirt_4.5.1.crcbundle' from /opt/data/crc-linux-
对不起,我的英语不好。我想将文件从桌面移动到用户的输入目标。
如果目标也有一个同名的文件,我如何要求用户重命名该文件,以便他可以将它们都放在目标文件夹中?
我现在有这个:
#!bin/bash
echo "path"
read path
echo "Do you want to move code files somewhere else?"
read -t 5 y
if [[ $y = 'yes' ]] ; then
echo "Tell me
我最近和Docker一起玩,我决定开始一个有趣的项目,所以我有一个Docker文件:
# Base Image
FROM debian:buster
# Making steam directory
RUN mkdir /home/cs &&\
mkdir /home/Resources &&\
mkdir /home/Resources/steamcmd &&\
mkdir /home/Resources/rehlds
我需要将CMake安装到Onion Omega2SoC。怎么做?系统使用opkg管理器。我应该包括哪些回购协议