Linux 在虚拟机(VirtualBox)上运行Web服务器-安全方面的优点/缺点

我想提高我在gnu/linux方面的技能,更好地了解服务器的工作方式。所以我想我应该用ftp、ssh、svn等设置一个apache Web服务器。因为我每天都在工作中使用Adobe产品安装linux dist。直接在我的机器上安装是不可取的。是的,我可以用linux和vista进行双引导。但由于我是新手,我不想冒险让我的机器出什么事 所以我想开始安装一个dist。它的学习曲线非常陡峭,需要很多手动配置。最大限度地熟悉命令行操作等。我们的目标是使其工作,并有一个安全的设置 所以在我写WOT之前 我

面向程序员的Linux发行版';s专用服务器

我要买一台低端的旧(便宜!)计算机,作为Subversion、Mercurial、Trac和其他一些东西的服务器不间断地运行。对我自己来说,这是99%——表现并不重要 它可能会有1GHz P3/P4/Celeron、256MB SDRAM、30GB IDE HDD之类的任何视频卡,这样我就可以连接显示器了 我可以在上面设置Windows Server,但我觉得这太过分了。我所需要的只是从我的笔记本电脑、台式机,也许是远程访问我的代码,wiki、bug追踪器等也一样。所以我觉得一个轻量级的Linu

会发生什么?linux的输出或进程注册

如果您尝试进入(si)sysenter指令,会发生什么情况?为了回答这个问题,您需要了解si的工作原理 它怎么能工作?我可以想到两种方法: 调试器必须在下一个 指示,或 调试器修改处理器状态,使处理器执行一条指令并停止(也称为单步) 备选案文1。是复杂的,因为指令可能是一个间接跳转,例如调用(%eax),或RET,因此调试器可能会遇到很大的麻烦来理解下一条指令是什么 我熟悉的所有调试器都使用选项2 现在,您可能可以解释在sysenter(或syscall,或int80)指令上执行si时观察到的情

Linux 如何结合echo和find?

当我执行以下操作时,find覆盖了index.html,我希望它只会将结果附加到其中 echo "<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/></head></body>" > index.html find . -name "*.html" -exec echo "<a href=\"{}\">{}&

Linux 两个进程通过Erlang在两台计算机中通信

这是Erlang中的一个2进程通信程序 我需要在不同的计算机上运行每个进程 我得走了 erl-名称ping 在computer2中,其主机名为linux-2.mydomain 而且,我需要跑步 erl -name pong 在computer1中,其主机名为linux-1.mydomain 那么 在计算机1上,我运行: tut17:start_pong(). 在计算机2上,我运行: tut17:start_ping(pong@linux-1) 但是,我有一个错误: 异常错误:算术

Linux 为什么我不能访问此文件夹?

不久前,我买了一个1TB的USB外置驱动器。我在Ubuntu中格式化了它的ext4,并从几台机器上复制了一堆文件/文件夹到它,分别复制到/home/machinename/whatever 在某个时候,我对它运行了chmod-rshell命令来更改权限。那是几个月前的事了,我不记得我键入了什么,但它创建了驱动器,所以我只能以root用户身份访问它的/home文件夹。这不是问题,因为我仍然可以访问所有内容,但今天我决定尝试修复它 我以root用户身份进入shell,进入该驱动器并键入: chown

使用LINUX top命令计算已用内存百分比

我正在将top命令输出写入文本文件。 我正在尝试编写一个简单的bash脚本来计算已使用内存的百分比,并发送一个 如果内存使用百分比超过90%,请发送电子邮件 这是我到目前为止已经完成的bash脚本 #!/bin/bash top -n 1 -b | grep "Mem" > /home/modadm/top-output.txt MAXMEM=/home/modadm/top-output.txt | grep "Mem" | cut -c 7-14 USEDMEM=/home/moda

Linux 编译/链接CUDA和CPP源文件 我正在使用一个既使用C++源代码又使用CUDA的示例程序。这是我的四个源文件的基本内容

