Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

1
我该如何解决这些破碎的依赖关系?
aptitude告诉我我有些软件包的依赖关系已损坏: kmiller@debian-dev-box:~$ sudo aptitude search '.*' | grep ^.B iB console-setup-linux - Linux specific part of console-setup iB gir1.2-freedesktop - Introspection data for some FreeDesktop co iB gir1.2-glib-2.0 - Introspection data for GLib, GObject, Gio iB gir1.2-gstreamer-0.10 - Description: GObject introspection data fo iB gir1.2-json-1.0 - GLib JSON manipulation library …

2
SUSE服务器是否打算以图形方式使用?
作为Debian Linux的长期用户之后,我决定尝试一下SUSE。SUSE的主要卖点之一是YaST配置系统。它提供了一组用于常见配置任务的向导。YaST在某个时间点,我几乎可以找到所有教程。 不幸的是,该实用程序的文本版本似乎缺少GUI版本中提供的许多功能。实际上,我可以找到的所有教程(LDAP例如,用于设置服务)都假设您正在使用GUI。我可以找到的唯一可以YaST远程使用GUI的方法是通过SSH从最小X服务器转发连接。 我对此感到非常惊讶,因为如此大量使用GUI工具比Windows更像是UNIX。 SUSE服务器是否设计为仅以图形方式使用?
8 linux  x11  gui  suse  yast 


1
如何调整完整硬盘映像中分区的大小?
我使用以下方法拍摄了完整的硬盘驱动器图像: dd if=/dev/sda of=/home/user/harddriveimg bs=4M 在我看来,在适当安装后,我应该能够重新调整其中的分区大小。 由于我不熟悉命令行分离,因此我尝试了以下操作: gparted /home/user/harddriveimg 在加载分区表时,它找不到分区本身,例如,harddriveimg0。 是否可以像这样修改映像文件,而无需将其写回到某些磁盘上?对于仅使用终端命令的解决方案,我将感到非常满意。


1
通过服务器IP地址阻止访问者
我的Apache服务器IP地址为192.168.1.100,域名为test.local。 如果用户键入URL,例如说“ http://test.local ”,则应允许它们。 如果用户尝试访问“ http://192.168.1.100 ”,则应将其拒绝。 我该怎么做?

2
Linux内核如何访问其分配的initramfs / initrd?
从您按下电源按钮开始,我试图了解整个计算机的启动过程。从引导加载程序到initramfs阶段,有一件我不太了解的东西。 给定此条目的Grub配置,取自最近的Ubuntu默认安装: insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root 96fb7310-5adb-4f66-bf59-04acd08d76a3 echo 'Loading Linux x.y.z ...' linux /vmlinuz-x.y.z root=/dev/mapper/some-device-name ro nomodeset echo 'Loading initial ramdisk ...' initrd /initrd.img-x.y.z 就系统状态和内存而言,这实际上是做什么的?我知道Grub的任务是“加载并运行内核”,并且它有自己的模块集来访问设备(或网络)上的文件以获取它们。在这里insmod的示例中- set root和search-但这只是从Grub的角度出发,并且不与内核共享,对吗? 我还猜测到Grub正在将内核加载(副本?)到内存(linuxcommand)并踢它以开始执行。(显然有两个不同的步骤-那么,怎么做?)可以在内核中读取并解释给定的参数(这是一个大字符串映射到内存中的某个地方吗?),并提供了安排所请求内容的选项。 我也看到了这个initrd选项。这指向我的gzip压缩的initramfs,它是启动所指定的实际根设备所需的root=。但是如何将这个initramfs提供给内核?它没有传递任何内存地址到可以加载它的位置,也不能访问它本身,因为它在内核启动之前就已经加载了。一些内核文档说,可以通过访问该initramfs文件系统“设备” /dev/ram0,但是我不知道它如何成为可访问的设备文件。我想,在水下看不见的东西正在发生。 我也看不到这与其他引导加载程序(包括嵌入式平台)之间的关系,例如使用U-boot / Coreboot。这是否与Grub(相同的标准内存地址)做相同的事情,并且在加载内核/初始化时,这些与Grub相比有多大? 只是为了澄清我的问题,我认为我确实理解了为什么存在不同的引导阶段以及发生了哪些过渡,但是我看不到它们是如何发生的以及每个阶段的确切职责是什么。我觉得我错过了一些“标准”,所有这些都归结为这些标准。 我希望对此有所解释。

4
恢复计算机时运行的脚本放在哪里?
当我的计算机从内存挂起状态唤醒时,我需要锁定屏幕, 因此,我尝试将以下脚本放入/usr/lib/pm-utils/sleep.d和/etc/pm/sleep.d,但从未执行过, #!/bin/sh case "$1" in hibernate|suspend) ;; thaw|resume) vlock -ans ;; *) exit $NA ;; esac PS pm-suspend不是pm-hibernate。 编辑 也尝试过系统化的服务,没有运气: # /etc/systemd/system/resume@.service [Unit] Description=User resume actions After=suspend.target [Service] User=root Type=simple ExecStart=vlock -ans [Install] WantedBy=suspend.target 我systemctl enable resume@.service也打过电话,vlock还没打过去。

