今天我们来学习一下Linux的基本命令

0.LINUX的命令格式

命令 选项 参数
ls -a /home

###1.软件管理相关命令
Debian平台,代表作Ubuntu
dpkg:用来安装离线安装包,不会自动安装依赖
apt:可以离线或者在线安装软件,并且会自动安装依赖
.deb:基于Debian平台的软件安装包

Fedora平台,代表作CentOS
rpm:用来安装离线安装包,不会自动安装依赖
yum: 可以离线或者在线安装软件,并且会自动安装依赖
.rpm:基于Fedora平台的软件安装包

安装软件的三种方式

  1. 下载离线安装包
    dpkg/rpm
#dpkg的相关用法
dpkg -i package.deb     	#安装包
dpkg -r package         	#删除包
dpkg -P package         	#删除包(包括配置文件)
dpkg -L package         	#列出与该包关联的文件
dpkg -l package         	#显示该包的版本
dpkg --unpack package.deb  	#解开deb包的内容
dpkg -S keyword            	#搜索所属的包内容
dpkg -l                    	#列出当前已安装的包
dpkg -c package.deb        	#列出deb包的内容
dpkg --configure package   	#配置包
#rpm的相关用法实例
rpm -hvi dejagnu-1.4.2-10.noarch.rpm 	#安装软件
rpm -qi dejagnu-1.4.2-10.noarch.rpm		#显示软件安装信息
rpm -aq									#列出安装的所有包
rpm -e vsftpd							#卸载
rpm -ql vsftpd							#查询安装路径
rpm -qi vsftpd							#查看已安装的软件信息
rpm -qd vsftpd							#查询已安装软件的文档位置信息

其他参数
-a	查询所有套件。
-b	<完成阶段><套件档>+或-t <完成阶段><套件档>+  设置包装套件的完成阶段,并指定套件档的文件名称。
-c	只列出组态配置文件,本参数需配合"-l"参数使用。
-d	只列出文本文件,本参数需配合"-l"参数使用。
-e	<套件档>或--erase<套件档>  删除指定的套件。
-f	<文件>+  查询拥有指定文件的套件。
-h	或--hash  套件安装时列出标记。
-i	显示套件的相关信息。
-i	<套件档>或--install<套件档>  安装指定的套件档。
-l	显示套件的文件列表。
-p	<套件档>+  查询指定的RPM套件档。
-q	使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
-R	显示套件的关联性信息。
-s	显示文件状态,本参数需配合"-l"参数使用。
-U	<套件档>或--upgrade<套件档> 升级指定的套件档。
-v	显示指令执行过程。
-vv	详细显示指令执行过程,便于排错。
-addsign		<套件档>+  在指定的套件里加上新的签名认证。
--allfiles		安装所有文件。
--allmatches	删除符合指定的套件所包含的文件。
--badreloc		发生错误时,重新配置文件。
--buildroot		<根目录>  设置产生套件时,欲当作根目录的目录。
--changelog		显示套件的更改记录。
--checksig		<套件档>+  检验该套件的签名认证。
--clean			完成套件的包装后,删除包装过程中所建立的目录。
--dbpath		<数据库目录>  设置欲存放RPM数据库的目录。
--dump			显示每个文件的验证信息。本参数需配合"-l"参数使用。
--excludedocs	安装套件时,不要安装文件。
--excludepath	<排除目录>  忽略在指定目录里的所有文件。
--force			强行置换套件或文件。
--ftpproxy		<主机名称或IP地址>  指定FTP代理服务器。
--ftpport		<通信端口>  设置FTP服务器或代理服务器使用的通信端口。
--help			在线帮助。
--httpproxy		<主机名称或IP地址>  指定HTTP代理服务器。
--httpport		<通信端口>  设置HTTP服务器或代理服务器使用的通信端口。
--ignorearch	不验证套件档的结构正确性。
--ignoreos		不验证套件档的结构正确性。
--ignoresize	安装前不检查磁盘空间是否足够。
--includedocs	安装套件时,一并安装文件。
--initdb		确认有正确的数据库可以使用。
--justdb		更新数据库,当不变动任何文件。
--nobulid		不执行任何完成阶段。
--nodeps 		不验证套件档的相互关联性。
--nofiles		不验证文件的属性。
--nogpg			略过所有GPG的签名认证。
--nomd5			不使用MD5编码演算确认文件的大小与正确性。
--nopgp			略过所有PGP的签名认证。
--noorder		不重新编排套件的安装顺序,以便满足其彼此间的关联性。
--noscripts		不执行任何安装Script文件。
--notriggers	不执行该套件包装内的任何Script文件。
--oldpackage	升级成旧版本的套件。
--percent		安装套件时显示完成度百分比。
--pipe			<执行指令>  建立管道,把输出结果转为该执行指令的输入数据。
--prefix		<目的目录>  若重新配置文件,就把文件放到指定的目录下。
--provides		查询该套件所提供的兼容度。
--queryformat	<档头格式>  设置档头的表示方式。
--querytags		列出可用于档头格式的标签。
--rcfile		<配置文件>  使用指定的配置文件。
--rebulid		<套件档>  安装原始代码套件,重新产生二进制文件的套件。
--rebuliddb		以现有的数据库为主,重建一份数据库。
--recompile		<套件档>  此参数的效果和指定"--rebulid"参数类似,当不产生套件档。
--relocate		<原目录>=<新目录>  把本来会放到原目录下的文件改放到新目录。
--replacefiles	强行置换文件。
--replacepkgs	强行置换套件。
--requires		查询该套件所需要的兼容度。
--resing		<套件档>+  删除现有认证,重新产生签名认证。
--rmsource		完成套件的包装后,删除原始代码。
--rmsource		<文件>  删除原始代码和指定的文件。
--root			<根目录>  设置欲当作根目录的目录。
--scripts		列出安装套件的Script的变量。
--setperms		设置文件的权限。
--setugids		设置文件的拥有者和所属群组。
--short-circuit	直接略过指定完成阶段的步骤。
--sign			产生PGP或GPG的签名认证。
--target		<安装平台>+  设置产生的套件的安装平台。
--test			仅作测试,并不真的安装套件。
--timecheck		<检查秒数>  设置检查时间的计时秒数。
--triggeredby	<套件档>  查询该套件的包装者。
--triggers		展示套件档内的包装Script。
--verify		此参数的效果和指定"-q"参数相同。
--version		显示版本信息。
--whatprovides	<功能特性>  查询该套件对指定的功能特性所提供的兼容度。
--whatrequires	<功能特性>  查询该套件对指定的功能特性所需要的兼容度。

