Linux_杂记

本文最后更新于:2023-04-05 23:23

Ubuntu 14.4LTS版本右键无“打开终端”

参考链接:

  • https://zhidao.baidu.com/question/2057143574530326787.html

ctrl + alt + t 打开终端,运行:

1
sudo apt-get install nautilus-open-terminal

Linux执行可执行文件提示No such file or directory的解决方法

参考链接:

  • https://blog.csdn.net/tq384998430/article/details/62883763

我是在64位Linux系统运行32为的bin文件,提示文件不存在,但是文件在系统中是真实存在的。我选择的解决方式是:

1
sudo apt-get install lib32bz2-1.0

apt与apt-get

参考链接:

  • https://iter01.com/585983.html

解决apt-get /var/lib/dpkg/lock-frontend 问题

参考链接:

  • https://zhuanlan.zhihu.com/p/126538251

运行apt-get命令时报以下错误:

1
2
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

解决方式:

1
2
3
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock

建议都运行一遍,不一定是那条起作用,我逐个试了还是有问题,但是全运行一遍到第二条时就好了。。。

Ubuntu 16.04 更换dns域名

参考链接:

  • https://www.cnblogs.com/easonjim/p/7857671.html

关闭Kalsr

参考链接:

  • https://laozhou.org/archives/1432
  • http://abcdxyzk.github.io/blog/2020/01/07/KASLR/

Linux 下 cc 与 gcc

参考链接:

  • https://www.cnblogs.com/zhouyinhui/archive/2010/02/01/1661078.html

cc 是 Unix 系统下的编译器,是c complier的缩写,貌似还是收费的。gcc 来自 Linux 世界,是GNU complier collection的缩写,这是一个编译器集合,不仅仅是 c 或 c++。

在 Linux 调用 cc时,其实际上并不是指向 Unix 的 cc 编译器,而是指向了gcc,也就是说ccgcc的一个链接。

1
2
3
4
5
6
root@ubuntu:/home/ubuntu# which cc
/usr/bin/cc
root@ubuntu:/home/ubuntu# ls -al /usr/bin/cc
lrwxrwxrwx 1 root root 20 Jan 19 2020 /usr/bin/cc -> /etc/alternatives/cc
root@ubuntu:/home/ubuntu# ls -al /etc/alternatives/cc
lrwxrwxrwx 1 root root 12 Jan 19 2020 /etc/alternatives/cc -> /usr/bin/gcc

原因是因为兼容性,如果在 Unix 系统下编写的程序,makefile 中很自然地使用了 cc 编译器,如果直接移植到 Linux 中就无法 make 了;如果将其中的 cc 全部改为 gcc 也太麻烦了,所以,Linux 提供了这样一个解决方式。

文件明明存在,执行却提示“No such file or directory”

参考链接:

  • https://blog.csdn.net/sun927/article/details/46593129

这个问题是在做 ctf 题时遇到的,明明文件存在,也有执行权限,执行时却提示“No such file or directory”。原因是系统位数与该可执行文件需要的lib库位数不匹配。我的系统是64位,而文件却是32位可执行文件。要在64位系统上运行32程序,需要安装32位 lib库。

1
2
3
4
5
6
7
8
9
$ sudo apt-get install ia32-libs
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package ia32-libs is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
lib32ncurses5 lib32z1

过程中可能找不到库,包管理器会提示替代者,选择一个安装即可,我安装lib32z1后就程序就可以正常运行了。

/run/user/1000/gvfs

参考链接:

  • https://www.cnblogs.com/chenmingjun/p/10311983.html

这个东西我忍他很久了!

这个我在使用 find 命令的时候遇到过,我以为是了不得的东西,而且也不影响 find 命令的结果,为了懒,就没管。但是没想到,这次又碰到了,是在使用 dpkg 命令的时候。

1
2
root@kx-virtual-machine:/home/kx/Desktop# sudo dpkg -i elasticsearch-8.6.1-amd64.deb
dpkg: error: dpkg status database is locked by another process

说 dpkg 状态数据库被其他进程锁定了,然后我就通过 lsof 命令进行查看是哪个进程。

1
2
3
root@kx-virtual-machine:/home/kx/Desktop# lsof /var/lib/dpkg/lock
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.

然后他就跳出来了,从网上找到了解决方案,将该文件卸载并删除就好了。

1
2
umount /run/user/1000/gvfs    // 卸载该文件
rm -rf /run/user/1000/gvfs // 删除该文件

dpkg 命令也可以正常使用了。


Linux_杂记
https://ahtoh.cn/2022/07/07/Linux-杂记/
作者
ahtoh
发布于
2022-07-07 21:36
许可协议