matrixmul.cu(主CUDA源代码): matrixmul.h(matrixmul_gold.cpp文件的头) assist.h(助手功能) 我正在尝试编译和链接这些文件,以便它们能够正常工作。到目前为止,我可以使用以下方法编译matrixmul_gold.cpp: g++ -c matrixmul_gold.cpp 我可以使用以下方法编译CUDA源代码而不出错: nvcc -I/home/sbu/NVIDIA_GPU_Computing_SDK/C/common/inc -L/hom

Linux 使用dmsetup内核3.9.6创建dm缓存

我正在尝试使用虚拟机创建dm缓存设备。我在/dev/sdb、sdc、sdd中分别有多个标记为Cache\u disk、Device\u to\u Cache和meta\u data的磁盘,在尝试创建缓存时,我运行以下命令: dmsetup create my_cache --table '0 16775168 cache /dev/sdd1 /dev/sdb1 /dev/sdc1 512 1 writeback default 0' 按照dm缓存文章文档中的说明 我已在内核中启用了dm缓存,但

Linux 我应该如何在NASM程序集中处理动态大小的输入?

我正在尝试学习在64位Linux上使用NASM进行汇编 我设法制作了一个程序,可以读取两个数字并将它们相加。我意识到的第一件事是,该程序只能使用一位数(和结果): 如您所见,我为第一个数字保留了一个字节,为第二个数字保留了另一个字节,为结果保留了另一个字节。这不是很灵活。我想增加任何尺寸的数字 我应该如何处理这个问题?首先,您生成的是32位程序,而不是64位程序。这没有问题,因为如果32位程序是静态链接的(这是您的情况),或者安装了32位共享库,那么64位Linux可以运行32位程序 您的程序包

Linux bash在脚本中获取名称选项

我想调用bash shell脚本,如下所示: ./myscript --dbName mydb --dbUser root --dbPass rootpass 如何在脚本中轻松检索这些内容 getopt看起来只适用于单字符选项真的吗?在Linux上键入mangetopt时,我看到一个--longoptions参数。奇怪的是你没有。@SeanBright无需讽刺,让所有人都努力打造一个如此友好的地方,即使OP没有做作业……我不是在讽刺。我觉得奇怪的是他的版本不支持它。也许@marty把getop

Linux 如何使用cal(1)打印星期几?

现在,我发现如果我写cal month year,我会得到该月的日历。是否有返回日期而不是获取完整日历的方法?除此之外,1752年的日历是假的,没有半个月?任何想法都值得赞赏 date --date="MM/DD/YYYY" +%A 它将按cal(1)中的说明打印您一周中的哪一天: 据推测,格里高利宗教改革发生在1752年的3月3日 九月。到那时,大多数国家已经承认了这一改革 (尽管有些人直到20世纪初才认识到这一点)。十天 在这一日期之后,宗教改革取消了宗教改革,所以宗教改革的日历 那个月

Linux 如何让R使用所有处理器?

我有一台运行WindowsXP的四核笔记本电脑,但看看TaskManagerR,似乎每次只使用一个处理器。如何让R使用所有四个处理器并加速我的R程序?我听说,与典型的CRAN版本的R和REvolution相比,它支持更好的多线程,在windows中也支持64位R。我一直在考虑买一本,但我发现他们的定价不透明。他们的网站上没有价目表。很奇怪 列表列出了几个选项。XP是一种限制,但你仍然可以在几分钟内使用套接字。在Windows上,我相信最好的方法可能是使用foreach和snow,正如David

Linux Shell脚本以递归方式列出包含具有特定扩展名的文件的文件夹中的所有子目录

我有一个名为a的文件夹,它可能有一个或多个子目录,子目录可能有多个子目录,以此类推。我想知道如何编写一个shell脚本来列出包含具有特定扩展名的文件的所有子目录 所以,它可能是 A -> B -> C -> D -> f2.txt -> F -> f3.txt -> E -> G -> H -> f4.txt 因此,只会列出D、F和H目录。实际上,我需要通过列出特定java类的目录树,将其作为一种快速查找包

LinuxBash:如何从bash命令行替换文件中的2个单词

