Linux新手常见一系列问题

这篇文章在不停的更新中ing
我用的是deepin linux,以下方法是速效解决,如果想要了解更多或者原因请自己多动手,多用google看看英文文献。

Linux系统下设置交换文件(swapfie)

Swap分区在系统的内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用,在安装linux系统时可以直接划分一个swap分区,也可以不分,在系统安装好后在一个盘新建一个swapfile文件来代替。
下面给出步骤

  1. 创建交换文件 – swapfile
sudo fallocate  -l 6G /var/swapfile

在var目录下创建了一个6G的swapfile
3. 更改/swapfile权限

sudo chmod 600 /var/swapfile

修改swapfile文件的权限为600即root用户可读写,其他组合用户没权限。
4. 格式化为swap

sudo mkswap /var/swapfile
  1. 使上面的设置生效
sudo swapon /var/swapfile
  1. 为了以后开机自动挂载swap, 将其加入/etc/fstab
sudo vi /etc/fstab

这时候按i,a,o这三个小写字母的任何一个进入编辑模式,这样就可以写东西了。把下面的内容复制到里面,注意复制和粘贴是ctrl + shift +c和ctrl + shift + v,不是ctrl+c ,ctrl+v操作

/var/swapfile  none  swap  defaults 0 0

写完后按esc,再按:x这样就保存并退出了。
下面是我的截图。
在这里插入图片描述
你的这个文件里可能比我要多好几行,这个不用关心,只要复制就可以了。
7. 如果对这个/swapfile不满意,比如想更改大小,可以这样
sudo swapoff -a 关掉swap
sudo rm -f /swapfile 删掉当前swapfile
从第一步开始,再走一遍吧。
使用free命令查看设置的效果
在这里插入图片描述

为什么我的硬盘还有空间,就是有一部分不能用?

我的/dev/sdb7硬盘265G使用了247G,但无法再存东西了,明明空间很充足啊
因为ext4系统默认会给超级用户预留5%的空间,可以使用

sudo tune2fs -m 0.1 /dev/sdb7

将这5%设置成0.1%,又可以继续存东西了。
当然,这种情况原因很多,我就说了我遇到的一种。

deepin系统ROOT用户按tab没有自动补全

sudo vim /etc/bash.bashrc

2.取消以下注释,把#去掉

#if [ -f /etc/bash_completion ]; then
#. /etc/bash_completion
#fi

3.将

source /etc/bash.bashrc

追加至/etc/profile,每次开机都会运行这条指令了。

软件包常用命令

sudo apt update         更新软件包,并提醒是否安装
sudo apt upgrade        升级本地软件

以上两条经常使用到,也是用的最多的主要用于升级,如果你安装软件提示依赖不足,可以执行以上两条指令,并重启电脑。
注意,在使用sudo命令系统会让你输入管理员密码,linux下输入密码大多没有提示,不像windows会用****提醒你输入了几个密码。输入好后直接回车即可

安装软件

sudo apt install <包名>

例如我安装火狐浏览器

sudo apt install firefox

安装软件后,软件的安装包没有删除可以用如下命令删除下载的安装包

sudo apt autoclean                       清理未安装软件的安装包
sudo apt clean      	                    清理所有安装包

卸载软件

sudo apt purge <包名>

如何知道自己安装了哪些包?

如果我知道我安装了百度网盘,但是不知道他的全名,我只知道包名字里有baidu怎么办?可以使用下面的第二条指令

dpkg -l 		   		列出所有安装的包
dpkg -l | grep -i baidu  在所有的包里查找名字里含有baidu的包并显示出来
				        -i的意思是匹配baidu时忽略大小写。

找到包名后就可以sudo apt purge <包名>就可以了

删除软件的配置文件

你可能注意到使用dpkg -l时在列出的软件里最左边大部分是ii标志,也有一些是rc标志。ii表示这个包被安装,rc表示包被卸载但配置残余还在。
使用

dpkg -l |grep ^rc              #注释rc前面加^表示找出以rc开头的内容

语句查看是否有这类残余,你的终端没有输出就是没有这类软件,如果有执行下面语句来彻底清理,至于下面语句如何实现,我这里就不解释了,篇幅会过长,可能会劝退新手。

dpkg -l | grep '^rc' | awk '{print $2}' | sudo xargs dpkg --purge

linux系统的一个软件安装包会依赖一些小包才能正常运行。假设我同时安装了谷歌浏览器和火狐浏览器,他们同时依赖一个名叫a的小包,当我把这两个浏览器卸载后这个a小包就没有其他软件包使用它了,那么他就变成了孤包,像孤儿一样。像这样的包系统可能有很多,大多是在软件卸载后产生的,可以使用以下命令卸载这些孤独的包,还是一样,如果终端没有输出,表明没孤包

sudo apt autoremove

以下是对grep的补充,可以不看

grep用于匹配文件里面的内容,和find有所区别。grep是用正则号,而find是用用通配符

. 表示任意一个字符。
在grep “c*” file表达式中,*前面添加单个的任何字符都没有意义(显示所有内容)。
grep "cc*"显示所有含c的行,(所有的c都高亮)
grep "ccc*"匹配所有含cc的行

grep [abc] file :只要一行含有abc中的任意一个字符,那么显示这一行(所有abc高亮)
[a-zA-Z] :表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。
[^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符。

对于一些常用的字符集,系统做了定义:
[A-Za-z] 等价于 [[:alpha:]]
[0-9] 等价于 [[:digit:]]
[A-Za-z0-9] 等价于 [[:alnum:]]
tab,space 等空白字符 [[:space:]]
[A-Z] 等价于 [[:upper:]]
[a-z] 等价于 [[:lower:]]
标点符号 [[:punct:]]

du命令

对当前目录排序,包含隐藏和未隐藏文件(只显示当前文件夹和文件,不显示子目录)

du -sh .[!.]*  *  |sort -nr

批量复制

find . -name “*log”|xargs -t -i cp {} /home/hadoop/logs/
。。。未完待续

猜你喜欢

转载自blog.csdn.net/qq_35543026/article/details/105510359