您将如何评估Unix系统管理员
Unix管理员应该具备哪些编程能力?我使用以下几种能力进行快速筛选:
什么是叉形炸弹,它是好的还是坏的
给我一个单行命令,计算日志文件中以昨天的日期开始的行数
现在换一种方式
还有第三个,如果你能做到的话
什么应该是chmod 777d,以及为什么
您希望在用户主目录中包含哪些。*文件,以及这些文件中包含哪些内容
评估他们的唯一可靠方法是让他们与您认识并相信是优秀Unix系统管理员的其他人聊天。我不同意你自己并不真正理解的面试问题,因为你无法判断应聘者是否对该主
我有一个文件。它包含如下字段
i/p文件:
a.txt
9842,5003,a,a,100
9942,5003,a,a,100
9852,5003,a,a,100
98456,5003,a,a,100
9742,5003,a,a,100
b.txt
7842,5003,a,a,100
7942,5003,a,a,100
7852,5003,a,a,100
98456,5003,a,a,100
7742,5003,a,a,100
c.txt
8842,5003,a,a,100
9842,500
我有一个带有唯一ID列表的主文件,并希望将三个文件与ID子集一起对齐,结果是:
第1列(id1、id2、id3、id4等)第2列(空格、id2、空格、空格)第3列(id1、id2、空格)第4列(id1、空格、id3空格)等。
我在R中有一个唯一的列表,unix中的“comm”命令似乎可以做到这一点——R中是否有一个等价的列表 数据的结构不是很清楚,但如果从以下向量开始:
R> master <- paste("id",1:10,sep="")
R> sub1 <- pas
我在将生成文件中修改的路径导出到当前终端时遇到一些问题。
我试图添加到路径中,即Makefile目录所在的bin文件夹
以下是makefile的相关条带:
PATH := $(shell pwd)/bin:$(PATH)
install:
mkdir -p ./bin
export PATH
echo $(PATH)
回波正确打印,但如果我在终端中重做回波,路径将保持不变
提前感谢您的帮助。如果您使用的是GNU make,则需要显式地将PATH变量导出到子流程的环境
我一直在使用cp-r复制我的文件系统中的一些东西,奇怪的事情不断发生……某些被授权为777的目录在我复制到的目标目录中拥有更安全的权限
这是正常的行为吗 cp-a可能会解决您的问题,您需要告诉cp保留权限,以便它不会从您的umask继承这些权限。确实如此。编辑我的回复。
假设有一个终端(T1)打开,pid为6350
类型:
echo "ls\n" > /proc/6350/fd/0 (writen in another terminal (T2)).
这会在T1中写入ls和换行,但不会执行它?为什么?
我也试过使用
cat|bash with echo "ls\n" > /proc/catPID/fd/0
但它仍然没有被执行
有什么想法吗
谢谢
编辑:
一个可能的技巧:
mkfifo toto
$bash < toto
$echo "
我创建了一个lftp脚本,将单个文件上载到web托管提供商
用例是我从存储库根目录调用它,因此这里和远程服务器中的相对路径是相同的
#!/bin/bash
DIRNAME=$(dirname $1)
FILENAME=$(basename $1)
REPO_ROOT=$(pwd)
ABSOLUTE_PATH=${REPO_ROOT}/$1
lftp -u user,passwd -p port sftp://user@hosting <<EOF
cd $DIRNAME
put
在尝试使用find/命令通过重定向查找vi文件时,我最终得到了unix服务器上列出的每个文件。我使用2>将不需要的文件转储到find.error文件中。我正在尝试使用1>创建一个包含我搜索内容的文件和一个错误文件
使用:
find/find.ls vi 2>find.error
将在shell中显示搜索的内容,并将错误转储到find.error中
但是,如果我使用:
find/1>find.lst vi 2>find.err
它创建一个文件,将unix服务器中的所有内容转储到file.lst和f
我有一个名为test01的文件,它当前包含:
1 Line one.$
2 This is the second line. $
3 The third $
4 $
5 This is really line 4, with one blank line before. $
6 $
7 $
8 $
9 Five$
10 $
11 Line 6 is this.
12 Seven $
13 $
14 Eighth re
嗨,我有两个作业,其中第二个作业需要在第一个作业后运行30分钟
我正在使用crontab-e设置cron作业
1st job 0 * * * * /home/hadoop/datapull.sh
2nd job /home/hadoop/loaddata.sh
我已经安排了我的第一个作业(datapull.sh),如上面所述,它将运行一个小时
随后,我的第二个作业需要在第一个作业完成30分钟后运行
Lets say my 1st job runs 1PM,2PM,3PM,4PM s
我在CVS中有一组文件,每个文件都有多个版本。现在不需要在CVS中有这些文件和版本,主要是为了空间。我想完全从CVS(所有版本)中删除这些文件。我注意到
cvs delete file1
接
cvs commit
仅从CVS中删除文件的最后版本。如何删除文件的所有版本
谢谢 > P>在做这件事之前要认真考虑后果。版本控制的使用通常支持跟踪历史记录。我不建议继续这样做
删除文件的版本通常是不赞成的,因为它会改变历史记录-标记的修订集将被改变,使它们不再代表保存的历史状态
您最好预先知道CV
我有一个用分号分隔的CSV文件,该文件包含对客户评论的情绪分析
视图按字段1和6分组,我要做的是添加组中每行的最后字段,然后将总和与字段3进行比较。如果它们匹配,则比较值等于1(如果不是0)。
同时,我还比较了应用上述相同规则的字段6和字段7
最后,分别计算两次比较得到的数量
下面我有一个脚本,但我认为它可以改进。有什么建议吗?此外,我也不确定脚本是否良好
BEGIN {
OFS=FS=";";
flag="";
counter1=0;
counter2=0;
我正在运行这三个命令
cd "${folder1}"
diff -ruN "${folder1}" "${folder2}" > "${patchname}"
patch -f -s -d "${folder1}" --merge < "${patchname}"
cd“${folder1}”
diff-运行“${folder1}”${folder2}”>“${patchname}”
patch-f-s-d“${folder1}”--merge
我对unix有基本的了解,所以这个问题可能很容易解决
我一直在尝试使用“awk”命令来比较两个文件(每个文件中的两列由一个选项卡分隔),最终目标是拥有一个包含文件1中所有行的文件,但是如果该行位于文件2中,我希望将文件1中的行替换为文件2中的同一行
File 1:
Supercontig_12.1,420 0
Supercontig_12.1,421 0
Supercontig_12.1,422 0
Supercontig_12.1,423 0
…(rows conti
我在server1中有一个unix脚本,它通过ssh连接到另一个server2和grep,并对文件中的一些字符串进行计数,并且必须将计数返回到server1中的不同文件(server2中的不同字符串计数)
sshusername@server2
grep'string1'文件1 | wc-l>>文件2(在服务器1中)
grep'string2'文件1 | wc-l>>文件3(在服务器1中)
grep'string3'文件1 | wc-l>>文件4(在服务器1中)
正如我已经在server2中一样
我的shell脚本中有此代码
sftp myuser@192.168.0.15 <<EOF
cd /c/folder
lcd /ux/source
put -p *.csv
exit
EOF
如果日志文件的文件名是在脚本本身中定义的呢?如何将脚本中的sftp命令重定向到文件?更改此行
sftpmyuser@192.168.0.15更改此行
sftpmyuser@192.168.0.15什么是“在脚本本身中定义”?什么是“在脚本本身中定义”?
sh myscript.sh >
以下代码按预期工作。但我无法格式化输出。
它将打印如下内容:
mysql
test
someDB
我希望输出在一行上
mysql test someDB
我尝试在脚本中使用sed,但没有成功
#!/bin/sh
for dbName in `mysqlshow -uroot -pPassWord | awk '{print $2}'`
do
echo "$dbName" | egrep -v 'Databases|information_schema';
done
换行符很可能是由echo
我已经设置了一个简单的TCP文件传输。除了接收到的文件大小偶尔比发送的文件小之外,一切都正常。接收到的文件的大小似乎没有任何模式
(在下面的代码中,请注意,典型的客户机/服务器卷是相反的)
我的客户机代码如下:
#define kMaxBacklog (5)
// fill out the sockadd_in for the server
struct sockaddr_in servAdddress;
//memcpy() to fill in the sockaddr
//setup t
有谁能给我举个小例子,告诉我unix中的“评测”吗。
谢谢大家! 如果你想要一个有用的答案,你需要给我们提供更多的上下文。广义地说,分析一个程序就是在可执行文件中插入一些额外的语句,这些语句记录了执行的细节,您可以在以后分析这些语句,以识别速度慢、占用太多内存的部分,消耗太多的CPU等。这里有一个关于如何使用gprof的快速示例,这是用于C的GNU分析器。如果你想在评测方面大放异彩,那就谈谈吧。在unix中评测与在其他平台上评测是一样的:在程序执行过程中达到峰值,看看它在哪里花费时间。关于uni
unix中静态库和动态库的区别是什么?
如何在unix中使用库?静态库在链接时链接到可执行文件中,因此在该点上是固定的
对于动态链接,在链接时仅链接对库的引用。运行程序时,动态库(实际代码)在加载时链接到可执行文件
这意味着您可以随时更改动态库,并在下次加载程序时使用新库
有关更多详细信息,请参阅。的可能重复项
问题是我找不到正确填充框数组的方法。代码如下:
local expl
declare -a boxes
boxes = $(ls $HOME/.vagrant/boxes --color=none)
_wanted boxes expl 'help' compadd $boxes
引发异常:
vagrant help __box_list:13: command not found: boxes
__box_list:13: command not found: boxes
__box_lis
计算最后一列中具有类似值的文件中的行数
1 517904400201116629 ; 26122010 194609 ; 102 ; 10 ; FR ; M ; NA ; 0 ; (ART1-000010) The FR server timed out.
1 517904400201116630 ; 26122010 194609 ; 101 ; 10 ; FR ; M ; NA ; 0 ; (ART1-000010) The FR server timed out.
1 5
如何区分2个文件,以便:
我不关心任何类型的空白(-b选项)
我不在乎内容的位置。(??)
我上面提到的2的意思是:第1行上有a,第2行上有b的文件等于第1行上有b,第2行上有a的另一个文件
如果问题还不清楚,请告诉我
谢谢。先对这两个文件排序,然后区分它们。没有办法让diff相信a线和b线在任何方面都是可互换的。顺序对于差异来说是极其重要的
编辑以供评论-
像diff这样的工具除了简单的有序行之外,不理解任何更高级的语义。您可以尝试编写一个工具,将您的文件转换为更高级别的概念,每行一个,dif
我想看看是否有一条新的线路匹配。原因是我的脚本要求输入用户名。如果按enter键,则使用默认名称
问题是,我似乎无法检查他们是否按了enter键,或者使用了自己的名称。我在网上搜索了很多,找不到有效的答案。以下是我尝试实施的内容:
if [ `expr match "$temp1" "\n"` != 0 ]
这是很新的。谢谢 您不需要检查他们是否按了enter键。只需检查字符串的长度。例如:
if [ -z $input ]
then
echo "No name was input.
我想下载一个网页,同时从stdin提供URL。实际上,一个进程不断地生成指向stdout/file的URL,我想通过管道将它们传递到wget或curl。(如果你愿意,可以把它想象成一个简单的网络爬虫)
这似乎很管用:
tail 1.log | wget -i - -O - -q
但是当我使用“tail-f”时,它不再工作了(缓冲或wget正在等待EOF?):
有人能提供使用wget、curl或任何其他标准Unix工具的解决方案吗?理想情况下,我不想在循环中重新启动wget,只要让它在下载UR
我试图解析file2的记录23,并用它替换file1的记录23
这是我每次都要运行的命令
script.awk file1 file2
下面是两个文件的记录23的示例。每个值中的分隔符和位数相同,并且具有相同的第一个字段字符串
currentmax: 1.7229 1.6888 1.1069 1.6238
这将是更大的awk脚本的第一部分。我将在这个脚本中添加更多内容,以便只处理file1中的新值并输出到file3,但这将用于以后
我不确定命令中不同的文件顺序是否会使脚本更容易编写,然后操
我是Unix的新手。我正在尝试以另一个用户的身份运行shell脚本和命令
例如:
我以user1身份登录,希望以user2身份执行脚本。我不想密码提示,我想它是自动输入。我知道公钥身份验证,但我正在尝试查找是否存在以下情况:
sudo -u user2 script.sh
#!/usr/bin/expect
set password "megapassword"
spawn /bin/sudo -u user1 /usr/local/bin/script.sh
expect "password
如何剪切双引号内的值并用逗号分隔。
例如
我需要如下输出:
Number
12,13
32,15,21
我正在使用命令cut-d“,“-f1,但没有得到预期的值。sed's/“//g;s/*/'foo.csv
结果
Number
12,13
32,15,21
删除所有“
删除第一个空格后的所有空格
sed的//“//g;s/*//”foo.csv
结果
Number
12,13
32,15,21
删除所有“
删除第一个空格后的所有空格
上面的方法应该有效
> cat te
我在文件夹“model”中有一组.xml文件,其中包含以下内容:
<property name="manager"
type="string"
column="manager" />
<property name="age"
type="integer"
column="age" />
我基本上需要删除所有出现的int和Integer以及long
有没有像unix命令或脚本这样
我知道tail打印文件的最后几行。我阅读了tail的文档
man tail
上面写着
-f选项使尾部在到达文件末尾时不会停止
而是等待附加数据添加到输入中
我测试了命令
tail -f sample.txt
及
看到了区别。但是,有人能提供一个真实的例子,说明为什么他们会使用tail-f而不仅仅是tail?当您查看一个正在运行的进程生成的日志文件时。-f用于您希望有人在您查看该文件时出现并附加到该文件。最常见的是在日志文件中使用它(记录器将在文件末尾添加行,这对于查看这些行非常有用),但我也
我试图使用awk获取给定文件绝对路径的文件名。
例如,当给定输入路径/home/parent/child/filename时,我希望获得filename
我试过:
awk -F "/" '{print $5}' input
这很好用。
但是,我正在硬编码$5,如果我的输入具有以下结构,这将是不正确的:
/home/parent/child1/child2/filename
因此,通用解决方案要求始终使用最后一个字段(即文件名)
使用awk substr函数是否有一种简单的方法可以做到这一点?
我有一列数字,例如:
2
3
4
5
8
9
十,
我想为我的数字列输出类似于2-5和8-10的内容。这看起来并不难,但我缺乏技巧。使用awk,我试图创建一列差异,如下面所示,并使用它来捕获范围,但无法使事情正常进行
20
31
4.1
5.1
8.3
9.1
101
startNumber=$1
{如果($2>1){打印“开始编号”,开始编号}否则{
如果($2这样的东西应该有用
$ awk '1{if (NR==1) {a=$0; print $0, 0} else {print $0, $
代码如下:
#!/bin/bash
title='Unix Shell Programming'
read search_word
if [[ $title =~ $search_word ]]
then
echo Yes - matchli
else
echo No - match
enter code here
fi
我想将$title替换为名为emplist的文件。可能吗?我该怎么做?谢谢大家! 您可以这样使用grep:
if grep -q "$search_word" e
我想根据这两个标准筛选file1
(a) 仅包括$1可以在文件2中找到与$1匹配的记录(在许多情况下会有多个匹配)
(b) 找到匹配项后,应检查file1中的$2,以确保它在file2中的$2和$3指定的范围内
文件1:
seq_100|rf001 298 01 11 01 11
seq_0442|rf76 6000 01 11 10 00
seq_9999|rf54 5098 01 01 01 01
seq_100|rf001 0 679
seq_100|rf001 700 800
seq_
我正在为ruby脚本编写一个包装器脚本。
我的要求是在任何时候发送y作为一个输入,作为一个交互部分,发送的次数未知
#!/usr/bin/expect
set timeout 20
spawn "./rubyScript"
while(true){
# I am unaware of how many times this interactive part can come
expect "*(y/n)"
send "y\r"
interact
我有一个路径a,它是路径B的符号链接。路径C有些不同
如果目的地相同,我如何检查
我想实现,以防:
A = B
A = A
B = B
C = C
A = C
B = C
我想得到假,以防:
A = B
A = A
B = B
C = C
A = C
B = C
谢谢使用inode编号
touch m n # Create m and n
ln -s m o # Symlink o to m
ls -lLi m n o # Look at inodes of all
我在尝试使此脚本正常工作时遇到问题。特别是在一个地方。脚本如下:
egrep -v "total" asg4edb > /class/cm325d/06/dASG4/t1
egrep ":" t1 > /class/cm325d/06/dASG4/t2
sed 's/^-/r/' t2 > t1
sed 's/cm325d06/me/' t1 > t2
sed 's/cm325d/gang/' t2 > t1
sed 's/^d/A/' t1 > t2
sed
我有一个ksh脚本,其中包含一组echo语句,这些语句输出到日志文件,如下所示:
echo "[$(date '+%c')] some text of a status" >> $lgfile
lgfile="$(date '+%Y'-'%m'-'%d'_'%H':'%M'_${ID}).log"
echo "[$(date '+%c')] $ID is now started" >> $lgfile
. ./process.ksh $lgfile $ID
. ./p
我试图通过附加到电子邮件正文来生成和发送html文件。我尝试使用awk生成和发送一个文件。例如,输入文件MARTINI有以下记录:
1554894,2015-04-16,00:21:52,processes.martini_gsicorptradeeventoutput.instancecount,0,1,UP
1554793,2015-04-15,22:03:52,processes.martini_gsicorptradeeventoutput.instancecount,2,0,DOWN
发件人:
POSIX(/ˈpɒzɪks/POZ-iks)是便携式操作系统接口的首字母缩写,[1]是IEEE计算机协会为维护操作系统之间的兼容性而指定的一系列标准。POSIX定义了应用程序编程接口(API)以及命令行shell和实用程序接口,以便软件与Unix和其他操作系统的变体兼容
问题是他们清楚地说“Unix的变体”和“其他操作系统”
通过“其他操作系统”,它们指的是哪些操作系统?首先,POSIX是一套标准,因此根据您所谈论的操作系统,您会发现或多或少兼容的操作系统
第二,任何符合POSIX接
如何递归检查父目录中的CTRL+M字符并在Unix中删除它 如果您的意思是^M位于文件和/或目录名中,并且希望删除这些文件和目录:
使用find几乎是微不足道的
唯一棘手的一点是如何在命令行中输入CTRL-M字符:首先键入CTRL-V(以转义解释下一次击键的shell表单)和CTRL-M
所以
find-名称“^M*”-打印
[阅读上面关于如何键入^M的内容]
我会列出所有需要的
及
find-深度-名称“*^M*'-exec rm-rf{}”
将全部删除(如果它是一个目录,则以递归方式—如果您
我只想在子目录的某些文件中找到将patter1替换为Patter2。但排除某些替换子目录。这个命令有什么问题
find ./ -type f --exclude-dir='workspace' --exclude-dir='builds' \
-exec sed -i '' 's/foo/bar/g' {} \;
我在man find中没有看到选项--exclude dir(我在man grep中看到了,但您不能仅仅借用其他命令的选项)
试一试
出错的地方可能是复制了你的打字错误-f,
我试图编写一个简单的foreach循环,列出哪些文件存在,哪些不在目录中。在本例中,我们假设有一个目录,其中包含两个名为def_456和ghi_789的文件。如果我要做这样的事情:
foreach f (`xargs`)
abc
def
ghi
foreach$ ls /path/to/dir/* | grep $f
foreach$ end
我希望它能吐出def_456 ghi_789,因为这个目录没有名为abc_123的文件。有没有办法让它让我知道缺少了abc_123?是否有一个标志我可以
我有一个文件的内容如下
+ echo Aus is
我正在使用grep Aus,但需要忽略+echo
grep Aus input.txt
那么您只需要显示匹配部分?如果是,则使用-o:
grep -o Aus input.txt
顺便说一句,在大多数系统上,您可以使用man-grep查看grep的帮助,因此您只需部分显示匹配?如果是,则使用-o:
grep -o Aus input.txt
顺便说一句,在大多数系统上,您可以使用mangrep查看grep的帮助,看起来您正在执行一些sh
标签: Unix
java-native-interface
我有Java代码来加载C库(32位),我有AIX7.1系统,它有32位Java-6来运行Java代码。但我有一个例外
代码:
public class NativeMQChannel {
static {
// String jMQlibPath = System.getenv("JMQLIBPATH");
// String libraryFile = (jMQlibPath != null ? jMQlibPath : "");
//
我有一个文件,其中有几行:
a
b
c
d
我想将cat此文件转换为awk命令以生成如下内容:
letter is a
letter is b
letter is c
letter is d
使用类似这样的方法:
cat file.txt | awk 'letter is $1'
但它并没有按预期打印出来:
$ cat raw.txt | awk 'this is $1'
a
b
c
d
不确定您是想要sed还是awk,但这是在awk中:
$ awk '{print "letter is
这个问题以前可能被问过一百万次,但没有看到我的ExExxt案例
假设文本文件包含:
a
ab
bac
现在,我想在“a”上大放异彩,只在第1行上大放异彩。在“a”之后总是有一个[tab]字符
有人有什么想法吗
谢谢
罗纳德试试这个:
head -1 *.txt | grep -P "a\t"
head将为每个文件指定行数(在我的示例中为所有txt文件),grep-p使用perl定义的正则表达式(perl将\t作为tab)
我试图从文本文件中找出最小值,该文件包含重复的名称,但值不同
Peter 0.19827
Wilson 0.99234
Peter 0.08234
May -0.45623
Joe 0.88765
Wilson -0.88341
Joe 0.99943
一、 我已经试过了,但不起作用:(我更喜欢awk一行)
若您不担心输入文件中第一个字段的顺序,请尝试以下操作
awk '{{a[$1]=(a[$1]>$2?a[$1]?a[$1]:$2:$2)} END{for(i in a){print
全部
最近,我正在使用命令在unix系统上调试一个问题
netstat-s
我得到了一个输出
$ netstat -s
// other fields
// other fields
TCPBacklogDrop: 368504
// other fields
// other fields
我搜索了一段时间来理解这个字段的含义,主要得到了两个不同的答案:
这意味着您的tcp日期接收缓冲区已满,并且有一些包溢出
这意味着您的tcp接受缓冲区已满,并且存在一些断开连接
哪个是正确的?任何
您好,我在UNIX中有一个文件,数据如下:
obj1_N,obj2_N,obj3_N\
obj3_N,obj2_N,obj4_N,obj1_N\
obj1_N\
obj3_N,obj4_N
cat file.txt
obj1,obj2,obj3\
obj3,obj2,obj4,obj1\
obj1\
obj3,obj4
我希望每个单词都替换为_N,并希望输出如下:
obj1_N,obj2_N,obj3_N\
obj3_N,obj2_N,obj4_N,obj1_N\
obj1_N\
obj3_
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 222 页