linux换源
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
linux下多版本设置
#设置多版本优先级
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 100
update-alternatives --install /usr/bin/python python /usr/bin/python3.6 200
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 300
#打印结果:
update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python (python) in auto mode
root@6dd5bcd1cc5d:/var/lib/apt/lists# python
Python 3.8.0 (default, Feb 25 2021, 22:10:10)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
#查看设置好的优先级
update-alternatives --config python
#打印结果:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.8 300 auto mode
1 /usr/bin/python2.7 100 manual mode
2 /usr/bin/python3.6 200 manual mode
3 /usr/bin/python3.8 300 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives --install /usr/bin/pip pip /usr/bin/pip
#查看设置好的优先级
update-alternatives --config pip
#移除pip2
apt remove python2-pip
#查看设置好的优先级
update-alternatives --config python
#打印结果:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.8 300 auto mode
1 /usr/bin/python2.7 100 manual mode
2 /usr/bin/python3.6 200 manual mode
3 /usr/bin/python3.8 300 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives --install /usr/bin/pip pip /usr/bin/pip
#查看设置好的优先级
update-alternatives --config pip
#移除pip2
apt remove python2-pip</pre>
背景
经常在 Linux 系统上开发,尤其是 Ubuntu 系统,因此对系统的文件结构进行一个整理,便于开发时使用正确的方式。
目标结构
[图片上传失败...(image-f7b1f6-1673277509673)]
在终端中使用 tree 指令,查看根目录结构,输出如下
/
├── bin #bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令,如 ps、cat、cp、echo 等常用的系统指令
├── boot #这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件
├── cdrom ,
├── dev #dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的
├── etc #etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
├── home #用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
├── initrd.img -> boot/initrd.img-5.4.0-73-generic
├── initrd.img.old -> boot/initrd.img-5.4.0-72-generic
├── lib #lib 是 Library(库) 的缩写,这个目录里存放着系统最基本的动态连接共享库,几乎所有的应用程序都需要用到这些共享库
├── lib64 #
├── lost+found #这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
├── media #linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
├── mnt #系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
├── opt #opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。默认是空的。
├── proc #proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息,这个目录的内容不在硬盘上而是在内存里。
├── root #该目录为系统管理员,也称作超级权限者的用户主目录。
├── run #是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
├── sbin #s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
├── snap #snap应用程序的程序文件
├── srv #该目录存放一些服务启动之后需要提取的数据。
├── swapfile #
├── sys #系统中的设备和文件层次结构。文件夹中存储系统信息,用户需要的信息也从中调用。
├── tmp #tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
├── usr #usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
├── var #var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
├── vmlinuz -> boot/vmlinuz-5.4.0-73-generic
└── vmlinuz.old -> boot/vmlinuz-5.4.0-72-generic
补充
/usr/bin:系统用户使用的应用程序与指令。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。</pre>
ubuntu常用指令
[图片上传失败.
查看当前文件夹下的每个文件大小
du -d 1 -h
查看当前磁盘的大小信息
df -h
常用快捷键
ctrl+L #清屏
vim file.txt #打开文件后, :wq保存退出,:q退出 :set nu显示行号
获取当次操作有效的管理员权限
sudo <命令> <参数>
文件/文件夹管理常用命令
#显示当前路径
pwd
#切换目录
cd <文件夹相对路径> #进入到指定目录
cd .. #进入到当前目录的上一级目录
cd - #进入上一次所采的目录
cd ~ #进入当前用户的主目录
#列出目录下所有文件
ls
ls <文件夹相对路径> #列出指定目录下的文件和文件夹
ls <文件夹相对路径> -l #列出文件/文件夹的详细信息
ls <文件夹相对路径> -lh #列出文件/文件夹的详细信息 以K,M,G 格式显示,方便查看
#创建文件夹
mkdir <文件夹名称> #创建指定名称的文件夹
#拷贝
cp <原始路径> <目标路径> #将原始路径的文件复制到目标路径
cp -i <原始路径> <目标路径> #将原始路径的文件复制到目标路径,覆盖前给出提示(推荐)
cp -r <原始路径> <目标路径> #将原始路径下所有文件夹及文件夹下的文件复制到目标路径下
#移动
mv <原始路径> <目标路径> #将原始路径的文件移动到目标路径
#删除指定文件
rm <文件名>
rm -r <文件夹名> #删除指定目录下的所有文件和文件夹
rm -f <文件夹名> #强制删除指定文件夹
rm -rf <文件夹名> #强制删除指定目录下的所有文件和文件夹
rm -rf * #非常危险的指令,不要使用!!!</pre>
应用安装卸载常用命令
安装默认路径
#Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的
/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32。
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
/opt:用户级的程序目录,根目录下的opt 给主机安装额外的软件,使得其他用户可用,可以理解为D:/Software,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。
#apt命令下载的软件包默认保存在"/var/cache/apt/archives"目录下
#apt命令默认将软件安装在"/usr/share"目录下
#可执行文件默认安装在"/usr/bin"目录下
#库文件默认安装在"/usr/lib"目录下
#配置文件默认安装在"/etc"目录下
#下载文件默认会保存到"~/Downloads"目录下
apt在线安装
#更新安装源
sudo apt update #从所有软件安装源里更新可安装软件信息列表
#升级
sudo apt upgrade #升级所有可升级的软件包
#安装
sudo apt install <软件包名称> #安装指定软件包
sudo apt -y install <软件包名称> #安装指定软件包,再命令行交互式提示[Y/N]时自动输入y
sudo apt -no-install-recommends install <软件包名称> #安装指定软件包,且避免安装非必须文件
#移除
sudo apt remove <软件包名称> #移除指定的软件包
sudo apt purge <软件包名称> #移除指定的软件包,同时移除相关配置文件
#清理
sudo apt autoremove #移除所有曾被自动安装但是现在已经无任何依赖关系的软件包
sudo apt clean #删除所有已经下载的软件包
#编辑源列表
sudo gedit /etc/apt/sources.list
#修复依赖损坏 非常神奇有用的指令
sudo apt-get install -f</pre>
dpkg离线安装.deb包
#.deb格式 软件包安装
sudo dpkg -i <安装包文件名>.deb
#.deb格式 软件包卸载
sudo dpkg -r <软件包名称></pre>
打包解包命令
#打包.gzip格式
tar -czf <文件名>.tar.gz./* #将当前目录下所有文件压缩打包
#解包.gzip格式
tar -xzf <文件名>.tar.gz #将指定文件解压缩包
#后缀 -c 实现打包功能
#后缀 -x 实现解包功能
#后缀 -z 实现.gzip格式的压缩解压功能
#后缀 -f 指定文件名,这个参数必须放在最后
#解包.zip格式
unzip <文件名>.zip
#解包.rar格式
sudo apt install unrar #先安装unrar
unrar <文件名>.rar #解压</pre>
常用信息查询命令
| 功能 | 命令行 |
| 查看内核版本 | uname -a |
| 查看ubuntu版本 | cat /etc/issue |
| 查看CPU信息 | cat /proc/cpuinfo |
| 查看USB设备 | lsusb |
| 查看硬盘剩余空间 | df -h |
| 查看进程占用资源的实时情况 | top |
| 显示有线网卡当前连接信息(常用于查ip) | ifconfig eth0 |
| 显示无线网卡当前连接信息(常用于查ip) | ifconfig wlan0 |
| 查询当前系统正在通过TCP/IP协议监听的进程信息 | netstat -lt |
软链接命令ln
这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s 是代号(symbolic)的意思。具体用法是:
#注意不需要提前创建目标文件路径
#创建软连接
ln -s 源文件 目标文件
#举例
ln -s /home/zxl/DATA data
ln -s log2013.log link2013</pre>
当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
有两点要注意:
第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又软链接 和硬链接两种,
软链接ln -s xx xx ,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,<mark style="box-sizing: border-box; background: rgb(255, 255, 0); color: rgb(0, 0, 0);">类似于Windows操作系统中的快捷方式</mark>,
硬链接ln xx xx,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls -l命令去察看,就可以看到显示的link的路径了。
#删除软连接
rm -rf 软链接地址
#举例
rm -rf data</pre>
上述指令中,软链接地址最后不能含有“/”,当含有“/”时,删除的是软链接目标目录下的资源,而不是软链接本身。
#修改软连接
ln -snf /home/zxl/DATA data
linux 的远程链接
装好linux系统之后,Windows用户单独安装xshell远程连接工具
通过ip addr show 查看linux的网络IP信息</pre>