2.源代码安装

#1.下载源代码或者通过SFTP上传
wget http://mek.plus:8000/file/python3.9.6.tar.gz
#2.解压
tar -zxvf python3.9.6.tar.gz
#3.进入已解压的文件夹
cd python3.9.6.tar.gz
#4.执行./configure --prefix=url
./configure --prefix=url 进行配置
	#--prefix是用来指定安装路径
	#配置的目的是查看当前系统的环境是否能够安装软件,在此过程中可能会出现错误提示,需要安装第三方的依赖包
	#在此过程中,会提示需要安装第三方的依赖包,此时需要手动的运行命令安装依赖
	#依赖安装完成以后,再次执行 ./configure
	#configure命令执行成功以后,会生成一个新的 Makefile 文件
#5.安装
sudo make && sudo make install 
#&&是把两个命令连起来,上一个执行成功在执行下一个

3.在线安装

#apt命令
sudo apt update 	#列出所有可更新的软件清单命令
sudo apt upgrade 	#升级已安装的软件包
apt list 			#列出所有软件包
sudo apt install <package_name>		#安装指定的软件命令
sudo apt install <package_1> <package_2> <package_3>		#安装多个软件包
sudo apt update <package_name>		#更新指定的软件命令
sudo apt show <package_name>		#显示软件包具体信息,例如:版本号,安装大小,依赖关系
sudo apt remove <package_name>		#删除软件包命令
sudo apt autoremove					#清理不再使用的依赖和库文件
apt list --installed				#列出所有已安装的包
apt list --all-versions				#列出所有已安装的包的版本信息
#yum用法
yum check-update					#列出所有可更新的软件清单命令
yum update							#更新所有软件命令
yum install <package_name>			#仅安装指定的软件命令
yum update <package_name>			#仅更新指定的软件命令
yum list							#列出所有可安裝的软件清单命令
yum remove <package_name>			#删除软件包命令
yum search <keyword>				#查找软件包命令
yum clean packages					#清除缓存目录下的软件包
yum clean headers					#清除缓存目录下的 headers
yum clean oldheaders				#清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
#清除缓存目录下的软件包及旧的 headers

2.目录及文件相关命令

cd / 	#切换目录,后面跟路径
cd ~ 	#切换到用户目录
cd ..	#返回上级

ls		#当前目录下文件夹及文件
ls -a	#当前目录下所有文件夹及文件,包括隐藏
ls -d	#仅列出目录
ls -l	#显示详细信息,如创建时间、体积

pwd		#打印当前路径

mkdir test					#创建文件夹
mkdir -p test1/test2/test3 	#依次创建文件夹
mkdir -m 711 test			#创建文件夹时设置权限

rmdir test					#删除空文件夹
rmdir -p tets				#连同上级空文件夹一起删除


cp ~/.bashrc /tmp/bashrc	#复制.bashrc到 /tmp并重命名bashrc
cp -i ~/.bashrc /tmp/bashrc	#覆盖时提醒

fm test						#删除
fm -i test					#询问
fm -r test					#递归删除,常用于目录
rm -rf						#用来移除文件或者文件夹 r:递归删除 f:强制删除

touch <filename>			#用来创建一个空的文件