我需要从Bash命令行替换文件中的2个单词,例如: fileA.txt xxxx AA BB xxx 我需要将Bash命令行中的“AA BB”替换为“CC DD”,因此该文件将变成: xxxx CC DD xxx 谢谢你的帮助 您可以尝试下面的sed命令 sed -i 's/AA BB/CC DD/g' file 例如: $ echo 'xxxx AA BB xxx' | sed 's/AA BB/CC DD/g' xxxx CC DD xxx $ echo 'xxxx AA BB x

Linux 是否添加要在操作系统登录时启动的节点webkit应用程序?

我正在使用node webkit为Mac、Windows和Linux创建一个应用程序,我想让应用程序在启动时自动启动。 我在谷歌上搜索得很厉害,但没有用有人知道如何使用node webkit将应用程序添加到“登录项目”中吗? 这是一个打印屏幕,显示它将在MAC上运行的位置 提前感谢您的帮助。可能重复@KevinReilly的文章我已经看过了,但我的问题是针对node webkit和不同平台(win、mac、linux)的。节点webkit上必须有配置或添加配置的方法…最初您的问题特别提到OSX

Linux Bash脚本:查找数据为YY/MM/DAY的文件-变量文件名

我正在编写一个shell脚本,它必须查找文件 特别是文件名如下:一些年、月、日、小时 因此,每天我有24个文件,我的脚本必须查找日期为前一天的文件 要找到的文件位于script.sh所在的同一目录中 因此,如果今天是20/08,我的脚本必须找到前一天创建的所有24个文件,即19个 所以我的脚本看起来像: #!/bin/bash base_name="some_text_" year_mounth=`date +%Y.%m.` today=$(date +%d) yestarday=`expr $

linux和windows的python读取文件编码差异

我想知道linux和windows之间的文件打开和读取方式是否存在差异,例如: data_file = open(fileName, 'r').read() pkey_file = open('private.pem', 'r').read() windows和linux之间的data_文件和pkey_文件的数据是否会有差异 谢谢, K.在EOF中存在差异: Windows\r\n Linux\n 还有其他的角色 使用命令行dos2unixdos2unix不是到处都可以轻松获得的;我刚刚弹出了

编译linux内核时出错

我试图编译一个linux-3.16内核,在安装模块之前一切都很好。 在模块安装的中间,发生了一个错误 /lib/modules/3.16.0s3362938/kernel/drivers/usb/serial/iuu_phoenix.ko~ at ./scripts/sign-file line 417. make[1]: *** [drivers/usb/serial/iuu_phoenix.ko] Error 28 make: *** [_modinst_] Error 2 我试图搜索解决

linux访问系统调用未按预期工作

我正在尝试根据java web应用程序中登录的用户执行文件操作。为此,我使用JNI本机实现将fs uid和fs gid设置为登录用户的uid和gid。现在,仅当登录用户具有权限时才允许文件操作 我还想检索登录用户是否具有文件的读/写/执行权限。试图使用access、faccessat系统调用,但它们似乎没有使用fs uid 如何获得登录用户的文件权限?找到了一种简单的解决方法。不知道它有多完整。它不考虑ACL struct passwd *pw = getpwnam(userName); if

Linux 我有两个约会,需要找出时间上的差异

2015年1月21日星期三20:44:20东部时间 美国东部时间2015年1月21日星期三19:04:20 我大约有两次约会,需要在几分钟内得到差异。请帮忙 “c=date-d@$($(date-d“$b”+%s)-$(date-d“$a”+%s))-u+'%H:%M'”->此命令以HH:MM给出,但我想要MM 谢谢这会给你结果:100分钟: echo $((($(date -d "$a" +%s) - $(date -d "$b" +%s))/60 )) 请注意,如果您需要小于1分钟的精度

Linux logrotate不工作

我在logrotate.d中为tomcat catalina.out进行了配置,并将大小固定为200M,下面是我的配置文件: /opt/apache-tomcat-7.0.55/logs/catalina.out { copytruncate size 200M rotate 20 compress missingok daily } 但不幸的是,它甚至不运行跨900 MiB的日志。我必须手动运行命令logrotate-f tomcat。手动执行

