Unix & Linux

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

4
扩展LUKS加密分区以填充磁盘
我最近将磁盘从128GB SSD升级到512GB SSD。/分区使用LUKS加密。我正在寻找扩展分区以使用新磁盘上所有可用空间的帮助。我已经将旧驱动器添加到新驱动器中: [root@localhost ~]# fdisk -l /dev/sda Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x00009f33 Device Boot Start …
20 filesystems  luks 

4
dirname和basename与参数扩展
是否有客观原因偏爱一种形式?性能,可靠性,可移植性? filename=/some/long/path/to/a_file parentdir_v1="${filename%/*}" parentdir_v2="$(dirname "$filename")" basename_v1="${filename##*/}" basename_v2="$(basename "$filename")" echo "$parentdir_v1" echo "$parentdir_v2" echo "$basename_v1" echo "$basename_v2" 产生: /some/long/path/to /some/long/path/to a_file a_file (v1使用外壳程序参数扩展,v2使用外部二进制文件。)

3
如何将密码传递给mysql命令行
我将MySQL密码保存在文件中foo.php,例如P455w0rd,当我尝试使用它时: $ cat foo.php | grep '$dbpwd=' | cut -d '"' -f 2 | mysql -U root -p mydb -h friendserver Enter password: (holds) $ echo P455w0rd | mysql -u root -p mydb -h friendserver Enter password: (holds) 这两个选项仍要求输入密码,从哪发送密码的正确方法是stdin什么?
20 password  mysql  stdin 

4
在第一个空格后使用sed / awk删除任何内容
aaaaaaaa 09 bbbbbbbb 90 ccccccccccccccc 89 ddddd 09 使用sed / awk / replace,在上面的文本中,我想删除每行第一个空格之后的所有内容。例如,输出将是: aaaaaaaa bbbbbbbb ccccccccccccccc ddddd 任何帮助将不胜感激。
20 sed  grep  awk 

3
initramfs是否使用/ etc / fstab?
据我了解,initramfs负责加载“真实的”根文件系统。 现在,在两个地方定义了根。首先,我们在中输入一个条目/etc/fstab。其次,我们将设备放在内核引导命令上,例如root=/dev/sda1。 initramfs使用哪一个来确定根文件系统在哪里?如果它使用root内核参数,为什么我们要在其中输入一个/etc/fstab?第二个选项(读取为/etc/fstab)非常不合逻辑,因为该/etc/fstab文件位于initramfs首先尝试安装的根设备上。 非常令人困惑的东西。
20 boot  fstab  initramfs 

2
尝试如何杀死显示“不允许操作”的进程?
我有一个想杀死的过程: computer@ubuntu:~$ ps aux | grep socat root 2092 0.0 0.0 5564 1528 pts/1 T 14:37 0:00 sudo socat TCP:xxx.17.29.152:54321 PTY,link=/dev/ttyGPS0,raw,echo=0,mode=666 computer@ubuntu:~$ kill 2092 -bash: kill: (2092) - Operation not permitted <--------------- How to kill ??
20 sudo  kill 




1
如果多线程Linux进程收到信号,该怎么办?
如果Unix(Posix)进程接收到信号,则将运行信号处理程序。 在多线程进程中会发生什么?哪个线程接收信号? 我认为,应该扩展信号API来处理该问题(即应该能够确定信号处理程序的线程),但是在网上寻找信息时,我只在Linux内核邮件列表中发现了长达一年之久的信息。不同的论坛。据我了解,Linus的概念不同于Posix标准,并且首先构建了一个兼容层,但现在Linux遵循posix模型。 目前的状态是什么?

