Advertisement

ubuntu知识杂记篇

阅读量:

本次总结主要涵盖了以下关键信息:
软件安装与更新:

  • 解决Aborted (core dumped)错误:执行sudo apt-get remove libappstream3后更新软件。
  • 安装依赖库:使用apt-get -f install fcitx解决fcitx依赖问题。
    Shell脚本错误:
  • 按下方向键时出现A/B/C/D选项:通过cd /usr/share/vim/vim73并使用cp vimrc_example.vim ~/.vimrc解决。
    磁盘管理:
  • 清理缓存:使用sudo du -sh /var/cache/apt清除旧缓存并运行sudo apt-get clean清理空间。
  • 修改文件属性:使用chattr命令设置特殊属性如不可删除(+i)、自动压缩(+c)等。
    Linux目录结构:
  • 重要目录:/opt用于主机额外软件安装,默认为空。
  • /proc虚拟目录显示内存映射。
  • /sys存储硬件驱动信息。
  • /usr类似于Windows的Program Files目录。
    常用操作与工具:
  • 查看文件时间:使用#stat获取atime, mtime, ctime。
  • 管理文件权限:使用du命令查看文件大小及单位调整。
  • 修改文件属性:通过chattr命令调整特殊属性。
    实用技巧:
  • 增加swap空间:通过mkswap和swapon配置虚拟内存以增加swap容量。
  • 环境变量管理:在etc/profile或.bashrc中设置个人变量并启用源加载机制。
    网络配置:
  • 两个网口互通方法:启用ip_forward并配置iptables进行路由转发与伪装处理。

一、更新下载源时,出现如下错误:**

Aborted (core dumped)
Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'
E: Sub-process returned an error code
解决办法:
1、sudo apt-get remove libappstream3
2、sudo apt-get update
3、sudo apt-get install --reinstall software-center software-center-aptdaemon-plugins

转自:
*

二、安装依赖库

The following packages have unmet dependencies:
fcitx-config : Depends: fcitx but it is not going to be installed
fcitx-sunpinyin : Depends: fcitx but it is not going to be installed

使用: apt-get -f install fcitx

三、shell脚本报错异常

1、 Vim 编辑器出现按下方向键时出现A、B、C、D

解决办法:

1)、cd /usr/share/vim/vim73 可能是vim74之类

2)、cp vimrc_example.vim ~/.vimrc

2、mount umount失败

mount :

提示:

mount: you must specify the filesystem type

解决办法:

mkfs.ext3 /dev/sdx 即可重新mount。

umount :

提示:
umount: /mnt/new_sdb: device is busy.

解决办法:

umount -l /mnt/new_sdb

四、清理ubuntu缓存

1、apt-get 选项 autoremove

移除一些无用的自动安装包和库
执行:
$ sudo apt-get autoremove
可以随时运行,加大磁盘空间。

2、清空系统中的APT缓存

APT的全称是Advanced Package Tool,即高级软件包工具,他是一个成熟的软件包管理系统。
APT在系统上进行软件的安装、管理和卸载,而在进行这些操作之后,APT会保留以前下载和安装过的软件包缓存。
查看缓存大小:
sudo du -sh /var/cache/apt
执行:
sudo apt-get autoclean
(系统自动判断清楚)
执行:
sudo apt-get clean
(清除空间更大)

3、卸载不常用软件

sudo apt-get remove package-name1 package-name2

4、通过GUI清理

Stacer就是这样一个工具,它可以展示你系统中的内存、CPU等各种部件状态信息。

五、 Linux的目录结构

1、/opt

给主机额外安装软件所设置的目录,该目录默认为空。

2、/proc

该目录为一个虚拟目录,是系统内存的映射,可以直接访问它来获取系统信息。该目录的内容在内存中,可以直接修改里面的某些文件。
比如屏蔽主机的ping命令,使其他人无法ping你的机器。命令如下:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

3、/sys

该目录存放的是与硬件驱动程序相关的信息。

4、/usr

此目录非常重要,类似于Win下的Program Files目录

六、 修改文件的特殊属性

1、命令chattr

Usage: chattr [-RVf] [-+=AacDdeijsSu] [-v version] files...
常用选项的含义如下:

A: 增加该属性后,表示文件或目录的atime将不可修改。

s:增加该属性后,会将数据同步写入磁盘。

a:增加该属性后,表示只能追加不能删除,非root用户不能设定该属性。

c:增加该属性后,表示自动压缩该文件,读取时会自动解压。

i:增加该属性后,表示文件不能删除、重命名、设定链接、写入以及新增数据。

例如:
选项i使用
#chattr +i dir