Linux apachecan';无法访问主文件夹中的文件

我在Ubuntu服务器上运行Apache和PHP。我有一些希望Apache提供的用户文件夹。每个域都是唯一的子域: /home/alec/www /home/bob/www /home/carl/www 我已经在sites available/文件夹中设置了配置文件并启用了它们。然而,当我试图访问我的浏览器中的网站,我得到了一个403错误在所有这些。Apache说它无法访问根目录 所有文件夹和文件(包括/home文件夹)都将www数据作为组,用户名作为所有者(home和www除外,后者的根集为

用于所有Linux发行版的程序包

我目前正在从事一个Linux项目。这个项目需要在每一个Linux发行版下运行(不为客户机安装任何包/库/其他),要做好它有点困难 我已经试过自己做了,看,我也试过使用它,但由于我在一些发行版中出错,所以效果不好。例如: Ubuntu 8.04:无法读取标题ELF Debian 7.8:找不到GLIBC_2.14的版本 所以,我想知道是否有一种方法可以让我的程序包在每个Linux发行版下运行 谢谢 编辑:我希望避免静态编译,因为我的程序相当大。linux发行版之间存在很大差异,尤其是库和包管理

Linux 收听netcat的作品,但不收听grep';able(或其他几个实用程序)

我正在测试一些netcat udp shell工具,并试图获取输出并通过标准管道发送。在本例中,我有一个netcat客户端,它发送“foo”然后是“bar”,然后是“foo”,每次尝试从侦听器读取时都会使用换行符: [root@localhost ~ 05:40:20 ]# exec 5< <(nc -d -w 0 -6 -l -k -u 9801) [root@localhost ~ 05:40:25 ]# awk '{print}' <&5 foo bar foo

Linux Git/Veracrypt EOL hell-无法丢弃已修改的文件

veracrypt是否在内存中进行任何类型的文件缓存,以防止识别对git配置文件的更改 长版本:我在与Windows共享的veracrypt分区上有一个repo。在尝试在我的回购协议中强制执行EOL时,我看到文件或多或少任意设置EOL。当对.gittributes文件进行一个小的更改时,我会将此更改合并到一个分支上,突然我的新分支中充满了仅包含EOL更改的文件 我主要使用SmartGit或cmd行(GitV1.8.3.1)在linux上工作。我已尝试删除全局和repo配置文件中的autocrlf

Linux 如何以“身份登录”;“根用户”;在Altera嵌入式命令外壳中?

你好!我对Linux非常陌生,正在努力以“root用户”身份登录。下面的图片显示了我的尝试。我现在是什么样的用户?如何以root用户身份登录? 这是我现在正在尝试运行的项目: 正如@Richard所指出的,您需要使用类似于putty的工具(如果您在Windows上)和合适的电缆连接到电路板,以便与电路板进行通信 请参阅: 如果您使用的是像Ubuntu这样的linux机器,您还可以使用minicom和串行到USB电缆(或主板连接到PC USB集线器的合适电缆) 一旦您能够看到提示,默认情况下您将

linux中的pipe()函数

我的问题是关于linux中的pipe()函数: 我的问题是:“linux中只有一个管道吗?”。我的意思是,如果我有多个进程写入管道,这是同一个管道吗?这意味着一旦我从管道中读取数据,我可能会在同一个read()操作中从不同的进程中获取数据 不仅要阅读,而且最重要的是 我的意思是,如果我有多个进程写入管道 一般来说,你不应该让这成为可能 是同一个管道吗?也就是说,一旦我从管道中读取数据,我可能会在同一个read()操作中从不同的进程中获取数据 是的,但你通常不这么做。不仅要阅读,而且最重要的是要阅

Linux perl中的系统(“tar xzf DirName/tarFile.tar dirnameinidetar/FileName”)失败并返回-1

tar退出代码-1是什么意思?我正在使用命令 system("tar xzf DirName/tarFile.tar DirNameInsideTar/FileName") 从perl脚本中解压。我正在尝试卸载大约1000个tar文件,但在卸载了100个或500个tar文件后,系统命令会随机失败并返回-1。我检查了代码的内存使用情况和可用的磁盘空间,两者似乎都很好。有人知道错误是什么吗?当系统返回-1,$时包含错误消息 system("tar xzf DirName/tarFile.tar

Linux grep-e命令

在makefile中,有一个命令行: COUNT=`grep -e "->" < "$(SOME_DIR)/count.log" | wc -l` ; COUNT=`grep-e“->”

Linux 用rotatelogs旋转catalina.out?

当catalina.out超过我帮助开发的专用安全设备的最大大小时,我正在尝试将其旋转。我们目前使用logrotate来完成这项任务,但我尝试在文件达到大小限制时立即进行旋转,而不是依赖于每天的cron作业 根据,我应该尝试修补catalina.sh以将输出管道连接到命令。我们在这个设备上没有cronolog,但我们有httpd,所以我决定使用rotatelogs: 问题是catalina.out甚至没有在那里创建。我该怎么办 以下是我的补丁文件版本的一部分,用于启用管道到命令: @@ -33,

Linux Git:在推送之前本地删除后是否可以恢复文件?

我想在推之前通过删除每个JPG文件“清理”我的git回购,所以我输入: find . | xargs rm *.png 在git根目录中,现在一切都被挖掘了。我的*.py文件也被删除了,但我不知道为什么?这是一台Linux、Ubuntu机器。有没有可能恢复我的文件?可能是通过我的操作系统?您键入的命令完全错误: find . 此命令输出下面的每个文件和目录的名称,包括隐藏文件 xargs 此命令接受其输入并运行给定的命令作为其参数,每次将其作为参数输入一行。因此,它将运行rm*.png,然

Linux 如何将IF语句实现到while循环中,并使while循环无限期地运行?(猛击)

以我做的以下while循环为例,它输出“string”每60秒出现在文件中的次数(file path和string ommited) while true; do /path/to/file | grep -i "string" | wc -l; sleep 60; done 实现IF语句的最佳/最简单的方法是什么,这样,如果输出超过100,我就可以发送电子邮件。我需要while循环无限期地继续运行 您可以利用这样一个事实,即您可以通过管道直接连接到另一个包含if语句的命令 while tru

linux shell:xml中的sed替换值

我有一个xml文件,我想用另一个值重新替换标记中的文本值,但是有两个名为jdbcurl的标记嵌套在不同的池id中 有谁能帮我和塞德一起挖吗? 谢谢 数据库用户 密码1 oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@db.server.com:1753/ORCSN 比尤塞 密码2 oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@db.server.com:1753/ORCSN sed-E'/

Linux 加密++;导致Qt Creator中的引用未定义,但代码::块中的引用未定义

几乎来自Crypto++的每个函数都会在Qt Creator中生成未定义的引用,但code::blocks运行得非常好 LIBS+= -lcryptopp 在.pro文件中似乎可以工作,因为我可以包含所需的文件并声明变量,除非构造函数重载 比如说 CryptoPP::Integer integer; std::string str=CryptoPP::IntToString(integer, 10); 投掷 .../main.cpp:54: undefined reference

Linux 如果提到同一位置的一个文件路径,我如何grep另一个文件?

假设我在/var/log/abc.txt位置有一个文件,在同一位置有另一个文件/var/log/xyz.txt。但在我的程序中,我提到了/var/log/abc.txt位置。。现在使用相同的位置如何使用xyz.txt文件而不指定其位置。 我希望我的命令剪切abc.txt并替换为xyz.txt dirname /var/log/abc.txt 它返回路径/var/log 范例 我希望命令剪切abc.txt并替换为xyz.txt意味着什么?为什么要使用grep? oldfile="/var/log

如何使用<;虚拟主机>;在httpd.conf Amazon linux EC2中

我已经尝试了所有可能的解决方案,将mydomain.com指向/var/www/html/mysite下的特定文件夹。首先,在/etc/httpd下缺少httpd.conf文件,但在/etc/httpd/conf下可以找到它。也没有/etc/apache2文件夹 为了将我的域指向/var/www/html/mysite,我在/etc/httpd/conf/httpd.conf下写了下面的代码,就在写着ServerAdmin的行下面root@localhost <VirtualHost *:

Linux 如何使用sudo将环境变量导出到后台进程运行?

我有一个bash脚本env_setter.sh。它设置了一个环境变量。它包括: #!/bin/bash echo "inside env_setter script....." export NAME="jake" #!/bin/bash echo "Inside tester script..." echo "$NAME" 我有另一个脚本tester.sh。它试图打印由env_setter.sh设置的环境变量的值。它包括: #!/bin/bash echo "inside env_sett

在linux中从多个文件名中删除“-template”部分

我有一些文件的名称如下: jcr-repository-template.xml imapserver-template.xml 我想把它们重命名为: jcr-repository.xml imapserver.xml. 我尝试使用find-name*-template.*-exec rename-v template{} 它起作用了,但我只匹配了模板,而没有-模板我找不到如何匹配。现在我在每个文件名的末尾有一个破折号字符。有人能帮我吗 在许多命令中,选项-可用于指示我可以测试的选项的结束,

Linux 带if-not条件的Bash循环

我说有100个文本文件,其中50个文件名以sshv2l开头,另外50个没有sshv2l。我想将它们合并到一个循环中,就像下面这样,我有两组合并的文件。对于使用sshv2l的文件,我做了如下操作,但在没有sshv2l的情况下无法合并文件。如果不是bash中for循环的条件,如何编写 for f in sshv2l*; do echo "Merging file :" $f cat ${f} >> sshv2l_merged.fastq done 您的循环代码可以替换为单个cat: c

如何理解这个Linux排序输出

我在一个txt文件上运行了Linux sort,得到以下输出: root@nxxx:~# cat b.txt (52819531,3245) (528,216) (52819532,32680) (52821791,3072) (52821795,30713) root@nxxx:~# sort -k1 -t, b.txt (52819531,3245) (52819532,32680) (528,216) (52821791,3072) (52821795,30713) 我想应该是这样的:

Linux上的Web音频Api目标maxChannelCount始终为2

我在Linux上的Web音频API和usb音频接口有问题 我在Web audio API上编写了一些音频播放器代码 当我连接我的7.1 USB音频接口TASCAM 16x08时,一切都正常-有8个输出通道并在Windows机器上启动我的应用程序。context.destination.maxChannelCount等于8,我可以选择要输出声音的频道 但当我在Linux机器上执行相同操作时,context.destination.maxChannelCount始终为2 我试图: 创建虚拟音频多通道

Linux 如何在终端上将二进制文本转换为ASCII码?

我得到了一个二进制文本文件,比如0110110111110110011010110010110110110110100011001101110011 我必须把它转换成相应的ASCII文件。 我应该如何继续?如果您有Python 3,则可以执行此操作: $ MY_BINARY_STRING='01101011011011110110010101101011011010100011001101110011' $ python3 -c "import binascii print(str(binasc

Linux 如何在}之前将文件中的a内容附加到另一个文件中

我有两个文件。 文件1:source.sh 文件2:destination.sh 我想将文件1的内容插入文件2中。但我不想在文件末尾插入内容。 文件2的最后一行是“}” 我想在“}”之前将文件1的内容插入文件2 下面是我的代码: filename50 - /path/of/the/file #source my_file4 - /path/of/the/file #destination cat "$my_file4" >> "$filename50" 上面的代码在文件末尾插入

Linux 这两个vscode快捷方式的VIM等价物是什么?

以下是我在vscode中使用的两种常见模式: 您是否知道在VIM中获得同等结果的最佳方法是什么 谢谢你#1将是一个很好的替代人选: :s/|/\r /g 在这里,我们将行中的每个替换为一个回车符,后跟四个空格 请参见:帮助:替换和:帮助子部分替换特殊 #2以及: :'{,'}s/\s*$/, 我们在当前段落中用冒号替换任何尾随空白字符 请参见:help:range,:help\s,以及:help/$签出 这应该能够做你想要的两件事 ctrl-n大致对应于ctrl/cmd-d c