标签: Linux
distributedpackagingsoftware-distributionpackage-managers
我已经编写了一个尚未开源的应用程序,我想在各种linux发行版之间分发可执行文件。最好的方法是什么,我已经看过了一些.rpm和.deb打包,但是我找不到它是否可以用于二进制文件。理想情况下,我希望像OSX上的PackageMaker或windows上的常规安装程序一样,自动将其复制到/usr/bin中。这就是.rpm和.deb软件包的用途,还是我必须捆绑一个shell脚本来自动执行此操作?rpm和deb将存储二进制文件。您很可能需要为每个发行版或发行版变体使用不同的二进制文件,因为在不同的发行版
如何在Mac OS X下运行Linux二进制文件
在谷歌上搜索,我发现了一些模拟器,但没有一个可以在Mac上运行Linux二进制文件。关于在Linux上运行MacOSX之类的东西,有很多帖子,但这与我想做的恰恰相反
更新:
谢谢你的回答!我完全了解MacPorts和Fink或任何其他事物;不,我不需要这些实用程序,也不需要任何包管理器,我更喜欢自己编译东西。我也有相似之处,可以设置虚拟机和所有的jazz
我想做的唯一一件事是找到一种方法来运行一个我没有源代码并且已经为Linux编译过的二进制文件
我目前有正常工作的PHP脚本,如下所示:
www.example.com/user.php/paul
和
www.example.com/tag.php/food
我无法获得正确重写的.htaccess。我正在努力做到这一点:
www.example.com/user/paul
www.example.com/tag/food
到目前为止,我可以将/user重定向到/user.php,但是/paul丢失了;打破我的剧本
我当前的.htaccess如下所示:
RewriteEngine On
Re
我想在bash脚本中嵌入这样的长命令:
mycommand \
--server myserver \
--filename extremely/long/file/name/that/i/would/like/to/be/able/to/break/up/if/possible \
--otherflag \
--anotherflag
与长文件名分开
我可以这样做:
# Insufficiently pretty
mycommand \
--serv
目标:使用可执行文件(不导出符号)中的函数的共享库
表示:gcc-Wl,--defsym,函数=0x432238
手册页说明:
"--defsym symbol=expression" Create a global symbol in the output
file, containing the absolute address given by expression.
令我沮丧的是,dlopen()正在将共享库的基址(这是64位代码)添加到导出的“绝对符号地址”:
objdump在库中显
也许我的问题很奇怪,但它困扰了我一段时间,我自己也找不到答案。事实上,问题本身就在主题中,但让我介绍一下情况
我们有一种系统,它是基于VMWareVM的,内部带有SLES。系统几乎是使用Autoyast自动从DVD映像安装的。几乎-因为我必须手动指定Autoyast xml配置的位置作为系统安装程序的内核选项。我想取消此步骤并自动通过此选项
我可以找到两种方法来解决这个问题:
提取ISO内容并修改引导加载程序配置以传递此选项并重新构建ISO
从ISO中提取内核和initrd,并使用DHCP/TF
我正在尝试获取执行脚本的shell的名称
为什么
echo $(ps | grep $PPID) | cut -d" " -f4
工作时间
echo ps | grep $PPID | cut -d" " -f4
没有?原因是
echo ps
只需打印出字符串ps;它不运行程序ps。您的命令的正确版本为:
ps | grep $PPID | cut -d" " -f4
编辑添加:paxdiablo指出,ps | grep$PPID包含大量空格,这些空格将被echo$(ps | grep$
我正在使用一个用php编写的web界面,它在linux环境中运行perl脚本。它将参数(用户名、密码等)传递给脚本。我希望查看脚本的输出,而不干扰进程。请注意,该脚本也会传递数据并执行另一个程序
该脚本包含打印命令,如
if($@){
打印“错误:.$@.\n”;
打印“跳过…\n”;}
否则{
}
我只想从shell中查看这些结果,如果可以保存到txt文件中,也可以
非常感谢 从shell运行Perl程序,查看print的输出
$ perl theprogram
⋮
Error : blah
标签: Linux
memcachedlibmemcachelibmemcached
我想使用memcached_mget_execute()方法从memcached服务器检索值。
但我收到以下错误消息:
“不支持操作,memcached_mget_execute_by_key()->libmemcached/get.cc:437不支持ASCII协议”
另外,有人请为我提供一些很好的资源,以便在C中严格使用libmemcached您应该将ASCII协议更改为二进制协议,然后重试
我可以用curl抓取视频吗?
我曾使用一个网站从liveleak下载视频,但它停止了工作。我的一个脚本需要这个
基本上这就是链接:
已重定向到此
并且该conf链接包含视频链接。每次我尝试下载它,我都会
--->确保设置了文件url、文件令牌或播放列表令牌!
到目前为止,我所尝试的:
curl http://edge.liveleak.com/80281E/u/u/ll2_player_files/mp55/player.swf?config=http://www.liveleak
我正在制作一个bash脚本。目标是:
执行程序等待几秒钟重置程序并重复该过程。
我做了两个脚本,但我不知道哪里是错误
#!/bin/bash
while true;
do
seg=`date +%M`;
if [[ "$seg" -eq "30" ]];
then killall sox;
echo "reset";
fi
done
bash:sintáctico cerca del elemento inesperado`;'错误
#!/bin/bash
while true;
d
我知道如何使用dos2unix将文件格式从dos更改为unix,但如何更改目录树下的所有文件。dos2unix能否递归更改文件
例如,我有如下一些文件:
TOPDIR
|
+-----dir1
| |
| +---file1,file2, file3
|
+-----dir2
|
+---file4,file5
如何一次更改它们,或者使用一些shell脚本?find/path-name'*'-type f-exec dos2unix{}
dos2
我正在linux中制作一个新的菜单驱动的Shell脚本,我将我的表简化为hello和bye,以使其更简单,下面是我的基本菜单布局
# Menu Shell Script
#
echo ----------------
echo menu
echo ----------------
echo [1] hello
echo [2] bye
echo [3] exit
echo ----------------
基本上我有菜单,我最近一直在玩一些东西,但似乎不能得到任何工作,因为我是新来的,
如何将方括号内的数字切掉并放在文本开头
例如:
some_text123_[12345]_some_text
after:
12345_some_text123_[]_some_text
尝试使用sed,匹配:
一组字符
一个括号,然后是数字,然后是另一个括号
另一组字符
正则表达式可以是(.*)(\[[0-9]+\])(.*)(不带空格)。然后,用2-1-3顺序中的组替换匹配项
$ echo "some_text_[12345]_some_text" | sed "s_(.*)\[([0-
我试图用html文件和GET变量打开默认浏览器
我的命令行:
x-www-browser "index.html?var=1"
正在使用url打开google chome:
http://index.html/?var=1
(注意:它忘记了index.html之前的文件路径)试试类似的方法
x-www-browser "file:///home/${USER}/index.html?var=1"
试试file://index.html。
我开始使用git,我希望提高工作效率。我的经验是在Clearcase(主要是Windows版本)。
我正在寻找提高生产力的好模式。
举个例子,我将vimdiff配置为difftool,帮助我查看我的工作文件和提交之间的差异。但是,如果我需要(例如)将差异从提交复制到工作文件,则似乎不起作用。我在窗口下方看到我正在使用某种.tmp文件,并警告我正在修改只读文件。
因此,在这种情况下,您使用了哪些设置/技巧等来提高效率?
其他情况下的任何其他提示都是非常受欢迎的Git由一些小的构建块组成—您可以使用
我试图获取目录中c/h/cc文件的列表,但我希望排除文件symlink
我使用了下面的命令来列出这些文件,效果很好
find . -name *.c -o -name *.h -o -name *.cc
我尝试添加选项-typef来删除文件符号链接列表,但没有成功。基本上,我想找到并给出(.c或.h或.cc文件)的列表和文件类型常规文件
我的目标是将文件列表保存到cscope.files中并在其上运行cscope,目前cscope抱怨symlinks
谢谢。这绝对适合我。你确定你的shell
我在hostname.com/files上有一台服务器。每当上传文件时,我都想下载它
我正在考虑创建一个脚本,不断检查文件目录。它将检查服务器上文件的时间戳,并根据该时间戳下载它们
是否可以使用bash脚本检查文件的时间戳?有更好的方法吗
我可以每1小时下载服务器上的所有文件。因此,使用cron作业会更好吗?如果您有一个定期更新文件的时间间隔,是的,cron作业可能是您最好的选择。只需编写一个脚本进行检查,并每隔一小时运行一次
正如@Barmar在上面评论的那样,rsync可能是另一种选择。在c
当我试图在Linux机器上制作我的.m-文件的可执行文件时,一些.m-文件工作得非常好
但是,一个在.m-文件中有摄像头输入的文件给了我以下错误:
Depfun错误:“来自MEX文件的意外标准异常。What()是:…'使用mcc时出错执行mcc时出错,返回状态=1(0x1)
但是当我在Windows和R2012a上使用相同的.m-文件时,它工作正常,没有任何错误
我发现——这是类似的问题吗
我如何解决它
以下是我的.m-文件的简单代码:
function yuv()
vid1 = videoi
如何更改Git Bash中的目录C:/Users/myname/project name?您需要在目录名或文件名的简短版本中使用引号
通过发出以下命令,可以找到文件名的简短版本:
目录/x
如果我没记错的话。我没有windows计算机
不过,它是bashshell的一个版本,所以您应该能够简单地引用它。(并且dir/x可能工作,也可能不工作。)
请注意,ls/,或键入cd/然后完成制表符,可能不会显示此文件夹的存在,但cd/c仍能工作。还请注意,pwd(用于打印当前工作目录)可能会显示类似于/b
如果我有一个程序有N个运行线程,并且其中N-1个线程使用pthread_sigmask阻止SIGUSR1信号的传递:
int rc;
sigset_t signal_mask;
sigemptyset(&signal_mask);
sigaddset(&signal_mask, SIGUSR1);
rc = pthread_sigmask(SIG_BLOCK, &signal_mask, NULL);
if (rc != 0) {
// handle error
}
我想实现一个代码,在这个代码中,我要为不同的线程分配几个“优先级号”。一些线程可能在同一信号量上等待。假设线程在信号量S上排队,另一个线程在信号量S上执行sem_post。一旦执行sem_post,我希望在信号量S队列中具有最高“优先级”的线程能够访问该信号量,而不是任何其他线程。据我所知,没有直接的方法来实现这一点,因为选择访问的线程可以是队列的任何一个元素(不一定是FIFO等)。事实上,我试图增加线程的pthread优先级,但我意识到它也不起作用。请有人指导我如何用C实现手动控制信号量队列的
我试图使用printf函数在wxstring中打印一些数据,但它在LINUX运行时崩溃了,而在windows中没有
这是我的密码:
wxString str1,str2;
str1 = "Elements";
str2.Printf( _U("%s"),str1);
这在windows下工作,但在linux下不工作,如果我将其更改为在linux下工作
str2.Printf( _U("%s"),str1.c_str());
为什么不以str1为参数呢
注意:我在整个工作区中使用的这句话,在l
伙计们,我有麻烦了。我只是想在这个简单的字符串“Hello World”中更改一个字母
所以我试着像这样给内存单元赋值
.section .text
string:
.ascii "Hello, world!"
length:
.quad . -string #Dot = 'here'
.globl _start #Make entry point visible to linker
_start:
movl $4, %eax #4
我有一个主题,我为我们的商户商店使用。我使用git维护这个主题的一个repo(本地repo 1),我将其克隆到一个dev文件夹(本地repo 2)中,然后在那里工作,当我完成后,我想更新(推送?)到原始的本地repo 1。从那里我可以呈现zip文件或任何我需要的商家商店
因此,我通过git init创建了repo1,并添加了文件并提交了它。很好。然后我将repo克隆到我的dev文件夹中,并在那里设置我的web服务。工作得很好。我编辑了我的主题并做出了适当的承诺。现在,我已经准备好将这些更改放在l
我正在尝试编译一个程序,在配置检查期间找不到一个库。在my.bashrc文件中使用以下链接链接到此库:
LD_LIBRARY_PATH=/usr/lib/:/users/much/needed/library/:$LD_LIBRARY_PATH:/path/to/other/libs/
export LD_LIBRARY_PATH
之后,我用
source ~/.bashrc
并使用echo$LD_LIBRARY_PATH检查LD_LIBRARY_路径是否包含我需要的库的路径(它就在
标签: Linux
loadingloaderelf
我写了一个启用了PIE/PIC的“hello world”程序。我观察到程序头有两个加载条目:
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
... ...
LOAD 0x000000 0x00000000 0x00000000 0x00870 0x00870 R E 0x1000
LOAD 0x000eb0 0x
我正在尝试使用ssh在远程服务器上执行命令。命令如下
ssh machine -l user "ls"
这个命令被夹在中间,最后我们不得不暂停它
但是,执行命令ssh machine-l user工作正常,该命令使我们连接到远程机器
请有人帮助找出为什么远程服务器上的ls不能通过ssh工作的根本原因
编辑1:这是在SSH中使用-v开关后的输出
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client
我正在编写一个快速脚本,列出目录中的所有文件,对每个文件运行一个函数,然后打印出状态代码。现在,我想要的状态代码是整个事务的状态代码,而不是执行的最后一个表达式。例如
find ./ -maxdepth 1 -name \*.txt -exec my_function {} \;
假设我的目录中有以下文件file1.txt,file2.txt,file3.txt。当file1.txt传递给-exec时,其状态代码为1,但调用file2.txt和file3.txt返回0。当我在末尾调用echo$
这个命令运行良好
find . -name "test"
但我想在shell脚本中这样做
$FIND = "find . -name "
这样我就可以使用$FIND“test”
但它不起作用想想下面的说法:
$Find = "find . -name "
这有两个问题:
shell要求赋值中的=周围没有空格
$Find是变量的值。它不是变量本身
因此,要将值分配给查找,请使用:
Find="find . -name "
无法运行:
$Find test
这种方法是可移植的,但有局限性。
我正在尝试创建一个Mesos 0.27.1映像,用于基于Alpine Linux的测试,并且我已经设法在编译过程中尽可能地使用它。现在我遇到了一个看起来很低级的错误,我想知道这是否意味着我不能在阿尔卑斯山上使用Mesos
错误是:
libtool: compile: g++ -DPACKAGE_NAME=\"libprocess\" -DPACKAGE_TARNAME=\"libprocess\" -DPACKAGE_VERSION=\"0.0.1\" "-DPACKAGE_STRING=\"
标签: Linux
localedebian-based
我看到这个错误:“无法将LC_ALL设置为默认语言环境:没有这样的文件或目录”
这似乎可以通过运行来解决:
export LC\u ALL=“C.UTF-8”
sudo dpkg重新配置区域设置
这个问题应该以问答形式提出,而不仅仅是回答。更改问题,然后回答您自己的问题。这个问题看起来应该出现在superuser.com或unix.stackexchange.com上-它似乎与编程无关。@昆汀的确,打得不错。这个问题应该在问答中格式化,而不仅仅是答案。更改问题,然后回答您自己的问题。这个问题看起
这是我运行命令service tor start和service tor status
因为当您运行服务状态时,它会显示active,这意味着它正在运行
您可以通过运行以下命令确认它正在侦听:
netstat -ano | grep LISTEN | grep 9050
如果您看到以下内容:
tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN 2752/tor
然后,它正在监听并准备连接
进一步测试:
curl --socks5
我有这个EFL文件,需要调试/逐步完成。这是一场逆向工程竞赛。我所需要做的就是找出寄存器在特定时间点和特定位置的值。我使用Hopper反汇编程序查找感兴趣的地址
问题出在这里。我不知道如何调试ELF文件。这是我第一次在Linux环境中调试。学习如何执行ELF文件本身花了我一段时间。我使用
ld linux.so.2./[EFLFILE][arguments]
是否有一种方法可以至少将调试器附加到proess上?我甚至用ps命令都找不到它。另外,我听说可以使用远程调试器;在windows计算机上运
多年来,我一直使用samba作为AD的成员。现在Samba 4.5.1不允许用户输入共享文件夹
测试:
wbinfo,getent,网络广告信息工作正常
**wbinfo -u**
administrator
krbtgt
guest
格登特密码
ntp:x:87:87:Network Time Protocol:/var/lib/ntp:/bin/false
git:x:996:996:git daemon user:/:/bin/bash
administrator:*:10500:105
我在计算md5sum时遇到了一个问题。对于同一个文件,当我运行md5sum时,会得到不同的结果
/tmp @at46> md5sum seq.swi
9b5f6616c8d9240ba504607e0a8085b8 seq.swi
/tmp @at46> md5sum seq.swi
7577bd05a3e49ca52a7d4e91cb0965df seq.swi
/tmp @at46> md5sum seq.swi
4592ee5f7bf5d28ff7539cd32592
我有一个独特的要求,就是找到2年前的文件并删除它们。但不仅仅是文件以及相应的空目录。我已经编写了大部分逻辑,但唯一一件仍然悬而未决的事情是,当我从目录中删除特定文件时,当它为空时,如何删除相应的目录。当我删除特定文件时,ctime/mtime也会相应地得到更新。如何针对那些相应的旧目录并删除它们?
任何提示都会有帮助。
提前谢谢
管理员
我会这样做:
find /path/to/files* -mtime +730 -delete
-mtime+730查找早于730天的文件
但是,请小心使用
我们正在设置一台Linux机器(确切地说是CentOS 7),以便在团队中共享文件。一个特定的普通用户(boss)需要能够读取/写入/修改/删除文件系统或我们共享文件的目录中的所有文件和目录。我只是想知道是否有可能设置一个SELinux策略来强制他的特权。在过去,我们每十分钟运行一次cron作业来强制所有文件和目录的权限。我只是觉得如果可能的话,SELinux会是更好的选择
我也愿意接受任何其他建议。非常感谢 Selinux提供了一种支持访问控制安全策略的机制。如果需要向其他用户授予访问权限,则
在终端中,我放入多个变量,如I=5;mn=你好;等
我需要重置这个变量,以及启动命令后终端中可能存在的所有更改
我该怎么做请帮帮我
我使用命令“重置”,但不起作用
unset var
这就解决了我的问题我用
unset var
这就解决了我的问题
我知道,将tcp_max_tw_bucket设置为相对较小的数字(如30000或50000)是很正常的,以避免主机有大量等待状态连接且应用程序无法打开新连接的情况。这是很多人提到的事情。比如这样的问题:
如前所述,我知道时间等待是一种避免TCP数据包的状态,使用它可能会更好。如果你把它设置为一个小数字,事情可能会出问题
我觉得我在某个地方遇到了麻烦,我必须将tcp_max_tw_bucket设置为一个较小的数字,并且不知道应该避免的具体情况
所以我的问题是将tcp_max_tw_bucket设置
机器:CentOS 6.2
我有一个Perl脚本,我已经使用了很长时间,它以前使用LWP从端口80位置获取数据没有问题(现在仍然没有问题)。但是,尝试从端口443上的https位置获取总是失败
为了简化诊断,我想我应该在命令行中使用cURL和wget来尝试相同的想法,但是使用https也会失败,同时它们也可以获取常规http数据
考虑到同一个问题会影响所有三种方法,我正试图确切地确定哪些可能是错误的,以及如何修复它。这是一个专用服务器,我有根访问权限,所以我几乎可以做我想做的事情
我曾尝试强制c
在gnu二进制实用程序中,他们说
objdump --adjust-vma=offset
转储信息时,首先向所有节地址添加偏移量。这
如果节地址与符号表不对应,则此选项非常有用,因为符号表
在使用格式时,将节放在特定地址时可能发生这种情况
它不能表示节地址,例如a.out
我试着去理解它,但我无法理解,所以有人能向我解释这个选项的作用吗?在现实生活中,什么情况需要此选项?此选项在尝试反汇编DOS COM二进制文件时非常有用。COM二进制文件是一个没有任何头的程序映像,它被加载到某个段中的地址0
我正在练习在虚拟机上构建一个新的linux内核。我对其中模块的step导入参数中的两个文件syscall_32.tbl和syscall_64.tbl有一些疑问
我知道filesyscall\u 32.tbl有5个参数[number][abi][name],[entry point],[compat entry point],filesyscall\u 64.tbl有4个参数没有[compat entry point]
我有些问题找不到答案
[number]:此列的范围值是多少。我发现这些数字是并
我有一个bash脚本,我想作为cron作业运行它。
除了一个命令外,它工作正常。
我重定向了它的stderr以获取错误,发现它显示的错误是无法识别的命令。
它是根crontab。
当我在终端中键入命令时,当前用户和root用户都成功地执行了该命令。
即使脚本在我通过终端运行命令时也会执行该命令
启动脚本:
#!/bin/bash
sudo macchanger -r enp2s0 > /dev/null
sudo /home/deadpool/.logkeys/logger.sh >
我正在编写一个应用程序,自动检测设备是否已插入/拔出
我使用C++和QT框架。strong>libudev.h包含在我的代码中。
实际上,我通过sudo apt get install libudev dev成功安装了libudev dev包,但是QtCreator仍然有一条错误消息:libudev development package not found
file.pro:
...
CONFIG += console c++11
CONFIG -= app_bundle
unix:
我使用以下代码使用sed将特定行替换为特定行:
i=5
while (( i <= 10 ))
do
sed -i '$i s/.*/change/' file.txt
((i++))
done
运行脚本后,file.txt将更改为:
1. alloha
2. this
3. is
4. just
5. a
6. test
7. nonsense
8. words
9. a
标签: Linux
linux-device-driverprocfs
我正在编写一个简单的代码,用于通过procfs中的条目访问驱动程序数据。在浏览头文件proc_fs.h时,我遇到了如下宏:
#define proc_create(name, mode, parent, proc_fops) ({NULL;})
这个宏是如何工作的,因为它的扩展名是NULL?这个({…})是一个名为。这是一个可以使用表达式的语句。语句表达式中使用的最后一条语句是表达式的值
以下返回true:
return ({NULL;}) == NULL;
这个宏是如何工作的
带有任意4个
我正在bashshell中运行下一个命令行
TZ=Europe/Madrid; MYVAR='{"timestamp": '$(TZ=$TZ date +%s%3N)', "timestampString": "'$(TZ=${TZ} date -Iseconds)'", "data": "Time Zone: '$TZ' Date ISO8601: '$(TZ=$TZ date -Iseconds)'
我目前有一个cdn服务器将映像存储在cdn服务器上
例如:
我已经安装了webp并遵循了教程,但它仍然没有运行
https://alexey.detr.us/en/posts/2018/2018-08-20-webp-nginx-with-fallback/
https://centminmod.com/webp/
https://www.itchy.nl/adding-webp-support-for-nginx/
我该如何使它在我访问时变得更安全
同样,当我访问png时,它将成为
请帮忙
我正试图在linux中使用sys\u brksyscall分配一些内存。以下是我尝试过的:
BYTES_TO_ALLOCATE equ 0x08
section .text
global _start
_start:
mov rax, 12
mov rdi, BYTES_TO_ALLOCATE
syscall
mov rax, 60
syscall
按照linux调用约定,我希望返回值在rax寄存器(指向分配内存的指针)中。我在gdb中运行