unix如何处理带空格和参数的完整路径名?
在windows中,我们引用路径并在后面添加命令行参数,在unix中如何
"c:\foo folder with space\foo.exe" -help
更新:
我的意思是如何从命令行参数中识别路径。如果愿意,您可以引用,也可以使用前面的\来转义空格,但大多数UNIX路径(Mac OS X除外)中没有空格
/Applications/Image\ Capture.app/Contents/MacOS/Image\ Capture
"/Appli
假设我有一个文件url.txt,其中包含我正在监视的URL列表。我的监控脚本偶尔编辑该文件,比如说,以指示是否可以访问每个URL。我还想手动编辑该文件,以添加或更改URL列表。我如何允许这样做,以便在手动编辑时不必考虑它
以下是一些可能的答案。你会怎么做
参与黑客活动,比如让程序检查vim或emacs创建的锁文件。因为这只是为我准备的,所以这实际上是可行的
如果人工编辑始终优先,只需让人工删除程序的更改(例如,忽略编辑器关于文件已在磁盘上更改的警告)。然后,程序可以在下一个循环中重做其更改。不
我的代码
$ *.php | grep google
如何打印每个匹配项旁边的文件名和行号
grep google *.php
如果要跨越多个目录:
find . -name \*.php -print0 | xargs -0 grep -n -H google
(如注释中所述,-H在xargs只剩下一个文件时很有用)使用“man grep”查看其他功能
for i in $(ls *.php); do grep -n --with-filename "google" $i; done
人们谈论常见技巧的问题很多,尤其是“魔术”
然而,我并没有提到Vim新手会觉得很酷的常用快捷方式。我说的是一位经验丰富的Unix用户(无论他们是开发人员、管理员,还是两者,等等),他认为他们知道99%的人从未听说或梦想过的事情。这不仅让他们的工作更轻松,而且还很酷,很有黑客味。毕竟,Vim驻留在世界上最黑暗的角落丰富的操作系统中,因此它应该有一些只有少数特权人士知道并希望与我们分享的复杂之处。让我们看看一些非常小的IDE编辑器如何进行列转换
:%s/\(.*\)^I\(.*\)/\2^I\1/
我想在文件目录上运行一个程序。我知道如何使用一个文件,使用
cat myFile.xml | myProgram.py
如何在文件夹上运行myProgram.py,例如myFolder
谢谢 假设您的程序可以接受文件名作为其第一个命令行参数,一种方法是使用find查找文件夹中的所有文件,然后使用xargs为每个文件运行程序:
find myFolder | xargs -n 1 myProgram.py
-n1表示每个文件运行一次程序。如果您的程序乐于在其命令行上接收多个文件名,则可以省略-n
早上好
在zshell中,我有一个别名,如下所示:
alias foo='echo FooBar!'
这当然行得通
我有一个函数,其中我试图实际“执行”别名,但它没有
foo_fun () {
echo "About to foo!"
`$foo`
$foo
eval $foo
eval `$foo`
echo "Just food...wait what?"
}
我花了很长时间才想出合理的搜索词。有什么想法吗
我还尝试:
"$foo"
这将
我想在solaris 10机器上安装几个unix实用程序(包括xmlstarlet、wget),但我没有根用户访问权限(显然,我有一个用户帐户)。我对solaris没有太多经验,我想知道我是否可以简单地为我需要的每个实用程序获取一个uber二进制文件,并将其放在我的主目录中?这是否可行
非常感谢只要二进制文件不尝试执行需要超级用户权限的操作,并且二进制文件是为您的平台编译的,您就可以了。只要二进制文件不尝试执行需要超级用户权限的操作,并且二进制文件是为您的平台编译的,您应该没事。默认情况下,在S
基本上,我想让终端输出一条消息,后跟日期和时间,比如“嗨,今天是-日期和时间-”
所以echo可以完成第一位,date可以完成最后一位,但只能单独完成,我如何将它们放在一起(在一个命令中),以便它们一起输出
像
你好
-新命令-
日期
是的,但不是一行。管道化就是答案吗?这样就可以了:
echo "Hi, today is $(date)"
您还可以使用以下修改器格式化日期输出:
echo Hello there, today is `date +%D`
有关修饰符的完整列表,请参见man
我有固定宽度的文件,宽度为34、2、3、2、1、1、3、1、2、1、2、2和75,我希望(a)转换为分隔(csv)格式,然后(b)根据V2=“03”和V5=“1”转换为子集。我已经想出了第一步:
awk -v FIELDWIDTHS='34 2 3 2 1 1 3 1 2 1 2 2 75' -v OFS=',' '{ $1=$1 ""; print }' </filepath/Parse.txt > /filepath/Parse.csv
awk-v FIELDWIDTHS='3
有什么理由相信其中一个对另一个是正确的(当然13是正确答案除外)?见附件截图。我很想知道这是否可以复制。图片链接如下:
如果希望分数显示在bc中的除法结果中,则需要将比例设置为默认值1以外的值
(1.61803399^7)/sqrt(5)
14
scale=10
(1.61803399^7)/sqrt(5)
12.9845972055
Wolfram Alpha同意谷歌的观点:
好的,这就是问题所在。我试图创建一个awk程序,在文件中的列中添加几个字符。很简单,但问题是文件包含awk解释为转义或特殊字符的字符,如\^和/。。。我想让awk表现得好像字段分隔符之间的所有字符(或者实际上任何非字段或新记录字符)都应该在那里,而不传递特殊信息。我不希望它以任何特殊的方式解释任何文件。有办法做到这一点吗?从您的评论来看,您似乎是在告诉awk将文件当作程序使用,而不是将其作为数据处理。尝试:
awk -F\| '{print $2}' NH3
这个问题对我来说没有意义。awk不
我有一个包含以下内容的unix文件
$cat myfile.txt
abc:1
abc:2
hello:3
hello:6
wonderful:1
hai:2
hai:4
hai:8
如何获得上面文件中每个文本的最大值
“abc”值2
“你好”值6
“hai”值8
“womderful”1基于您问题中的当前示例,减去预期输出的第一行:
awk -F':' '{arr[$1]=$2 ; next} END {for (i in arr) {print i, arr[i]} } ' inputfi
我在试着掌握海德拉的窍门
当我对我的ftp站点进行测试时,它是有效的。我正在使用正确的用户名和密码(例如用户名1和密码1)访问我自己的ftp站点(例如www.mysite.com):
但是,当我这样做是为了测试公共基本身份验证测试页(http://browserspy.dk/password-ok.php)使用正确的用户名和密码(test和test),hydra只需使用“解析地址”就可以停止。。。“完成”消息
./hydra -l test -p test -vV -f browserspy.d
我们为应用程序从一个环境迁移到另一个环境创建了一个作业。我们选中了“此构建已参数化”选项。在这里,我们创建了3个参数。源环境、应用程序和目标环境
我们的要求是,如果指定第一个参数(源环境),它应该调用unix脚本,并将该脚本的输出(部署在该环境中的应用程序列表)用作第二个参数(应用程序)
如果我们选择一个参数,并且输出应该进入第二个参数,那么是否可以调用脚本?这是不可能的。在构建实际开始之前,必须指定所有参数。
所有的选择参数都是静态的
您是否希望在给定第一个参数后,构建运行一段时间,然后等待您
标签: Unix
shared-libraries
例如,我的目录如下所示:
lib
|
+--foo.so
+--bar.so -> bar.so.1.0.0.0
+--bar.so.1.0.0.0
/path/to/lib
|
+--foo.so
+--bar.so
+--bar.so.1.0.0.0
这两种方式总是一样的吗
我问这个问题的原因是我发现当我
cp -r lib /path/to/
新目录如下:
lib
|
+--foo.so
+--bar.so -> bar.so.1.0.0.0
+--bar.so.
.zip归档文件是否在内部维护其中文件的校验和
如果它维护校验和,如何确保在解压缩期间校验和得到验证?是否可以在不解压缩的情况下验证校验和?是的,zip为存档中的每个文件保存CRC-32校验和,并且它应该在解压缩期间进行验证。在unix中,如何在不解压缩的情况下验证.zip文件。?这是不可能的,因为文件条目包含未压缩数据的CRC-32,所以你无论如何都应该解压它们。有unzip-t可以在不将解压数据写入磁盘的情况下进行验证,这可能是@sachinjose想要的。
我在spool文件中获取查询,但是如果我想在查询结果之前或之后编写一些echo语句,那怎么可能呢
e、 g
如何在spool文件中获得这一行“this is showing the details of employee”如何更改
!echo "This is showing the details of employee"
到
IHTH
!echo "This is showing the details of employee"
select "This is showing the d
我有点困惑,只有当两个条件为真时,如何在unix中打印行。我有一个以制表符分隔的文件,有12列
第1列和第7列按字母顺序排列,第6列和第12列按数字顺序排列
如果$1=$7和$6=$12,我只想打印行
我非常感谢你的帮助 此awk应能:
awk '$1==$7 && $6==$12' file
死了?这不是完全溢出:)可能是@Hixon的副本,请阅读
需要运行几个应用程序。用户何时需要此权限的Unix规则是什么?是不是我们需要在家外面修改一些东西?
这个问题源于一个更具体的问题——为什么我们需要成为root用户才能使用insmod插入内核模块 Insmod需要超级用户权限,因为插入内核模块会修改操作系统内核。该模块将能够读取和写入系统内的任何内存、读取或修改磁盘上的任何文件、更改权限、任何资源的所有权等
一般来说,这些都是受超级用户权限保护的东西:能够绕过对内存、文件和其他资源的访问控制,并执行操作系统所需的各种管理任务(如果允许恶意用户使用
我需要在Unix上创建dos格式的文本文件,其行尾字符为\r\n
在Unix和vi中,我可以(通过“set list”)看到$end-of-line字符。
当我使用以下命令将文件转换为DOS格式时:
perl -i -pne "s/\n/\r\n/g" i.txt
我得到的行尾为:^M$。
这很接近,但我需要的是一个以\r\n结尾的文件(仅限^M)
示例i.txt文件(例如,如果在vi中启用了set list):
起始文本行1$
起始文本行2$
转换产品:
起始文本行1^M$
起始文本行2
在以下IPC选项列表中,可以执行多播(即1个发送方和多个接收方):
信号
半双工管
命名管道
SystemV消息队列
unix域套接字
编辑
内存映射文件
根据我的理解,命名管道可能是可行的(不确定)。没有什么比多播在概念上更灵活的了,但是有一些限制,一些设施可能会做你想要的事情
信号可能是错误的。您列出的其他IPC机制有一个发送方/接收方模型,不适用于多播,如@Barmar在评论中指出的那样,除了Linux的多播AF_UNIX套接字等本地扩展之外
如果只需要向子进程发送一个“信号”,并
我试图用子目录对文件夹进行tar,但我想排除所有名为“log”的文件夹
我已经搜索并看到tar命令有--exclude选项。问题是这个选项必须是特定文件夹,而不是动态文件夹
还有别的办法吗
到目前为止,我的命令是:
tar czf ROOT/backup/servers/20150504.tar.gz ./servers --exclude=".*log.*"
如果要排除所有名为“log”的文件夹,可能使用-X更方便。以下是一个例子:
$ find ./servers -type -d -na
我想可能有一个简单的解决办法,但我似乎在任何地方都找不到。这是一个非常简单的问题。假设我有以下文件夹/文件结构:
/home/
text1.txt
/mydir/
text2.txt
然后输入命令:
find . -name *.txt
该命令在/home中调用时返回“text1.txt”,在/home/mydir中调用时返回“text2.txt”
但是,当从/家中呼叫以下用户时…:
find /home/mydir -name *.txt
它什么也不返回。
sed新手,所以请容忍我
我有一个php文件,其中包含以下行:
define('TARGET_A','044');
我想找到该行并使用sed将其替换为以下内容:
define('TARGET_K','076');
我试过:
$ sed -i 's/define\(\'TARGET_A\',\'044\'\)\;/define\(\'TARGET_K\',\'076\'\)\;/' myfile.php
我尝试过几种变体,尝试过避开括号和删除分号,但似乎没有任何效果
非常感谢您的帮助,谢谢这
嗨,我有一个csv文件,如下所示:
order,account,product
23023,Best Buy,productA
20342,Best Buy,productB
20392,Wal-Mart,productC
我正在使用前一个线程中的此解决方案:
awk -F ',' '{ print > ("split-" $2 ".csv") }' dataset1.csv
但是,输出会生成2个没有标题的文件:
文件1
文件2
如何修改上述awk解决方案,以在每个分割文件中保留标题行
我需要在我的当前目录中找到一个具有以下限制的文件:至少有两个字符长,并且前两个字符中没有以下字母:a、b、c、f、h、x、y、z
我试过了
$ ls | egrep '[[:alpha:]]{2,}' | grep -v '[abcfhxyz]'
但它不是这样工作的吗
$ ls [^abcfhxyz][^abcfhxyz]*
等等,那是怎么回事。当您有“[^abcfhxyz][^abcfhxyz]*”时,这不是意味着列表中只包含这些字母吗?[^…]不是指括号中的字符。有一些新内容,谢谢。我在
当我执行exec()系统调用(6个exec调用家族中的任何一个)时,挂起的信号和信号掩码会发生什么变化
我从execve的man页面了解到,信号处理已重置为默认设置。但它没有提到信号处理和信号屏蔽
我想知道发生了什么,以及为什么会发生这种情况的原因
谢谢这是很好的记录
如果先前将信号行为设置为handler,则显然会将其重置为默认值,因为根据定义,捕获函数代码无法保存到exec。如果它是SIG_-DFL或SIG_-IGN,它仍然是这样
过程信号掩码按文件规定继承
我正在处理一组由脚本生成的日志,该脚本为脚本运行的每个实例输出一个日志文件。一旦生成日志文件,它们就不会被修改或追加
我找不到任何方法简单地压缩日志文件并将其移动到归档目录,而不将原始文件保留在0字节左右
下面的配置完全符合我的要求,但没有删除原始(现在是0字节)文件
将rotate更改为0似乎可以执行我想要的操作,但它只是删除了日志文件的内容,没有将其压缩/移动到log_archive文件夹中
我知道这是一个不同于logrotate通常使用的用例,但是如果有一个集中的系统来归档日志文件,而不依
比如说,我有一个很长的关于物种及其出现的档案。在我的例子中,我想保留一些这样的物种:CHU,NEU,RNE,SCR,TDF。例如,我的原始矩阵是:
Species_A; CHU, NEU, TUC, SCR
Species_B; CHU, NEU, RNE, SCR, TDF
Species_C; COR, NEU, SAL, TDF
Species_D; CHU, RNE, SCR, TDF
Species_D; SCR, TDF
我只想保留那些出现CHU、NEU、RNE、SCR、TDF的物
我在unix中有这样的目录结构
A是父目录-->B C D是子目录-->B目录,具有X Y Z目录
我想删除除X子目录以外的所有子目录
我已经试过了
find * -name 'X' -prune -o -exec rm -rf '{}' ';'
此命令删除所有目录。如果目录结构为:a/b/c/
mva/b/c/-将目录c/移动到您的pwd(当前工作目录)
然后
rm-ra/-将递归删除a/和所有子目录(即b/)
这些可以在一行中执行:mva/b/c/;rm-ra/但是,我建议单独执行,这样在
我知道-r标志应该打印用户所在的真实组。但是既然-G已经打印了他的所有组,这会有区别吗?-r从显示有效(默认)切换到真实身份(无论是组还是用户)。你可以了解两者之间的区别
我的研究所最近为我们的网络安装了一个新的代理服务器。我正在尝试将我的Cygwin环境配置为能够运行wget并从远程存储库下载数据
浏览互联网,我发现了两种不同的解决方案,但似乎没有一种能解决我的问题
我第一次尝试的是跟随,所以在Cygwin:
cd /cygdrive/c/cygwin64/etc/
nano wgetrc
在文件末尾,我添加了:
use_proxy = on
http_proxy=http://username:password@my.proxy.ip:my.port/
ht
如何在UNIX中创建.so和.a文件。我们有标准的实用程序吗?*.a-archive库
要创建它,请编译源代码:
gcc -c -o foo.o foo.c
gcc -c -o boo.o boo.c
ar -rsc yourlib.a foo.o boo.o
so-定位独立代码共享库
gcc -fPIC -shared -soname,libfoo.so.1 -o libfoo.so.1.0 foo.c boo.c
看看我刚接触C时写的这篇文章。它清楚地展示了如何从a中生成并正确链接.
我正在将一个不精确的垃圾收集器从Windows移植到MacOS X。在其中,它必须扫描堆栈以识别堆中的潜在指针,然后将这些指针用作GC根。为此,我需要堆栈的底部和长度。在Windows中,此代码使用与此处描述的算法类似的算法:
我如何在Mac OS X上做到这一点?注意,现在,我只关心主线程。使用此GC的解释器是单线程的,我可以保证其他线程上不存在引用。//p>在MacOS X上运行,并且是开源的。所以您可以想象一下GC的源代码,看看它是如何定位堆栈的
或者,根据您对调用代码的控制程度,您可以
因此,我有多个文件,我的工作,他们需要合并和排序。在组合文件时,先对每个文件进行排序并使用sort-m选项,还是先将它们组合然后进行排序,效率更高
还是一样?我的理解是unix使用合并排序,所以在本质上,一个大文件会被分离、排序和重新组合吗?所以这不会有什么区别吗?将文件排序在一起
sort file1 file2 file3 file4
除非您有很多时间进行调查,否则sort命令在将文件分成大小适当的块、独立排序并重新组合方面会比您做得更好。只有一种方法可以确定。。。试试看,并分析一下。
在Unix中使用SSH在远程计算机上运行脚本时遇到问题。该脚本将无限运行,直到事件发生,在这种情况下,它将中断其循环。不幸的是,似乎在几秒钟后,脚本停止运行。我相信这与SSH有关,因为当运行localy时,脚本会按预期工作
有没有一种方法可以触发我的远程机器运行该脚本,就好像它在本地运行一样,这样我就可以关闭SSH连接,而它仍然在运行
调用远程计算机上的脚本的脚本如下所示:
#!/usr/bin/expect set add [lindex $argv 0] set add2 [lindex
标签: Unix
kshstring-parsing
我有一个文件名,例如:xxdatafile\u 20110120123030\u 12342.dat。我想从文件名中提取“XXdatafile”
如何在Unix上使用Ksh实现这一点?可能我们可以想到一个逻辑arnd,我需要截断第一个下划线后面的所有字段。i、 这里是20110120123030_12342.dat。只是一个建议。也许我们可以想到一个逻辑arnd,我需要截断第一个下划线后面的所有字段。i、 这里是20110120123030_12342.dat。只是一个建议。
$ file=xx
我使用了一个命令行应用程序,还必须将本地ip地址作为参数传递,如:
jekyll --url 'http://192.168.1.2:3000' --pygments --safe --server 3000 --auto
我想让url参数自动获取我的ip,因为我总是在不同的网络上,获得不同的loal ip地址
因此,我可以在我的.bashrc
alias jkl="jekyll --url 'http://$IP:3000' --pygments --safe --server 3000 -
我使用Eclipse和GlassFish 3.1在Mac(Lion)上开发。GlassFish使用端口8080和4848。突然,当我试图发射GlassFish时,它告诉我它不能发射,因为港口冲突
据我所知,没有任何东西在使用这个端口。我关闭一切并重新启动Mac,但在运行GlassFish时仍然会出现相同的错误。我卸载了GlassFish,删除了所有的目录,重新启动了我的机器,重新安装了GlassFish,还有同样的问题
我在我的Mac上创建了一个新的测试用户,以我的身份注销,以他的身份登录,然后
标签: Unix
sftpfile-transfer
我需要写一个脚本来自动文件传输从一个服务器到另一个只使用sftp。你们能给我一些例子sftp自动脚本???或者一些代码可以帮助我 看看这个,可以得到一些建议。有关服务器环境的其他详细信息(LINUX、Windows等)会很有帮助。必须传输的文件存在于大型机服务器中,我需要在usix服务器上获取它。您需要查看服务器环境中有哪些sftp程序。您能用Perl或Python或类似语言编写代码吗?
我想在文件(abc)中将\“grep”改为如下文本:
但是它不显示我如何使用egrep或grep来获取行。grep-F'special char'filename将搜索具有特殊字符的行
grep-Fn'special char'filename也获取行号
说,,
-F,--fixed strings:将模式解释为固定字符串列表,由新行分隔,其中任何一个都要匹配
grep-n“文件名
grep-n'\\“'文件名
对于第一个,两个连续的\\充当单个\,并且“被\转义,因此\\”被传递给grep
对
我试图通过ANT脚本在Unix服务器上的WAS7.0中部署EAR,但无法使其工作。它在Windows环境下工作良好
ws_ant.xml的一部分如下所示:
<property name="options" value="-appname CRMWeb -MapModulesToServers {{.* .* WebSphere:cell=Cell01,node=Node01_POR,server=Web_Server1}}" />
<property name="applic
谁能解释一下bash shell的这种行为,它让我发疯了
[root@ns1 bin]# export test=`whois -h whois.lacnic.net 187.14.6.108 | grep -i inetnum: | awk '{print $2}'`
[root@ns1 bin]# echo $test
187.12/14
[root@ns1 bin]# echo "iptables -I INPUT -s $test -J DROP"
-J DROP -I INPUT
我已经拉了ubuntu:14.04,在运行了docker images-tree之后,我看到了以下内容:
└─511136ea3c5a Virtual Size: 0 B
└─3b363fd9d7da Virtual Size: 188.1 MB
└─607c5d1cca71 Virtual Size: 188.3 MB
└─f62feddc05dc Virtual Size: 188.3 MB
└─8eaa4ff06b53 Virtual Size: 1
我想使用PMREP命令从命令行将XML文件导入informatica存储库
我执行的命令:
pmrep objectimport-i.XML-c Control.XML-l Import_Log.txt
控制文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<!--apply label name LABEL_IMPORT_NEW to
我正在将我的zsh设置移植到fish。不过,我正在为《鱼》中的争论而挣扎
function kill_server
lsof -i TCP:$argv | awk '/LISTEN/{print $argv[1]}' | xargs kill -9
if $argv !== dev 2>null
echo "Port" $argv "found and killed."
end
end
我也尝试过使用switch语句,但不确定如何检查端口号的正
假设我有一个包含三列的文件,如下所示:
00:00:01 Login Steve
00:00:01 Install Sarah
00:00:01 Install Sarah
00:00:02 Explorer Sarah
00:00:02 Explorer Sarah
00:00:02 Install Steve
00:00:02 Firewall Sarah
00:00:02 Logout Steve
00:00:04 Logout Sa
我将xargs与find结合在一起,并有一堆我想要查找的文件
find something
A
B
C
现在我在做什么
find something | xargs cat
我想在cat输出之间输入文件名和一些显示消息。我尝试了-t选项,但它在顶部显示了所有命令。xargs是去这里的路吗?如果是这样,我应该如何继续?如果您想回显文件名并打印消息,使用两个命令可能更简单。。。使用find获取要cat的文件列表,然后使用while循环到echo文件名并打印消息
find . -type f -n
在处理信号量时,为了在线程之间强制执行同步,我发现将信号量初始化为零非常有用
这样,只有在另一个线程对该信号量发出信号后,我才能执行部分代码
这也可以通过互斥来实现吗
我解释得更好:当我初始化Posix互斥时(例如,通过pthread\u Mutex\u init(&Mutex,NULL)),它通常在解锁状态下初始化,因此第一个尝试锁定它的线程将成功
我想知道是否有一种方法可以初始化处于锁定状态的互斥体(相当于使用带有信号量的sem_init(&sem,0,0)),也许可以通过使用互斥体的一些属
我在Windows10操作系统上使用Ubuntu WSL。
在Ubuntu20.04 LTS中,我安装了docker来创建docker图像。
然后我们有内部部署的Azure Devops服务器2019。
在git和tfvc中都有源代码。
对于git,我们没有问题,它更适合Linux。但是使用tfvc我无法创建工作区,以便在接下来的步骤中获取代码。
如上所述
我正在尝试创建工作区
/home/myuser/TEE-CLC-14.135.0/tf workspace -new SOMECORELIN
上一页 1 2 ...
6 7 8 9 10 11 12 ...
下一页 最后一页 共 226 页