本文旨在为Linux初学者提供一份Linux常用命令总结。我将介绍一系列常用的命令及其用法,包括文件和目录相关操作、系统管理、进程控制、网络操作等方面。通过学习这些命令,读者将能够更好地管理和操作Linux系统,提高工作效率。
在本文中,我将详细讲解每个命令的作用和具体用法,并提供丰富的示例,以帮助读者更好地理解和应用这些命令。我将从简单的基础命令开始,逐步深入,涵盖了广泛而实用的命令。不仅如此,我还将介绍一些常见的技巧来帮助读者充分提高以提高读者的学习效率。
让我们一起开始探索Linux的世界吧!相信本文能为你提供实用的知识和技巧,助你在Linux的舞台上腾飞!
Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
目前市面上较知名的Linux发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、TurboLinux、BluePoint、RedFlag、Xterm、SlackWare等。
├── / # 根目录
├── /bin # 存放着最经常使用的命令。
├── /boot # 存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
├── /dev # 存放Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
├── /etc # 存放所有的系统管理所需要的配置文件和子目录。
├── /home # 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
├── /lib # 存放系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
├── /lib64 # 存放64位库文件。
├── /media # 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
├── /mnt # 让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
├── /opt # 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
├── /proc # 该目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
├── /root # 该目录为系统管理员,也称作超级权限者的用户主目录。
├── /run # 存放系统运行时所产生的临时文件。
├── /sbin # s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
├── /srv # 该目录存放一些服务启动之后需要提取的数据。
├── /sys # 系统所使用的目录。
├── /tmp # 该目录用于存放一些临时文件。
├── /usr # 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
└── /var # 存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
Linux命令基本格式:command [-options] [parameter]
command:命令名,即命令本身,也就是相应功能的英文单词或单词的缩写;
-options:命令的一些选项,可通过选项控制命令的行为细节,可选;
parameter:命令的参数,多数用于命令的指向目标等,可能是零个、一个或者多个,可选。
命令的本质:可行性程序,类似于windows中的.exe文件
注:下文中并没有列出所有命令的所有选项,只是列出一部分常用选项供读者参考,无选项并不代表该命令真的无选项,如果想要查看命令具体信息可以点击以下链接查看Linux手册。
w3cschool——Linux手册
目录其实就是Windows中的文件夹,Linux中统一用目录来表述。
下文中目录路径如无特殊说明,则可以是相对路径,也可以是绝对路径,并且支持特殊路径符。
当前目录: .
上一级目录:. .
home目录:~
绝对路径的写法一定由根目录“/”写起,例如/usr/local/mysql 这就是绝对路径。
路径的写法不是由根目录“/”写起,例如,首先用户进入到 / 然后再进入到 home ,命令为 cd /home 然后 cd test 此时用户所在的路径为 /home/test 。第一个cd命令后跟 /home 第二个 cd 命令后跟 test ,并没有斜杠,这个test是相对于/home 目录来讲的,所以叫做相对路径。
选项:(可省略,默认以平铺的形式显示文件和目录名称)
-a:显示所有内容,包括隐藏文件
-l:以列表的形式显示
-h:显示文件大小单位,必须和 -l 组合使用
参数:目录路径(可省略,默认显示当前工作目录下的内容)
当前工作目录:执行命令时所在的目录,用户登录后的工作目录默认为home目录。
home目录:每个Linux操作用户再系统中的个人账户目录,路径在:/home/用户名。
选项:无
参数:要切换到的目录路径(可省略,默认切回home目录)
选项:无
参数:无
选项:(可省略,默认只能创建单个目录)
-p:一次性创建多个层级目录
参数:新目录名(不可省略)
普通用户创建新目录要在home目录下,否则会显示权限不够。
语法:touch 参数
选项:无
参数:文件路径(不可省略)
两种方法判断是文件还是文件夹:
- 文件名以白色显示,文件夹名以蓝色显示。
- 以列表形式显示内容,该行以d开头表示文件夹,以 - 开头表示文件。
注:以列表形式显示内容,最前面十位为槽,表示文件夹的权限信息,具体请看权限管理部分
选项:(可省略,默认只能复制文件)
-r:复制目录
参数:(不可省略)
路径1:被复制的文件或目录
路径2:要粘贴到的路径(可重命名)
选项:无
参数:(不可省略)
路径1:被移动的文件或目录
路径2:要移动到的路径(可重命名)
选项:(可省略,默认只能删除文件)
-r:可删除文件或目录
-f:强制删除(不弹出提示确认信息)
参数:(不可省略)
路径1:要删除的第1个文件或目录路径
路径2:要删除的第2个文件或目录路径
. . .
路径N:要删除的第N个文件或目录路径
注意:普通用户删除内容不会弹出提示信息,只有root管理员删除内容才会有提示,所以普通用户不需要-f选项
该命令支持通配符来模糊匹配
含义:匹配任意内容,包含空
示例:
test* :表示匹配任何以test开头的内容
*test :表示匹配任何以test结尾的内容
*test*:表示匹配任何包含test的内容
含义:将文件或目录链接到其他位置,类似于Windows系统中的快捷方式
选项:
-s:创建软链接
参数:
参数1:被链接的目标
参数2:要链接到的目的地
选项:无
参数:文件路径(不可省略)
选项:无
参数:文件路径(不可省略)
按空格翻页,按 q 退出查看。
选项:(不可省略)
-name:按文件名搜索
-size:按文件大小搜索
参数:(不可省略)
参数1:起始路径
参数2:文件名或者文件大小
示例:
find / -size +100G 表示从根目录开始查找大于100G的文件
find / -name “test” 表示从根目录开始查找文件名为test的文件
文件大小表示方法:
大于:+
小于:-
文件单位:(注意:k小写,MG大写)
k:kb
M:MB
G:GB
选项:无
参数:命令名
选项:(可省略)
-n:表示在结果中显示匹配的行的行号
参数:(不可省略)
参数1:要筛选的关键字
参数2:文件路径
当关键字中有空格或其他特殊符号时,必须使用引号包围,无特殊符号可以不使用引号,但建议养成习惯使用引号包围
选项:(不可省略)
-c:统计bytes数量
-m:统计字符数量
-l:统计行数
-w:统计单词数量
参数:(不可省略)
文件路径,被统计的文件,可作为内容输入端口
含义:将管道符左边命令的结果,作为右边命令的输入。
选项:无
参数:要输出的内容(不可省略)
`:被反引号包围的内容将作为命令被执行,把该命令得到的内容作为结果输出
示例:echo `pwd`
含义:将左侧命令的结果,覆盖写到右侧指定的文件中
示例:
echo “hello linux” > test.txt
含义:将左侧命令的结果,追加写到右侧指定的文件中
示例:
echo “hello linux” >> test.txt
选项:(可省略,默认只查看最后十行)
-f:表示持续跟踪
-num:表示查看尾部num行
参数:文件路径(不可省略)
选项:(可省略,默认只查看前十行)
-num:表示查看头部num行
参数:文件路径(不可省略)
选项:无
参数:文件路径(不可省略)
vim编辑器:linux中最经典的文本编辑器,vim是vi的加强版,兼容vi的所有指令,不仅能编辑文本,还具有shell程序编辑的功能
vi编辑器的三种模式:命令模式、输入模式、底线模式
使用vim命令刚打开文件时处于命令模式
进入输入模式:i
退出输入,返回命令模式:ESC
进入底线命令模式::
保存并退出:wq
注意:如果文件不存在,会自动创建
选项:(可省略,但建议带上)
- :表示切换用户后加载环境变量
参数:用户名(可省略,默认切换到root)
切换用户后,可以通过 exit 退回到上一个用户,也可以使用快捷键ctrl + d
选项:无
参数:命令名(不可省略)
注意:该命令的使用需要为普通用户配置sudo认证
为普通用户配置sudo认证可以参考本人另一篇文章:Linux普通用户配置sudo认证
选项:无
参数:无
该命令所显示的结果共7列,由:分隔,每列含义分别为:
用户名:密码(x):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)
这里的密码是不显示的,用x代替
选项:(可省略)
-g:指定用户的组,如果不写该参数,会创建同名组并自动加入,写该参数需要组已存在,已存在同名组,必须使用-g
-d:指定用户home路径,不写该参数,则home目录默认在:/home/用户名
参数:用户名(不可省略)
该命令需要root身份执行
选项:(可省略,默认删除用户时,home目录保留)
-r:删除用户的home目录
参数:用户名(不可省略)
该命令需要root身份执行
选项:无
参数:无
该命令所显示的3列信息分别为:
组名称:组认证(显示为x):组ID
选项:无
参数:用户组名(不可省略)
该命令需要root身份执行
选项:无
参数:用户组名(不可省略)
该命令需要root身份执行
选项:无
参数:用户名(可省略,默认查看当前用户)
选项:(不可省略)
-a:将用户追加至上边 -G 中提到的附加组中
-G:修改用户所属的附加群组
参数:(不可省略)
参数1:用户组名
参数2:用户名
一般固定语法:usermod -aG 用户组 用户名
含义:将指定用户加入指定用户组
该命令需要root身份执行
选项:(可省略,默认只修改该目录权限)
-R:对目录内的全部内容应用同样的操作
参数:(不可省略)
参数1:权限(可选)
参数2:文件名或目录
权限共有三种:u、g、o
示例1:chmod u=rwx,g=rx,o=x hello.txt
含义:将hello.txt文件的权限修改为rwxr-x–x
示例2:chmod -R u=rwx,g=rx,o=x test
含义:将目录test以及目录内全部内容权限设置为:rwxr-x–x
权限可以用3位数字来表示:
r = 4,w = 2,x = 1
0:无任何权限,即—
1:仅有x权限, 即–x
2:仅有w权限, 即-w-
3:有w和x权限,即-wx
4:仅有r权限, 即r–
5:有r和x权限,即r-x
6:有r和w权限,即rw-
7:有全部权限, 即rwx
示例3:chmod 751 test
即chmod u=rwx,g=rx,o=x test
注意:只有文件、目录的所属用户或者root用户可以修改权限
选项:(可省略,默认只修改该目录权限)
-R:同chmod,对文件内全部内容应用相同规则
参数:(不可省略)
参数1:用户名
参数2:用户组名
参数3:文件或目录
参数1和参数2为可选项,之间需要以:隔开
示例1:chown root hello.txt
将hello.txt所属用户修改为root
示例2:chown :root hello.txt
将hello.txt所属用户组修改为root
示例3:chown root:itheima hello.txt
将hello.txt所属用户修改为root,用户组修改为itheima
示例4:chown -R root test
将目录test的所属用户修改为root并对目录内部全部内容应用同样规则
该命令需要root身份执行
可以通过 !命令前缀,自动执行上一次匹配该前缀的命令
输入内容去匹配历史命令
搜到以后,回车可以直接执行,左右键可以得到此命令(不执行)
选项:
-y:自动确认,无需手动确认安装或卸载过程
参数:
参数1:【install、remove、search】三选一
参数2:软件名称
yum命令:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
列出所有可更新的软件清单:yum check-update
更新所有软件:yum update
仅安装指定的软件:yum install
仅更新指定的软件:yum update
列出所有可安裝的软件清单:yum list
删除软件包:yum remove
查找软件包:yum search
清除缓存目录下的软件包:yum clean packages
清除缓存目录下的 headers:yum clean headers
清除缓存目录下旧的 headers:yum clean oldheaders
Linux系统安装包格式:.RPM
Ubuntu系统安装包格式:.deb
Ubuntu软件管理器:apt管理器
yum命令需要联网,且需要root权限,也可以使用sudo提权
选项:(五选一)
start:启动
stop:关闭
status:查看状态
enable:开启开机自启
disable:关闭开机自启
参数:服务名(不可省略)
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也被称为:服务
NetworkManager:主网络服务
network:副网络服务
firewalld:防火墙服务
sshd,ssh:FinalShell远程登陆Linux使用该服务
选项:(可省略)
-d:用于日期计算
参数:+格式化字符串(可省略)
%Y :年
%y :年份后两位数字
%M :月份
%d :日
%H :小时
%M :分钟
%S :秒
%s :自1970-01-01 00:00:00 UTC 到现在的秒数(时间戳)
示例1:date -d ”+1 day“
含义:显示时间在当前时间基础上加1天
示例2:date “+%y-%m-%d %H:%M:%S”
含义:以“年-月-日 时:分:秒”的格式显示当前时间
hostnamectl set-hostname 新主机名
修改主机名需要root用户
选项:(可省略)
-c:检查的次数,不写该参数,则无限次持续检查
参数:ip或主机名(不可省略)
示例:ping -c 5 baidu.com
含义:检查baidu.com这个域名是否联通,并且只检查5次
选项:(可省略)
-b:后台下载,会将日志写入到当前工作目录的wget-log文件
参数:url(不可省略)
wget:非交互式的文件下载器
选项:(可省略,默认只是发送网络请求)
-O:用于下载文件,当url是下载链接时,可以使用此选项保存文件
参数:url(不可省略)
示例:curl cip.cc
含义:向该网站发起网络请求
cip.cc是一个公开的网站,可以获取本机的公网IP地址
curl命令也可用于下载文件、获取信息等
选项:
-e:显示全部进程
-f:格式化形式展示全部信息
参数:无
查看指定进程固定语法:ps -ef | grep “关键字”
选项:(可省略)
-9:强制关闭
参数:进程ID(不可省略)
类似windows的任务管理器
选项:无
参数:被查看的ip地址(不可省略)
示例:nmap 127.0.0.1
含义:查看本机的端口占用情况
nmap非Linux自带命令,需要yum install nmap来安装
固定语法:netstat -anp | grep 端口号/进程号
示例:netstat -anp | grep 22
含义:查看包含22的端口号或者进程号的占用情况
netstat非Linux自带命令,需要yum install net-tools来安装
选项:(可省略)
-h:以常用单位显示
参数:无
选项:(可省略)
-x:显示更多信息
参数:(可省略)
参数1:刷新间隔
参数2:刷新次数
固定语法:sar -n DEV num1 num2
num1:刷新间隔
num2:刷新次数
由于该命令非常复杂,建议初学者先掌握如上固定写法
常用写法:env | grep 变量名
固定写法:$变量名
结合echo命令输出PATH的值:echo $PATH
临时生效:
export 变量名=变量值
针对当前用户生效:
vim ~/.bashrc
export 变量名=变量值
source .bashrc
针对所有用户生效:
vim /etc/profile
export 变量名=变量值
source /etc/profile
添加环境变量PATH:
vim /etc/profile
export PATH=$PATH:路径
source /etc/profile
上传:rz
下载:sz 文件路径
rz和sz非Linux自带命令,需要yum install lrzsz来安装
Linux常用两种压缩格式:.tar 和 .gz
.tar文件只是简单封装,并没有压缩效果
.gz文件可以极大减小体积,起到很好的压缩效果
tar语法:tar [选项] 压缩文件名称 文件1 文件2 …
选项:
-c:创建压缩文件,用于压缩
-v:显示压缩/解压过程,用于查看进度
-x:解压模式
-f:要创建的文件或要解压的文件,-f必须处在最后一个选项
-z:gzip模式,不写该选项则为tarball格式,-z一般处于第一个选项
-C:选择解压的目的地,用于解压
zip语法:zip [选项] 文件名.zip 文件1 文件2 …
选项:
-r:如果被压缩的文件中包含文件夹是要写该参数
unzip语法:unzip [选项] 文件名.zip
选项:
-d:同-C 表示指定解压路径
固定组合:
创建tar格式的压缩文件:tar -cvf 压缩文件名.tar 文件1 文件2 …
创建gzip格式的压缩文件:tar -zcvf 压缩文件名.tar.gz 文件1 文件2 …
创建zip格式的压缩文件:zip -r 压缩文件名.zip 文件1 文件2 …
解压tar文件,并指定解压目录:tar -xvf 压缩文件名.tar -C 解压路径
解压.gz文件,并指定解压目录:tar -zxvf 压缩文件名.tar -C 解压路径
解压zip文件,并指定解压目录:unzip 文件名.zi -d 解压路径
解压文件可以不指定解压目录,默认解压至当前工作目录
本篇博客主要介绍了Linux系统的基本信息、Linux系统目录结构以及Linux常用命令和很多实用的快捷键。希望这些内容能帮助Linux初学者快速入门并逐渐掌握Linux操作系统。
在实践中不断尝试和探索,相信你会逐渐掌握更多的Linux技能。祝你在Linux学习过程中取得进步!