我想在linux shell中在几种不同的条件下执行一些东西,并能够输出每次执行的执行时间
我知道我可以编写一个perl或python脚本来实现这一点,但是有没有一种方法可以在shell中实现呢?(恰巧是bash)使用内置的time关键字:
$ help time
time: time [-p] PIPELINE
Execute PIPELINE and print a summary of the real time, user CPU time,
and system CP
标签: Linux
remote-desktoprdp
Linux中是否有任何库可以作为客户端通过远程桌面协议(RDP)进行连接?使用的语言是次要的存在问题。任何主流语言都会(例如C++、Perl、java、Ruby、PHP、Python),甚至更少的流行的OCAML或Studio.<
除了获取rdesktop源代码并从中破解出一个库之外,还有其他选择吗?对不起,快速扫描和nm rdesktop除了X、crypto、,和压缩库。在我的Mandriva软件管理工具中键入rdp后,发现了libxrdp,这是一个xrdp依赖的库,但我不知道详细信息,因此它
在shell脚本(或Perl)中,我需要一个子程序,该子程序返回我的所有USB设备、它们的设备名,以及它们各自的OBEX接口(如果可用)。
我设法获得了设备名称,并通过obexftp--usb,获得了obex接口
如何找出属于OBEX接口号的设备?项目现场似乎表明了这一点
我想迭代输出中的每一行:ls-l/some/dir/*
现在我正在尝试:以美元表示x(ls-l$1);做echo$x;完成
但是,这将分别迭代行中的每个元素,因此我得到:
-r--r-----
1.
伊万诺夫
英格
1074
四月
22
13:07
文件1
-r--r-----
1.
伊万诺夫
英格
1074
四月
22
13:17
文件2
但是我想把每一行作为一个整体进行迭代。我该怎么做?这取决于你想对每一行做什么。对于这种类型的处理,awk是一个有用的工具。例如:
ls -l | awk
我正在移植一个构建在ACE Proactor框架之上的应用程序。该应用程序在VxWorks和Windows上都能完美运行,但在内核为2.6.X.X的Linux(CentOS 5.5、WindRiver Linux 1.4和3.0)上无法实现这一点-使用librt
我已将问题缩小到一个非常基本的问题:
应用程序在套接字上开始异步(通过aio_读取)读取操作,然后在同一套接字上开始异步(通过aio_写入)写入。由于协议是从应用程序端初始化的,因此读取操作尚未完成。
-当套接字处于阻塞模式时,永远不会
我的目的是使用POS解析器解析几个文本文件
有没有办法通过一堆文本文件来bash脚本hunpos?典型的机制如下所示:
for f in glob; do command $f ; done
我经常运行如下命令:for f in*;do echo-n“$f”;cat$f;完成查看目录中所有文件的内容。(特别适合/proc/sys/kernel/风格的目录,其中所有文件的内容都非常短。)
或
或
类似于查找-类型f-exec文件{}\或查找-键入f-print0 | xargs-0 file(仅
我想编写一个Bash shell脚本,该脚本执行以下操作:
使用Vim打开一个文件
将某些内容写入文件
保存文件并退出
可能吗?我找到了一个叫做Vimscript的东西,但不知道如何使用它。
或者类似于here文档的东西可以用于此
更新:我需要验证Vim在我们的文件上是否正常工作
系统。所以我需要编写调用Vim的脚本,执行一些
命令,并将其关闭。我的要求不适合做事
比如echo'something'>file.txt。我使用Vim打开了文件。ex是vi的命令行版本,在脚本中使用起来更容易
ex
通过在xkb/symbols/中编辑“us”文件中的一个无用键图,我可以为X11创建一个自定义键图,登录后效果非常好。问题是loadkeys/dumpkeys格式的简单编辑要繁琐得多,而且dumpkeys似乎无法在Gnome会话中工作。是否有任何方法将X11布局导出/迁移到文件loadkeys可以读取或以某种方式在系统范围内应用它,以便TTYs和登录屏幕也使用我的布局
(Ubuntu 11.04,Gnome 3)您可以使用xmodmap编辑键。例如:
提取文件中的现有密钥码
xmodmap-pk
我已经在谷歌上搜索了很长一段时间,但我仍然找不到如何使用lampp设置crontab
我需要每15分钟运行一个PHP脚本
因此,在bash中:
$ sudo -i
# crontab -e
我有一个纳米编辑器。。。我应该在里面打什么
我尝试了***/opt/lampp/path/to/script,但不起作用
有人能帮我吗?您的crontab脚本
* * * * */opt/lampp/path/to/script
可能是因为最后一个“*”和第一个“/”之间没有空格
试试这个:
* * *
bash是否有更多的文本用户界面(TUI)框架(除此之外):
我想接受用户输入(数据输入)
处理条目
如果您只需要提示用户输入信息,请查看对话框
bashsimplecurses非常有能力(从我所看到的一点来看),但是您可能想试试。(有关教程和手册链接,请查看文档页面)。它可以和你一起工作。其他堆栈交换用户(尤其是lot)建议将ncurses与Python一起使用
我正试图用它来记录大型实时应用程序中的缓存未命中:
$ sudo opcontrol --no-vmlinux --event=LLC_MISSES:100000 --session-dir=/var/tmp/oprofile -c=5 --start
但当我查看报告时,它没有提到缓存未命中。它仅对CPU_CLK_UNHALTED进行采样:
$ sudo opreport -l --session-dir=/var/tmp/oprofile
CPU: Intel Architectural
我正在编写一个Linux字符驱动程序,它可以在用户空间中打印系统日志。就像命令“dmesg”一样。
我了解到,我们使用“printk”打印的所有日志都将发送到名为ring buffer的空间。因此,我有以下问题:
环形缓冲区是否在内核空间内
如果是这样,如何读取内核空间中的环形缓冲区?(我试图阅读dmesg.c的源代码,但没有帮助。)
您要找的是/proc/kmsg。这是内核环缓冲区
是的,这是在内核空间内。任何试图读取它的进程都应该具有读取它的超级用户权限
如何在环形缓冲区中读取它?下面是来自
内核中有许多\u init调用实例,包括驱动程序模块\u init和内核的其他函数。我的疑问是内核如何准确地确定\uu init调用的顺序。更重要的是,它如何确定驱动程序模块的初始化调用顺序?所有初始化魔法都在文件中实现:
首先,查看包含以下内容的include/asm generic/vmlinux.lds.h:
其中,定义如下:
790 #define INIT_TEXT_SECTION(inittext_align) \
有没有办法检查操作系统使用了哪种内存保护机制
我有一个程序由于分段错误而失败,在一台计算机上(ubuntu),但在另一台计算机上(RH6)却没有
解释之一是操作系统使用的内存保护机制。
我有办法找到/改变它吗
谢谢,您可能想了解更多关于、
然后您还可以研究系统调用的角色和用法。它们是用于检索内存的系统调用(例如,实现malloc和free),有时使用过时的系统调用,如sbrk(这越来越无用)
您应该使用gdb调试器(它的watch命令可能很方便)和实用程序。也可能是有用的
还可以查看伪文件系统内
我试图降低所有扩展的大小写,不管它是什么。到目前为止,根据我所看到的,您必须指定要转换为小写的文件扩展名。但是,我只想将名称中第一个最后一个点之后的所有内容小写
在bash中如何实现这一点?好吧,您可以使用此代码段作为您需要的任何替代方案的核心:
#!/bin/bash
# lowerext.sh
while read f; do
if [[ "$f" = *.* ]]; then
# Extract the basename
b="${f%.
我已经设置了我的ls颜色和less等
alias ls='ls --color'
LS_COLORS='no=00:fi=00:di=00;94:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.ta
我将把我的根服务器密码发给一家公司,让他们解决我在mydns中遇到的一个问题
我相信他们都是光明正大的(我会在他们完成后更改根密码),但我只是想确定一下
我知道(我想)我可以在他们之后登录并执行history查看他们做了什么,但我知道如果他们不诚实,他们可以清除历史记录。我担心的是,如果一个流氓员工做了一些恶意的事情或安装了键盘记录软件(这种情况发生在我的同事让另一家公司管理他的VPS时)
那我能做点什么吗?历史记录命令是否在某处备份?我是否可以安装键盘记录器来验证它们执行的命令是否恶意
欢迎任
我读过一些东西,从中我可以看出,与其用调度策略调度任务,不如用调度策略调度实体。优点在于,您可以使用相同的调度策略来调度许多事情。因此,为两个调度策略(CFS和RT)定义了两个实体,即sched_entity和sched_RT_entity。CFS实体的代码为(来自v3.5.4)
对于RT(实时)实体是
struct sched_rt_entity {
struct list_head run_list;
unsigned long timeout;
unsigne
有人能告诉我细节吗。。我在网上找不到它。我真的不明白你在干什么,但我还是试着回答
由于以下几个原因,文件系统限制其最大文件大小:
inode中文件大小项的字段具有最大大小
每个文件的最大块数应受到限制
例如,在32位字段中,您只能输入最大值4*1024^3,因此这是最大大小。文件系统的文件大小限制通常由包含其文件大小的变量的大小决定。在将大小定义为32位无符号整数的文件系统中,您将无法存储大于2^32-1(=4294967295)字节的文件。在许多现代文件系统中,文件大小通常存储为64位,最
我有一个json文件,如下所示:
{
"result": {
"covered_percent": 47.06
}
}
我如何在Ubuntu终端上读取该值。您没有提到哪个版本的Ubuntu,但作为终端的1行程序,这对我有效(假设json文件位于同一目录中,称为json_file.json)
作为较短的单衬套,您可以使用以下各项:
cat some_file.json | python -mjson.tool
使用jq是另一种选择:
$ val=( $(jq '.result.
我正在尝试使awk文件可执行。我已经编写了脚本,并且执行了chmod+x filename。代码如下:
#!/bin/awk -v
'TOPNUM = $1
## pick1 - pick one random number out of y
## main routine
BEGIN {
## set seed
srand ()
## get a random number
select = 1 +int(rand() * TOPNUM)
# pri
我正在Unix系统上用C编写一个客户机-服务器(TCP)程序。客户端发送一些信息,服务器应答。每个子进程只有一个连接。新连接使用池中的预运行进程,并且池大小是动态的,因此如果空闲进程(不为客户机提供服务的进程)的数量降得太低,它应该创建新进程,同样,如果空闲进程的数量太高,则应该终止额外的进程
这是我的服务器代码。每个连接都使用fork()创建一个新的子进程。每个连接都在一个新进程中运行。如何创建如上所述的动态池
int main(int argc, char * argv[])
{
我已经创建了一个.netrc文件,这样我就可以在ftp服务器中拥有一些宏并自动执行一些标准操作
问题是,现在每次我连接到这台机器,它总是自动连接到同一个帐户,而不给我选择这台机器的帐户的选项
我在stackoverflow中发现了这个问题,但似乎没有任何答案可以帮助我
提前感谢大家在.netrc文件中,每一行都指向一台特定的机器,如下所示:
machine booster login baxter password swordfish
machine wooster login
我目前正在安装Cheapssls.com上的Comodo证书。我收到以下错误:
SSL库错误:185073780错误:0B080074:x509证书
例程:X509\u检查\u私钥:键值不匹配
我100%确信私钥和CSR是同一代人
Im使用follinwg语法:
SSLEngine on
SSLCertificateKeyFile /usr/local/apache/conf/x-x-nl-new.key
SSLCertificateFile /usr/local/apa
我正在linux下调试一些网络驱动程序。在这个驱动程序的某些地方有netif\u stop\u queue()函数。它停止通过内核向我的驱动程序发送数据包,一切正常
我想知道内核可以将这些数据包排队多久,直到它开始丢弃它们?是ifconfig中的txqueuelen参数告诉给定接口中有多少数据包可以排队,还是内核中还有另一个队列?网络设备结构上的“unsigned long tx_queue_len”字段控制设备传输队列中可以排队的最大帧数
是的,它与ifconfig中的参数相同。您可以使用以下
好了,我又来了,和宋承宪斗争。我正在尝试基于令牌从远程日志文件检索一些数据。我试图通过ssh在egrep命令中传递多个令牌:
IFS=$'\n'
commentsArray=($(ssh $sourceUser@$sourceHost "$(egrep "$v" /$INSTALL_DIR/$PROP_BUNDLE.log)"))
echo ${commentsArray[0]}
echo ${commentsArray[1]}
commax=${#commentsArray[@]}
echo
标签: Linux
profilingfedoraoprofile
由于一个恼人的错误,我正在努力在我的系统上运行oprofile:
$ sudo opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/`uname -r`/vmlinux
$ sudo opcontrol --start
ATTENTION: Use of opcontrol is discouraged. Please see the man page for operf.
Using default event: CPU_CLK_UN
我通过使用Specweb2009特别是通过使用支持工作负载来测试Apache2.2性能。我想加载服务器,使其在高CPU负载下执行
问题是,当我使用10个Apache服务器进程和25个加载客户端运行测试时,测试失败,出现了错误,如HTTPRequestSched:[ERROR]错误响应(-1)。请求为GET/support/downloads/dir0000000019/download5_0 HTTP/1.1
SPECweb_支持:[错误]状态6;makeHttpRequest()失败。
连接:
当我试图运行svn-bull
$ svn blame file.txt
svn: Network connection closed unexpectedly
这以前是有效的,我很久没有在我的机器上更新SVN的版本了。目前正在使用1.6.11
$ svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03
顺便说一句,我也不能再做svn diff
$ svn diff -r PREV:HEAD file
当我试图通过使用ps-ef | grep'processname'找出具体的流程时,它也给出了grep流程
像这样:
$ ps -ef | grep 'sleep'
root 25309 16242 0 18:08 pts/17 00:00:00 sleep 300
root 25316 6114 0 18:08 pts/2 00:00:00 grep --color=always sleep
为此,我通常使用ps-ef | grep'[p]rocessname
标签: Linux
Go
cross-compilingarchlinux
我使用的是64位Linux,我正在尝试设置Go进行交叉编译(特别是Windows)。这里有一个很棒的指南。但当我尝试运行下面的第二个命令时:
cd /usr/lib/go/src
sudo GOOS=windows GOARCH=386 CGO_ENABLED=0 ./make.bash --no-clean
当它试图构建cmd包时,我会出错。它说不允许使用内部软件包。这是Go的主要源代码中的错误吗?我将粘贴错误的完整列表
# Building packages and commands fo
我有个问题要问。
当我不需要任何输出时,我总是使用anycommands>/dev/null 2>&1。但我从未使用过anycommands 2>/dev/null>&2
问题:哪种方法是不期望输出的最佳方法?anycommands>/dev/null 2>&1和anycommands 2>/dev/null>&2案例1:(echo stdout;echo stderr>&2)>/dev/null 2>&1
stdout(1)由fd替换为/dev/null
stderr(2)描述符是从&1复制
我想在我最新的arch linux上使用,但在控制台中运行sudo auditctl-w/home/会让我
错误-内核中不支持审核
无法打开netlink审核套接字
我试图通过内核引导参数设置审核标志来启用审核:GRUB\u CMDLINE\u LINUX\u DEFAULT=“quiet audit=1”但重启后没有任何变化,仍然是相同的错误
有人知道如何修复它吗?使用ABS重新编译内核以获得审计支持。
在makepkg-s之前,您需要在配置文件中添加CONFIG\u AUDIT=y
p.S.
我正在考虑创建两个具有不同参数/体系结构的虚拟机(可能但不一定使用QEMU)
不同大小的函数(int)
异端联烯
不同的对齐规则(例如,int必须在4字节边界上对齐)
等等
我熟悉构建自己的内核、gcc、glibc等,但我不完全确定究竟是什么决定了这些参数(假设它与CPU有关)。在我的例子中,性能是无关紧要的,目的只是在不同的环境下测试构建(主要与网络相关)
这可能吗?有人能把我推向正确的方向吗?我很乐意阅读文档,但不知道从哪里开始
我熟悉构建自己的内核、gcc、glibc等,但我不完全确定
我正在尝试在Linux服务器上编辑my.cnf文件,并使用vim进行编辑。在完成编辑后,我无法逃脱。我已尝试使用以下方法退出:
q
!q
wq
!wq
这些方法都不起作用。退出时,它给了我一句话:
shell return 127
Press ENTER or type command to continue
如果我做了这两个建议中的任何一个,我会回到vim。而且,ctrl-c不起作用。请帮忙。我需要用vim结束它。您会得到一个错误127,这意味着“无效命令”,因为当您键入:!q它调用一个
我知道epoll_ctl注册了对文件描述符的兴趣,但我找不到任何关于如何实际使用epoll的信息
如果我想异步读写文件,我该怎么做?我是否使用正常的读写调用?我是在调用epoll_wait之前还是之后调用这些函数,以及我是否将文件描述符标记为非块?您混淆了这些概念epoll(7)与异步I/O不同。select(2),poll(2),epoll(7)和其他类似函数可以阻止底层文件描述符是阻塞还是非阻塞;它们提供了一种同步的通知形式——在您明确要求之前,系统不会告诉您任何事情
select(2),p
当我运行此命令时,ble设备仅扫描5秒:
$ sudo timeout 5s hcitool -i hci0 lescan
输出显示在终端屏幕中
但是,当我将输出重定向到一个文件以保存广告设备的地址时,每次运行该命令时,我都会发现该文件为空,并且输出在终端或文件中都不可见
我使用的命令:
$ sudo timeout 5s hcitool -i hci0 lescan > file.txt
要使hcitool正确地将其输出重定向到文件,我必须做什么?超时默认情况下向程序发送SIGTER
我正在尝试将先前调用中的文本和参数插入到另一个脚本的参数中
#!/bin/bash
mainDir="$1"
fileName="$2"
preCommand="$3"
echo ${mainDir}
echo ${fileName}
echo ${preCommand}
我的脚本中的回音总是返回:“具有更早期图形的文本”
是否可以在脚本中执行此操作?如果希望第一个参数成为第三个参数的一部分,则需要如此明确。或者
./script.sh "dir1" "filename" "text wi
我有一个如下的输入日志文件:
CLASS:CLASS1, CREATE_TIME:30-Dec-2015 00:00:06, VALID_AFTER_TIME:30-Dec-2015 00:00:12, EVAL_TIME:30-Dec-2015 00:00:12, SUCCESS:true, TIME_TAKEN:1842
CLASS:CLASS1, CREATE_TIME:30-Dec-2015 00:00:06, VALID_AFTER_TIME:30-Dec-2015 00:00:12,
如何使用xjc从xsd文件生成Java代码,在使用Java8时,xsd文件在构建时有0个Javadoc警告和错误,而不更改正在使用的Doclint
我正在使用ApacheAnt build.xml文件来构建代码库。我不能
根据JAXB,这些构建问题不是拦截器=(
是的,可以手动编辑生成的Java文件以获得0个警告和0个错误,但我的主要目标是生成在任何情况下都不需要手动编辑(或自定义插件)的Java文件
我正在使用V4L2API从UVC设备抓取帧。我想通过计算帧的时间戳和当前时钟时间之间的偏移量来测量曝光时间。这是我正在使用的代码:
/* Control code snipped */
struct v4l2_buffer buf = {0}
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = V4L2_MEMORY_MMAP;
ioctl(fd, VIDIOC_DQBUF, &buf);
switch( buf.flags &am
我一直在努力学习更多关于Linux的知识,今天上午我主要关注awk命令。下面是我一直试图开始工作的命令
ls -lRt lpftp.* | awk '{print $7, $9}' | mkdir -p $(awk '{print $1}') | ls -lRt lpftp.* | cp $(awk '{print $9, $7}')
本质上,我试图将目录中的每个文件移动到一个子目录中,该子目录基于上次修改的文件。该命令首先只打印我想要的文件,然后使用mkdir根据上次修改的月份创建一个文件夹
我有以下python文件:
vagrant@vagrant-ubuntu-trusty-64:~/my_app$ cat version_py3.py
#!/usr/bin/env python3
print "Python 2 print statement"
我认为python版本\u py3.py将强制使用python3。但代码运行良好。python3版本_py3.py给出了预期的错误
vagrant@vagrant-ubuntu-trusty-64:~/my_app$ python3
我一直在试验cloud init和qemu。以下是我启动虚拟机的方式:
qemu-system-x86_64 \
--enable-kvm \
-nographic \
-m 2G -smp 4 \
-drive file=/disks/mustafa.img,if=virtio \
-cdrom /disks/my-seed.img \
-device virtio-net,netdev=network0,mac=52:55:00:d1:55:01 \
-n
我知道source和做了同样的事情,如果标题中的其他两对命令没有做同样的事情,我会感到惊讶(因为我运行bash作为我的shell,$shell[script]和bash[script]是等价的,对吧??)
那么执行脚本的三种方法之间有什么区别呢?我这么问是因为我刚刚了解到,寻找一个脚本就像执行它一样重要。在某种程度上,我并没有发现明显的运行我的“实验”和阅读手册页
通过在我编写的极其简单的脚本上盲目调用这些函数,我找不到其他微妙的区别是什么?在阅读了上述链接的答案后,我可以强烈猜测我的问题的答案
我有一个巨大的crontab,在linux机器上有许多脚本。我需要能够a)更改cronjob结果电子邮件的主题和/或发件人,因为默认值太长。b) 通过一个集中的解决方案做到这一点。c) 只需要对crontab本身进行最小的更改
例如,此crontab行:
0 */3 * * * /path/to/script1 | /path/to/script2 | /path/to/script3
创建此电子邮件主题:
Cron <cronuser@myserver> /path/to/scr
我被告知,运行与本地主机操作系统相同的Docker image操作系统可以避免某种虚拟化层,但我找不到支持这一点的文档。例如,Ubuntu18.04映像在安装在Ubuntu18.04上的Docker上运行得更快吗?不,Linux容器在任何Linux发行版上运行得都一样快。容器只依赖于内核,这在所有Linux发行版中都是一样的
但是,如果在Windows上运行Linux容器,则系统上没有可用的本机Linux内核。Docker for Windows通过运行精简Linux发行版的虚拟机来创建容器可以
我使用用户“Kiran”在Linux中安装了强化软件。当我使用用户“Kiran”键入sourceanalyzer--v时,我得到:
但是,当我使用用户“root”搜索时,我得到的命令没有找到
sourceanalyzer --v
bash: sourceanalyzer: command not found
有人可以帮助我如何使用root用户或任何其他用户查找版本吗?切换到用户“Kiran”,启动命令:
which sourceanalyzer
它应该为您提供名为sourceanalyze
我在GNU/Linux发行版中打开了终端,突然,终端中出现了一条消息,说明“grpc通道状态更改为1”。我没有在终端上运行任何东西,我不知道这是什么原因造成的。我的设备是否受损,是否进行了未经授权的出站连接?我应该担心吗
packet\u mmapTPACKET\u V3示例使用以下循环处理接收到的数据包:
while (likely(!sigint)) {
pbd = (struct block_desc *) ring.rd[block_num].iov_base;
if ((pbd->h1.block_status & TP_STATUS_USER) == 0) {
poll(&pfd, 1, -1);