导航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 软件仓库。
在官方存储库是找不到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
前面的安装是事先知道了软件包名称。如果我们不清楚软件名称,想搜索如何做?
- 我们可以访问 https://archlinux.org查找。 比如我们搜索pygame,得到包名称是 python-pygame。接着我们就可以在命令行中输入:sudo pacman -S python-pygame
- 命令行搜索,用小写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后才会搜下一个服务器,这可能会是个漫长的过程。我们可以生成全新的列表。
访问:
选择自己的国家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更新一下本地索引。