touch dir/hello

touch: cannot touch `dir/hello': Permission denied
#chattr -i dir
即可成功创建

2、命令lsattr

(list attribute),该命令用于读取文件或目录的特殊权限
两个参数选项a和R:
a:连同隐藏的文件一同列出。
R:连同子目录的数据一同列出。

3、文本加密

加密:

vi txt

按下ESC键,输入":X" 输入密码,即可查看
去密:

vi txt

按下ESC键,输入 ":set key="

七、常用命令

1 、 #stat txt

获得文件atime、mtime、ctime的时间。

atime: access time

mtime: modfiled time

ctime: change time

2、 # du

du [-abckmsh] [文件或者目录名]

-b: 单位为B

-k:单位为KB

-m: 单位为MB

-h :系统自动调节单位

-s :只列出总和

3、 # blkid

/dev/sda1: UUID="f709e213-bd19-45db-a2fd-e922acfe76cd" TYPE="ext4"

/dev/sda5: UUID="9e7ecb72-1308-4372-8ef6-fd9c085a9901" TYPE="swap"

/dev/sdb: UUID="67e88727-b31d-4a8a-b308-c7e879d47622" TYPE="ext4"

可以查看分区类型, /etc/fstab 下可以挂载硬盘。

4、 # sed

(1)、打印某行

sed -n '2'p /etc/passwd //打印第2行

sed -n '1,$' /etc/passwd //打印所有行

(2)、打印包含某个字符串的行

sed -n '/root/'p test.txt

(3)、直接修改文件内容

#sed -i 's/xx/yy/g' test.txt // 将test.txt 文件中的xx直接修改成yy

5、空行&结尾&

‘^’ : 表示行的开始;

‘$’ : 表示行的结尾;

'^$':表示空行;

6、 # awk (兼具sed的所有功能)

(1)、截取文档中的某个段

head -n2 test.txt | awk -F ':' '{ print $1}'

-F用于设置分隔符,在未指定-F选项时,默认采用空格或tab作为分割标志。其中1代表第一个字段,并且0则表示整行数据。

print 除了默认输出之外...还可以打印自定义内容...但是自定义内容必须使用双引号标记以确保正确性...例如print(\"Hello, world!\")展示了如何正确使用双引号。

head -n2 test.txt | awk -F ':' '{print 1"#"2"uu"$3}'

(2)条件操作符

awk -F ':' '$3=="0"' /etc/passwd

除了这些之外,在进行数值比较时(尤其是涉及> ,>=,<,<=,!=等运算符),如果将被比较的数值用双引号括起来(即使用"'"),那么awk不会将其视为数值而是视为字符。因此,在这种情况下无需加双引号。

awk -F ':' '{if(3=="0") {print 0} }' /etc/passwd

如果第三个字段是0,则打印第三行。

八、小技巧

1、建立一个swap文件增加虚拟内存

在分区配置中通常建议将虚拟内存容量设定为实际物理内存容量的两倍。当实际物理内存达到或超过4GB时,请考虑将虚拟内存分配8GB以满足日常应用需求。

增加虚拟磁盘的思路: 建立swapfile----> 格式化swap格式----->启用该虚拟磁盘。

(1)、建立swapfile

#dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024

建立1.1Gb的文件。

(2)、格式化

mkswap -L swap_new -f /tmp/newdisk

#free -m //查看原本swap交换空间

(3)、启用该swap空间

#swapon /tmp/newdisk

free -m //查看增加后的swap空间

2、环境变量与个人变量的配置

(1)、允许系统内所有用户登录后都能使用该变量。

vi /etc/profile

eg: 加入 export myname=mlkk

执行: source /etc/profile 则切换到其他用户该变量依然有效

(2)、仅允许当前用户使用该变量

在用户的.bashrc文件中添加到最后一行设置环境变量myname为mlkk,并加载.bashrc脚本。

3、两个网口互通

场景: eth0 10.0.1.12 ,eth1 192.168.1.1

eth0 连接了互联网,eth1 没有,

现在有另外一台和eth1是互通的,如何使其可以访问互联网

则:

执行

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

命令1目的是:打开路由转发功能

该命令的主要功能是使用iptables对nat表进行IP转发操作。其中,“-o”指定默认出口接口,“MAS*”则表示AEP-TNA(AES-Nat)技术中的相关参数设置。

该命令的主要功能是使用iptables对nat表进行IP转发操作。其中,"-o"指定默认出口接口,"MAS*"则表示AEP-TNA(AES-Nat)技术中的相关参数设置。

全部评论 (0)

还没有任何评论哟~