1
在更新时自动应用模块补丁并编译内核吗?
我最近应用了单行修补程序,drivers/bluetooth/btusb.c以实现与我的蓝牙设备的兼容性。但是,每当我进行内核升级时,该补丁将丢失,直到有人向后移植为止(这不太可能)。我有办法运行脚本并自动修补每个新的内核升级吗? DKMS似乎是一个很好的解决方案,但是我不确定如何设置。我不想每次获得更新时都重新编译整个Linux内核,但我想将该补丁应用于btusb模块,重新编译,并在每次更新时将其插入到我的内核中。我如何使用从获得的资源来做到这一点apt-get source linux-source-3.2.0?我需要复制哪些文件?关键make调用是make M=drivers/bluetooth modules,但这取决于首先要构建的其他内核实用程序。我该如何为此组装DKMS模块? 关于如何使用补丁的详细信息,可以发现这里的问Ubuntu Linux系统。

7
查看.tex文件中的更改
我有两个文件paper.tex,paper_suggested_changes.tex后者是前者的修正版本,带有更正。 我需要浏览两个文件,然后选择接受或拒绝哪些更改,我将如何处理?

4
无法通过命令行从网络摄像头获取VLC进行录制
我的〜/ .bashrc包含以下功能 webcamrecord () { vlc v4l2:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=640 :v4l-height=480 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout="#transcode{vfilter=adjust{gamma=1.5},vcodec=theo,vb=2000,scale=0.67,acodec=vorb,ab=128,channels=2}:standard{access=file,mux=ogg,dst="output_file.ogg"}" } 该命令可以很好地直接从我的网络摄像头录制,但有一个或两个缺陷。首先,所产生的视频移动速度太快,是正常速度的两倍到三倍。 另外,没有音频。这不是什么大问题,但我仍然想解决此问题。 有人可以帮我调试此命令,以解决这些问题吗?

2
查找具有给定名称的进程
我正在尝试将VMS命令show/system/process=processname转换为等效的Linux命令。 我尝试了以下操作,但未返回任何过程: ps -C /exeimages/processname.pl
8 linux  ps 

3
在Fedora上用Vim全局替换Vi
在基于Debian的系统上,Alternatives系统同时处理vi和vim可执行文件。因此,如果vim安装并执行vi,那么您也会得到vim,我觉得很好,因为我绝对讨厌classic vi。 在Fedora 17“ Beefy Miracle”上,替代系统显然不能同时解决这两个问题。但是有一个配置文件,/etc/profile.d/vim.sh其中添加了一个shell别名来vi执行vim。由于某些原因,它对系统用户(包括root用户)不执行此操作。 但是,即使我手动为所有用户设置了别名,当我打电话时,sudo vi我也开始使用classic vi而不是vim。那可能是因为sudo不能启动shell或配置文件仅在交互式shell会话中执行。 我现在正在寻找的是一种vi完全卸载classic的方法,以使符号链接甚至在系统更新后也不会丢失。如何删除经典vi但不能删除vimFedora 17?还是有更好的方法? 更新:据yum provides vi我发现vi,该包装提供了该包装vim-minimal。但是我不能简单地删除它,因为它会自动删除它的包sudo。即使我确实将其删除,然后尝试再次安装sudo,vim-minimal也将再次作为依赖项安装。 更新:根据要求,输出rpm -qf /usr/bin/vi: vim-minimal-7.3.444-1.fc17.x86_64 和ls -l /usr/bin/vi: -rwxr-xr-x. 1 root root 782248 13. Feb 2012 /usr/bin/vi
8 fedora  vim  vi 

1
环境变量和外壳变量之间的区别
据说环境变量是在子进程中继承的,而shell变量不是。但是,以下测试表明,在子进程中可以看到shell变量,就像在环境变量中一样。有什么区别? > bash --version GNU bash, version 3.2.39(1)-release (x86_64-suse-linux-gnu) Copyright (C) 2007 Free Software Foundation, Inc. > export TEST="ENV_TEST" #env var > sh -c "echo \$TEST" ENV_TEST > TEST="SHELL_TEST" #shell var > sh -c "echo \$TEST" #shell var is seen in child process SHELL_TEST

2
获取已安装打印机的列表
在脚本内部,我发送了一个特定的文件,以使用该lpr命令在用户选择的打印机上进行打印。 用户从中选择要使用的打印机列表,lpstat -a然后使用该命令,然后将第一个空格之前的所有内容都视为打印机的名称。 这可以工作,但是严重依赖于lpstat -a命令的特定输出格式。恐怕将来(或现在使用不同的发行版)输出格式更改时,它将破坏脚本。 因此,是否有一种方法可以比我使用的打印机更安全的方式获取所有已安装打印机的名称?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.