1
NetworkManager,联网的,netplan,ifupdown2和iproute2到底如何交互?
我正在学习关于Linux的Kubuntu我18.04工作站上的网络,我看到有两个NetworkManager和networkd-dispatcher正在运行: oleg@eclectic:~$ sudo ps -ef | grep -i net root 56 2 0 Oct11 ? 00:00:00 [netns] root 1097 1 0 Oct11 ? 00:00:02 /usr/sbin/NetworkManager --no-daemon root 1098 1 0 Oct11 ? 00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers root 1250 1 0 Oct11 ? 00:00:02 /usr/sbin/inetd root 1593 1097 0 Oct11 ? …

4
转义变量以用作另一个脚本的内容
这个问题与如何编写正确转义​​的字符串文字无关。我找不到任何有关如何转义变量以直接在脚本或其他程序中使用的相关问题。 我的目标是使一个脚本能够生成其他脚本。这是因为生成的脚本中的任务将在另一台计算机上运行0到n次,并且生成它们的数据可能会在运行之前(再次)更改,因此直接通过网络进行操作将不行。 给定一个可能包含特殊字符(例如单引号)的已知变量,我需要将其写为完全转义的字符串文字,例如,一个foo包含的变量bar'baz应在生成的脚本中显示为: qux='bar'\''baz' 通过附加"qux=$foo_esc"到脚本的其他行来编写。我是这样用Perl做到的: foo_esc="'`perl -pe 's/('\'')/\\1\\\\\\1\\1/g' <<<"$foo"`'" 但这似乎太过分了。 我仅靠bash并没有取得成功。我尝试了这些的许多变体: foo_esc="'${file//\'/\'\\\'\'}'" foo_esc="'${file//\'/'\\''}'" 但是要么多余的斜杠出现在输出中(当我这样做时echo "$foo"),否则它们会导致语法错误(如果从shell进行操作,则需要进一步的输入)。

4
即使文件存在并且在PATH中,Linux可执行文件也会失败并显示“找不到文件”
我想启动wine可执行文件(版本2.12),但是出现以下错误($= shell提示符): $ wine bash: /usr/bin/wine: No such file or directory $ /usr/bin/wine bash: /usr/bin/wine: No such file or directory $ cd /usr/bin $ ./wine bash: ./wine: No such file or directory 但是,文件在那里: $ which wine /usr/bin/wine 可执行文件肯定在那里,并且没有死的符号链接: $ stat /usr/bin/wine File: /usr/bin/wine Size: 9712 Blocks: 24 IO Block: 4096 …

1
无法使用nc托管主机,但可以ping通
我正在尝试使用netcat从一台虚拟机连接到另一台虚拟机的端口25,但它告诉我no route to host虽然我可以ping通。我确实将防火墙默认策略设置为丢弃,但是我有一个例外,可以接受该特定子网上端口25的流量。我可以使用nc从VM 3到端口25上的VM 2进行连接,但不能从VM 2 TO 3进行连接。 这是我的VM2防火墙规则的预览 这是我的VM 3防火墙规则的预览 当我显示监听服务时*:25,这意味着它正在监听所有ipv4 ip地址和:::25ipv6地址。我不明白错误在哪里以及为什么不起作用,两个防火墙规则都接受端口25上的流量,因此应该可以连接。我尝试比较两者之间的差异,以了解为什么可以从vm3连接到vm2,但配置完全相同。关于可能是什么问题的任何建议? 更新停止iptable服务可以解决问题,但我仍然需要那些规则。

4
自动扩展最后一个分区以使用所有未分配的空间,以批处理模式parted
长话短说,我需要在启动(嵌入式系统)时自动执行所有操作。 我们的工程师会将图像刷新到生产设备。这些图像将包含一个小的分区表。在启动时,我需要自动扩展最后一个分区(#3)以使用磁盘上的所有可用空间。 当我查看磁盘上的可用空间时,这就是我得到的。 > parted /dev/sda print free Model: Lexar JumpDrive (scsi) Disk /dev/sda: 32.0GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 25.3MB 24.2MB fat16 primary legacy_boot 25.3MB 26.2MB 922kB Free Space 2 …
20 parted 

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.