Linux必备知识(七)

导航Linux文件系统

ls

列出当前目录情况,一般蓝色表示目录,白色是文件,绿色是可执行文件。着色当然不完全一样,取决于shell设置,但经常是这种着色。

ls 可以跟目录如 ls /home,ls ~/test

~ 表示用户主目录,. 表示当前目录,.. 表示父目录。

一些基本命令:cat,cd ,pwd等。

我们查看一下Linux目录。

ls -l /

实际上有专门介绍Linux标准目录结构的PDF文档,描述了Linux文件的层次结构,全部阅读可能会让人睡觉,以下是一些要点: 

/bin,类型是 l ,说明是个链接文件,链到 /usr/bin

/boot,如同它的名字,是启动使用的,除非有非常充足的理由,否则不要动。

/etc,非常重要的目录,应用程序在系统范围内配置。该文件夹应该经常备份。顺便提一下,用户本身的配置文件可以放在用户主目录中,这些配置将只对当前用户有效。

/home,目录存系统中各个用户的主目录

/root,实际是root用户的主目录。

/mnt和/media,用来挂载外部存储甚至内部存储,比如硬盘空间满了,再挂一个硬盘使用,新挂硬盘需要一个挂载点,一般就在这两个目录的某一个下面。但一般而言,/mnt挂载的存储相对“永久”,比如增加一块硬盘、增加网络存储等。 而/media目录相对“临时”,比如U盘。

/opt,也有点像前面的/mnt和/media,但解释起来有点费劲,因为它取决于上下文。

创建目录用 mkdir

mkdir firstfolder

mkdir secondfolder

mkdir -p thirdfolder/subdir1/subdir2

同时多级目录使用参数 p ,表示父目录的意思,如果不加的话,会提示不存在父目录而失败。

删除使用rm 

rm testfile.txt

rm -r thirdfolder/

删除目录使用参数 -r 

mv有两种用途:重命名和移动

重命名:mv myfolder/ renamed

移动:mv renamed secondfolder/


Arch用户存储库(AUR)

(Arch User Repository,AUR)是为用户而建、由用户主导的 Arch 软件仓库。

https://aur.archlinux.org/

在官方存储库是找不到chrome的,我们可以到该aur网站搜索google chrome,找到某个软件包后可以下载快照。

wget https://aur.archlinux.org/cgit/aur.git/snapshot/google-chrome.tar.gz

下载的包非常小,显示不是google chrome软件本身,只是如何构建安装google chrome的脚本。

我们先提取:

tar -xvf google-chrome.tar.gz

解压后看到 google-chrome目录,查看该目录下的PKGBUILD文件。这是一个好习惯。

cd google-chrome

cat PKGBUILD

构建软件包需要很多依赖项。先安装。

sudo pacman -S base-devel

选择安装所有(all)

确保在google-chrome目录下,执行:

makepkg -s

生成了 zst文件、deb文件等。

继续安装:

sudo pacman -U google-chrome-<具体的版本号>-1-x86_64.pkg.tar.zst

没有错误的话,就完成了google chrome的安装。

介绍另外一种AUR软件包的方法:yay方法。

用yay必须先安装yay,这好像是先有鸡才有蛋的悖论,我们自然可以按照前面的方法安装yay。这里我们用git方法。

先安装git(如果还没安装的话):

sudo pacman -S git

再下载yay:

git clone https://aur.archlinux.org/yay.git

下载后进入yay目录,能看到只有单独的一个PKGBUILD文件

与前面类似安装yay,执行:

makepkg -s 生成相关文件,包含zst文件

sudo pacman -U yay-<version-number>-x86_64.pkg.tar.zst

这样就完成了yay的安装。

which yay 能看到已有yay了。

下面使用yay安装软件包。非常简单:

yay linode-cli

会搜索到软件包让你选择,这里选1,然后再选择是否在安装后删除依赖包,这里选是。以及其他一些问题。就完成了linode-cli的安装。

yay还有其他用法:

yay -Syu

这条命令类似pacman同样的用法,用于更新已安装在系统内的软件包。


Pacman命令

pacman是arch linux以及基本arch linux发行版的官方包管理器。

像许多Linux包管理器一样,pacman从存储库获取软件包,这些存储库是在线服务器,存储您可以安装的软件包。在本地,存有类似缓存的索引,它存有您订阅的存储库所有可用 软件包的信息。

先刷新缓存索引:

sudo pacman -Syy

执行成功后,与存储库服务器同步更新core、extra、community等数据库。

存储库服务器的列表是可以查看的:

cat /etc/pacman.d/mirrorlist

这个文件挺大,当我们执行同步或安装软件包时,它从顶部开始逐步向下。我们可以自定义服务器列表以及同步和安装更快。

用pacman安装软件,很简单:

sudo pacman -S htop

安装了htop软件包。删除呢?将大写S改成R即可。

sudo pacman -R htop 

前面的安装是事先知道了软件包名称。如果我们不清楚软件名称,想搜索如何做?

  1. 我们可以访问 https://archlinux.org查找。 比如我们搜索pygame,得到包名称是 python-pygame。接着我们就可以在命令行中输入:sudo pacman -S python-pygame
  2. 命令行搜索,用小写ssudo pacman -Ss pygame小写s表示搜索,查到的结果与网站上搜到的一致。

我们不必安装每个包都执行一条命令,合起来也是可以的:

sudo pacman -S htop tmux python-pygame

可以查询孤立不用的包,而后可以删除它们。

pacman -Qdt 

Q表示查询,d表示跳过依赖包,t表示是孤立包。 

查到之后通过sudo pacman -R XXX 删除。

更新系统的软件包:

sudo pacman -Syu

前面我们讲到用 sudo pacman -Syy 更新本地索引,而且是他是从头至下搜服务器的,如果顶部的服务器不可用了,必须要等到返回404后才会搜下一个服务器,这可能会是个漫长的过程。我们可以生成全新的列表。 

访问:

https://archlinux.org/mirrorlist

选择自己的国家china,然后生成mirrorlist,再进行替换:

cd /etc/pacman.d

suco cp mirrorlist mirrorlist.bak

sudo truncate -s 0 mirrorlist

备份原mirrorlist文件,再截取为0,然后用vim或nano打开 mirrorlist,将生成的mirrorlist复制过去。或再进行一些服务器的选择编辑。

替换完成后,可以再同步索引:

sudo pacman -Syy


APT命令

apt是debian、ubuntu发行版上的软件包管理器。

sudo apt update

更新软件包索引,获取最新的软件包列表。

 sudo apt install tmux

会有提示是否安装 Y/n,一个大写Y和小写n,可以输入y,也可以直接回车,大写字符是作为默认值的。

它会自动安装tmux软件包,如果有依赖,apt也能自动帮我们安装好。

sudo apt install tmux htop git

可以同时安装多个包。

sudo apt remove htop

删除htop包

前面我们知道包的具体名称,有时候我们并不清楚,需要搜索:

sudo search vim

实际更新系统中安装的软件包:

sudo apt upgrade

或 

sudo apt dist-upgrade

这两个命令有什么区别?

区别在于upgrade会安装所有的更新,而dist-upgrade则会针对特定版本安装更新。一般推荐dist-upgrade。

apt也有一个服务器源列表。

cat /etc/apt/sources.list

我们可以编辑该文件,但要非常小心,出错可能导致不能正常安装软件了。

可以:

。。。

http://mirrors.linode.com/debian buster main 

。。。

改成:

。。。

http://mirrors.linode.com/debian buster main non-free

。。。

默认main不包含不免费软件,我们可以加上non-free,列出包括非免费版的更多软件包。

我们也可以添加更多的服务器资源列表,也可以新建sources list。比如阿里云、清华大学镜像站等。 

不管怎么样,修改sources.list后,应该马上运行一下sudo apt updateg更新一下本地索引。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注