Linux踩坑记:奇怪的知识又增加了_linux那些事儿
wptr33 2025-09-04 19:53 9 浏览
1 、目录"/var/cache/apt/archives"中保存着通过apt-get命令得到的deb文件包
可用"apt-get clean"命令清理
2 、解决在文本界面下挂载硬盘或优盘时出现乱码的问题
可以使用mount的"-o"选项指定参数:iocharset=utf8,codepage=936来解决。
此两个选项用来设置IO编码。
同时也可以在/etc/fstab的option下直接加入以上选项,而后用mount -a进行重新挂载或重启系统。
3 、关于su和login的区别:
login登录时会将前一用户注销掉,而su username则是建立一个虚拟环境,但沿用的是以前的环境变量。
login相当于su - username。
4.关于文本模式
debian和red hat不同,没有文本模式的概念.图形界面是由桌面管理器(通常是gdm)启动的,而gdm在debian中是当作一个daemon来处理的.所以要开机进入文本模式,就要将/etc/rcX.d/中与gdm有关的内容移除,同时将
/etc/X11/default-display-manager中的内容删除或注销(加#号).在重启进入文本模式后运行startx和xinit出现错误,无法进入桌面,具体原因日后继续探索,解决方法是运行sudo gdm命令.注意运行时使用后台运行模式.
而最新的ubuntu中,此方法已经行不通,若想开机进入文本模式,则按照以下方法进行:
将/etc/default/grub文件中的
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"改为
GRUB_CMDLINE_LINUX_DEFAULT="text"
5 . 普通用户使用sudo命令时所要求输入的密码实际是用户自己的密码,而不是root用户的密码.
6 . 对sudo命令的重新理解:
新建的用户是不能使用sudo命令的,当在/etc/sudoers加入命令全权后,用户便能方便地使用sudo来达到root用户的运行级别,甚至可以改变root用户的密码!!!这是一件相当可怕的事情,
所以对于新建用户,对其进行sudo权限的开启必须慎之又慎!!!即使开启,也应该有所限制,除了修改密码的passwd命令,adduser/useradd,gpasswd,chgrp,chmod,chown等命令也是需要限制的,
因为用户进入sudo组或拥有了对/etc/sudoers的写权限后,这都将是存在巨大风险的事.
7 . 一个系统登录后,会产生一个用户进程,该进程有7个id值:实际用户id,有效用户id,保存的set-user-ID,实际组id,有效组id,添加组id,以及保存的set-group-ID.
set-user-ID和set-group-ID不好理解,就将其看做一种属性吧.
8. date命令可以进行日期的加减运算,如:date +%Y/%m%d --date=-1day,显示昨天日期,date +%Y/%m%d --date=+1day,显示明天日期,依此类推,改变数字即可.
利用此功能,可以编写脚本用于产生一段连续日期,下面的脚本将产生150天的连续日期:
#/bin/bash
for((i=0;i<=149;i++))
do
date +%Y/%m%d --date=+"$i"day
done
#当数字前无加号时,默任为加.
9. 执行脚本时,用"./"符实际上是开启一个子shell来执行脚本,所以脚本中的变量只在脚本执行中存在.
而source命令则强制在当前shell执行脚本,所以变量将会保留.
10. 打开Linux内核的数据包转发功能:
(1): echo 1 > /proc/sys/net/ipv4/ip_forward
(2): 在/etc/sysctl.conf里设置net.ipv4.ip_forward = 1
11、使用mount挂载windows的共享文件夹时,出现“CIFS VFS: cifs_mount failed w/return code = -22”的错误,这是因为系统未支持smbfs文件系统造成的,运行“apt-get install smbfs”即可
12、当一个用户在终端通过su切换另一个用户时,系统中的实际用户并没有改变,用w查看时与以前是一样的,这也说明了su开启的是一个子进程或子shell。
13、对于附加的权限“a”,其特点是只能有拥有者进行追加内容和删除,但这里的追加不是单纯的增加内容,而是通过重定向>>来进行,用vi等编辑工具进行增加是行不通的。
14、配置apache后,重启,出现以下错误提示:
[warn] NameVirtualHost *:80 has no VirtualHosts
原因是同一个主机配置了多个虚拟主机,需要保证相关的配置文件中的虚拟主机(VirtualHosts)相同,即/etc/apache2/ports.conf和
/etc/apache2/site-enabled/000-default中的VirtualHosts配置相同,例如,将其都设置为"VirtualHosts 127.0.0.1:80"。但在将其设置为127.0.0.1时只有本机能解析服务器地址,其他机器将无法通过ip地址连接服务器。
15、在vi里用自定义的字符来替换需要经常输入的字符串:
:ab chars string
此时,输入chars按空格或Enter键,chars将会自动变成string,为了避免chars与需要用到字符时产生冲突,最好将chars设为不常用的字符或组合式的字符。
16、samba服务器是Linux和Windows之间的文件共享服务器,在Linux系统中安装samba后,有些版本不需要通过service和/etc/init/XXX来管理服务,而是直接可以进行服务的独立运行,而且可以通过testparm和testparm.samba3来查看samba的相关配置和运行信息。当配置和运行正常时,在windows上便可直接在文件管理器中直接输入"\\ip_address\[share]"来链接共享文件夹。
17、NFS是Linux和Unix系统之间进行文件共享的服务,在debian系的Linux发行版上其需要安装portmap和nfs-kernel-server、nfs-common软件包,在服务的启动方面应该保证/etc/init.d/portmap服务先于nfs-kernel-server启动,否则将无法进行文件的共享。在客户端上也要保证正常安装了以上几个软件包并正常开启了相关服务,否则将会出现莫名其妙的错误。在这些工作做完后就能进行文件共享了,在客户机上,用mount远程挂载文件夹:
mount ip_address:dirname mount_point
下面是一些NFS共享的常用参数:
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
配置文件/etc/exports内容如下:
$ cat /etc/exports
/home/share 192.168.102.15(rw,sync) *(ro)
配置说明: 对192.168.102.15赋予读写权限,其他机器仅有只读权限。
18、今天的一个小插曲:刚开始进行ftp服务器实验的时候安装了pure-ftpd,但觉得不太好用,就将其卸载安装了vsftpd,此时登录ftp服务器竟然是pure-ftpd提供的服务,可是我明明已经将其卸载了呀,细想一下恍然大悟,虽然卸载了他的软件包,但相关的服务还在内存里呢,于是kill之,一切恢复正常。
19、ssh:ssh服务的运行和配置不难,重要的是要学会scp命令进行
远程的文件共享操作,还要掌握配对密钥的生成与使用:
在本地主机上,以某一个用户a的身份,运行:ssh-keygen -t rsa
然后会生成公钥文件:~/.ssh/id_rsa.pub和私钥文件:~/.ssh/id_rsa,此时,用scp将生成的公钥文件上传至远程主机,
在远程主机上,建立~/.ssh文件夹,然后:cat id_rsa.pub >> ~/.ssh/authorized_keys,此处注意是>>而不是>,这样当不同的主机或不同的用户也需要和同一台远程主机建立联系时就不会产生影响。
这样就建立了两台计算机之间的关系,以后ssh登录时不再需要密码。
如果此时登录时出现以下信息:Agent admitted failure to sign using the key.
解决方法是:ssh-add ~/.ssh/id_rsa
在一些系统上需要将远程主机的.ssh目录的权限设为700,authorized_keys文件权限设为600。
在ssh学习的过程中,重点是scp命令,它可以方便的进行远程的备份,当然更好的选择是rsync(与sync很像,sync用来将内存立即写入硬盘),
几个常用的选项是:
-a 保留文件的属性
-r 递归
-H 保持文件硬链接
-z 备份文件传输时压缩
--progress 传输时显示进度
--delete 删除目标备份没有的文件
-e ssh 使用ssh进行加密
20、.bashrc和.bash_profile的区别:
.bashrc是交互式、non-login方式进入bash运行的
.bash_profile是交互式、login方式进入bash的
所谓的non-login和login方式很简单,在Xwindow下运行终端时,并没有登录,而在字符界面下,却是需要输入登录信息的,这就是两者的区别。
相关推荐
- 栋察宇宙(二十一):Python 文件操作全解析
-
分享乐趣,传播快乐,增长见识,留下美好。亲爱的您,这里是LearingYard学苑!...
- python中12个文件处理高效技巧,不允许你还不知道
-
在Python中高效处理文件是日常开发中的核心技能,尤其是处理大文件或需要高性能的场景。以下是经过实战验证的高效文件处理技巧,涵盖多种常见场景:一、基础高效操作...
- Python内置模块bz2: 对 bzip2压缩算法的支持详解
-
目录简介知识讲解2.1bzip2压缩算法原理2.2bz2模块概述...
- Python文件及目录处理方法_python目录下所有文件名
-
Python可以用于处理文本文件和二进制文件,比如创建文件、读写文件等操作。本文介绍Python处理目录以及文件的相关方法。...
- The West mustn't write China out of WWII any longer
-
ByWarwickPowellLead:Foreightdecades,theWesthasrewrittenWorldWarIIasanAmericanandEuro...
- Python 的网络与互联网访问模块及应用实例(一)
-
Python提供了丰富的内置模块和第三方库来处理网络与互联网访问,使得从简单的HTTP请求到复杂的网络通信都变得相对简单。以下是常用的网络模块及其应用实例。...
- 高效办公:Python处理excel文件,摆脱无效办公
-
一、Python处理excel文件1.两个头文件importxlrdimportxlwt...
- Python进阶:文件读写操作详解_python对文件的读写操作方法有哪些
-
道友今天开始进阶练习,来吧文件读写是Python编程中非常重要的技能,掌握这些操作可以帮助你处理各种数据存储和交换任务。下面我将详细介绍Python中的文件读写操作。一、基本文件操作...
- [827]ScalersTalk成长会Python小组第11周学习笔记
-
Scalers点评:在2015年,ScalersTalk成长会完成Python小组完成了《Python核心编程》第1轮的学习。到2016年,我们开始第二轮的学习,并且将重点放在章节的习题上。Pytho...
- ScalersTalk 成长会 Python 小组第 9 周学习笔记
-
Scalers点评:在2015年,ScalersTalk成长会完成Python小组完成了《Python核心编程》第1轮的学习。到2016年,我们开始第二轮的学习,并且将重点放...
- 简析python 文件操作_python对文件的操作方法
-
一、打开并读文件1、file=open('打开文件的路径','打开文件的权限')#打开文件并赋值给file#默认权限为r及读权限str=read(num)读文件并放到字符串变量中,其中num表...
- Python 中 必须掌握的 20 个核心函数——open()函数
-
open()是Python中用于文件操作的核心函数,它提供了读写文件的能力,是处理文件输入输出的基础。一、open()的基本用法1.1方法签名...
- python常用的自动化脚本汇总_python 自动脚本
-
以下是python常用的自动化脚本,包括数据、网络、文件、性能等操作。具体内容如下:数据处理工具网络检测工具系统任务自动化工具测试自动化工具文件管理自动化工具性能监控工具日志分析工具邮件...
- Python自动化办公应用学习笔记37—文件读写方法1
-
一、文件读写方法1.读取内容:read(size):读取指定大小的数据,如果不指定size,则读取整个文件。...
- 大叔转行SAP:好好学习,好好工作,做一个幸福的SAP人
-
我是一个崇尚努力的人,坚定认为努力可以改变命运和现状,同时也对自己和未来抱有非常高的期待。随着期待的落空,更对现状滋生不满,结果陷入迷茫。开始比较,发现周围人一个个都比你有钱,而你的事业,永远看不到明...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
程序员的开源月刊《HelloGitHub》第 71 期
-
详细介绍一下Redis的Watch机制,可以利用Watch机制来做什么?
-
假如有100W个用户抢一张票,除了负载均衡办法,怎么支持高并发?
-
Java面试必考问题:什么是乐观锁与悲观锁
-
如何将AI助手接入微信(打开ai手机助手)
-
redission YYDS spring boot redission 使用
-
SparkSQL——DataFrame的创建与使用
-
一文带你了解Redis与Memcached? redis与memcached的区别
-
- 最近发表
-
- 栋察宇宙(二十一):Python 文件操作全解析
- python中12个文件处理高效技巧,不允许你还不知道
- Python内置模块bz2: 对 bzip2压缩算法的支持详解
- Python文件及目录处理方法_python目录下所有文件名
- The West mustn't write China out of WWII any longer
- Python 的网络与互联网访问模块及应用实例(一)
- 高效办公:Python处理excel文件,摆脱无效办公
- Python进阶:文件读写操作详解_python对文件的读写操作方法有哪些
- [827]ScalersTalk成长会Python小组第11周学习笔记
- ScalersTalk 成长会 Python 小组第 9 周学习笔记
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)