Linux常用命令集
前置知识:
linux快照功能可以保存这个虚拟机某个时间点的状态,方便虚拟机出现问题时可以恢复到之前的状态
linux目录结构 根目录为/ window操作系统中文件的存放形式D:\data\work\hello.txt Linux系统中文件的存放形式 /usr/local/hello.txt 开头的/代表根目录,后面的/代表层级关系
命令:指linux操作指令,是系统内置的程序,可以以字符化的形式去使用。命令行:指linux终端,可以提供字符化的操作页面供命令执行
命令的通用格式 command [-options] [parameter] 1.命令本身 2.命令的一些选项,可以通过选项控制命令的行为细节(选项可以组合使用) 3.命令的参数,多用于命令的指向目标等
HOME目录与工作目录:Linux系统的终端,在启动的时候,默认会加载当前登录用户的HOME目录作为当前工作目录。 HOME目录:每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户
在Linux系统中文件或者文件夹前面带有 .则表示是隐藏目录(以点开头)
在使用ls -l目录显示的时候,d开头的是文件夹,-开头的是文件
Linux系统可以配置多个用户,配置多个用户组,用户可以加入多个用户组中.Linux关于权限的管控级别有2个,分别是1.针对用户的权限控制 2.针对用户组的权限控制
第一列表示文件,文件夹的权限控制信息
第三列表示文件,文件夹所属用户
第四列表示文件,文件夹所属用户组
如果命令太长一行输不下可以使用 \ 进行换行
常用命令:
ls [-a -l -h] [linux路径] 以平铺形式,列出当前工作目录下的内容 -a代表列出所有的文件(包括隐藏的文件及文件夹) -l代表文件排列的形式变成竖向排列并且显示文件的一些相关信息(选项可以组合使用 例如 -la 或 -al 或 -a -l) -h代表以易于阅读的形式列出文件的大小如K,M,G(配合-l一起,因为-l可以显示文件的相关信息,但是其文件大小的形式不方便阅读) ll是ls -l的结合形式
cd [Linux路径] 代表要切换到哪个目录下(不写参数则表示回到用户的home目录。如果当前目录下存在一个目录Desktop,则可以使用相对路径的写法例如:cd Desktop 这样也可以找到当前目录下对应的目录)特殊路径符: . 代表当前目录 cd ./Desktop 切换到当前目录下的Desktop目录等价于cd Desktop; .. 代表上一级目录 cd ../Desktop 代表切换到上一个目录中的Desktop目录中; ~ 表示home目录 cd ~/Desktop 代表切换到HOME目录下的Desktop目录 pwd 可以查看当前所在的工作目录
mkdir [-p] [Linux路径] -p代表自动创建不存在的父目录,适合创建连续多层级的目录
touch [Linux路径] touch命令无选项,表示要创建的文件路径
cat [Linux路径] 查看文件 (直接将内容全部显示出来)
more [Linux] 查看文件 (more支持翻页,如果文件内容过多,可以一页页的展示。在查看过程中,通过空格翻页 enter是按行 通过q退出查看)
cp [-r] [文件或文件夹的路径] [复制去的地方] (-r 用于复制文件夹使用,表示递归)
mv [文件或文件夹的路径] [需要移动的地方,如果目标文件不存在,则进行改名以确保目标存在] (其实这个命令也充当文件或文件夹改名)
rm [-r -f] [参数...] (-r 用于删除文件夹 -f表示强制删除[tips:root管理员删除内容会有提示,一般用户用不到-f选项] 参数可有多个,代表要删除的文件或文件夹路径) rm命令支持通配符 ,代表匹配任何内容 test* 代表匹配所有以test开头的内容 等。
which [要查找的命令] 通过which命令可以查看所使用的一系列命令的程序文件存放在哪里
find 起始路径 -name "被查找文件名" 文件名中可以使用通配符进行查找
find 起始路径 -size + | - n[kMG] + -表示大于和小于 n表示数字 kMG表示大小单位 k=kb M=MB G=GB
grep [-n] 关键字 文件路径 通过grep命令,从文件中通过关键字过滤文件行 (-n可选 表示在结果中显示匹配的行的行号) 关键字,必填,代表过滤的关键字,有空格或者特殊符号用""将关键字包围 文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
| 管道符 例子(cat itheima.txt | grep itheima 将管道符左边命令的结果作为右边命令的输入) 当然,不止cat 只要是有输出的都可以搭配管道符使用
wc [-c -m -l -w] 文件路径 统计文件的内容 (-c 统计bytes数量 -m 统计字符数量 -l 统计行数 -w 统计单词数量 [tips:-c与-m在都是英文单词情况下是相同的,当出现中文时不同,因为一个中文字符等于2byte]) 2代表两行 11代表11个单词(通过空格划分) 57代表57个字节
echo 输出的内容 无需选项只有一个参数,表示要输出的内容,复杂内容可以使用""包围(我们可以通过命令用反引号`将其包围,被包围的内容会被作为命令执行而非普通字符)
>和>> 重定向符 > 将左侧命令的结果覆盖写入到符号右侧指定的文件中 >> 将左侧命令的结果追加写入到符号右侧指定的文件中 [tips:不光echo,任何可以输出内容的都可以作为结果写入文件中]
tail [-f -num] Linux路径 使用tail命令可以查看文件尾部内容,跟踪文件的最新更改 (-f 表示持续跟踪, -num表示查看尾部多少行,不写默认10行)
vi 或 vim 文件路径 (文件路径表示的文件不存在则编辑新文件,存在则编辑已有文件){在命令模式下的一些指令 : dd或D 剪切光标所在行 数字+dd以光标所在行为准,向下剪切指定行数 p 将剪切板中的内容粘贴到光标后 P 将剪切板中的内容粘贴到光标前 x删除光标所在位置的字符 dd删除光标所在行 u 撤销操作 / 后面加上要搜索的内容,按下n向下搜索,按下N向上搜索}
su [-] [用户名] (-符号可选,表示是否在切换用户后重新加载环境变量 用户名如果省略代表root) 切换完用户后使用exit命令可以回退到上一个用户:
sudo 其他命令 (在使用其他命令之前带上sudo可以为这一条命令临时赋予root权限,但是普通用户想使用sudo必须由root为普通用户配置sudo认证)
groupadd 用户组名 (创建用户组)
groupdel 用户组名 (删除用户组)
useradd [-g -d] 用户名 (-g 指定用户的组,不指定组会创建同名组并加入,指定-g需要已经存在的组,如果已经存在同名组则必须使用-g -d指定用户HOME路径 不指定,HOME目录默认在:/home/用户名)例子: useradd test2 -g itcast -d /home/test22
userdel [-r] 用户名 (-r 删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留)
id [用户名] (用户名:被查看的用户,不提供则查看自身)
usermod -aG 用户组 用户名 (将指定用户加入指定用户组)[tips:一个用户可以存在多个组中]
getent passwd 查看当前系统中有哪些用户
chmod [-R] 权限 文件或文件夹 修改用户对文件或文件夹的权限
-R 对文件夹内的全部内容应用同样的操作
例子: chmod u=rwx,g=rx,o=x hello.txt 将文件权限修改为rwxr-x--x
例子: chmod -R u=rwx,g=rx,o=x test 将文件夹test及其文件夹内全部内容权限设置为rwxr-x--x
简便记法:r=4 w=2 x=1
chown [-R] [用户] [:] [用户组] 文件或文件夹
选项 -R 对文件内全部内容应用相同规则
选项 用户 修改所属用户
:用于分隔用户和用户组
选项 用户组 修改所属用户组
例子:chown root:itheima hello.txt 将hello.txt所属用户修改为root,用户组修改为itheima
Linux常见操作
ctrl+c 强制停止命令或退出当前命令行另起一行
ctrl+d 退出账户的登录或当进入某些重新的专属页面时也可以退出
history 查看历史输入过的命令
!py 自动执行上一次匹前缀的命令,例如上一次输入了python命令,那么这次就能匹配上,并且直接执行上一次匹配的命令
ctrl+r 输入内容去匹配历史命令 如果搜索的内容是需要的,回车键可以直接执行,键盘左右键可以得到此命令(不执行)
光标移动快捷键
ctrl+a 跳到命令开头
ctrl+e 跳到命令结尾
ctrl+ 键盘左键 向左跳一个单词
ctrl+ 键盘右键 向右跳一个单词
ctrl+l 等价于 clear
yum [-y] [install | remove | search] 软件名称 (yum需要root权限) centos的软件安装包后缀为.rpm 而ubuntu的软件安装包后缀为 .deb 其安装软件使用 apt而不是yum
-y 自动确认,无需手动确认安装或卸载过程
systemctl start | stop | status | enable | disable 服务名
提供yum安装后部分软件会自动集成到systemctl中,可以直接使用该命令管理软件,有些不会自动集成到systemctl中可以手动添加
系统内置的服务很多如:NewtorkManager 主网络服务 network 副网络服务 firewalld 防火墙服务 sshd ssh服务(xshell远程登录Linux使用这个服务)
enable 开启开机自启 disable 关闭开机自启
ln -s 参数1 参数2 在系统中创建软链接,类似于windows系统中的快捷方式
-s选项 创建软链接
参数1 被链接的文件或文件夹
参数2 要链接去的目的地
date [-d] [+格式化字符串]
-d 按照给定的字符串显示日期,一般用于日期计算
%Y 年 %y 年份后两位数字 %m 月份 %d 日 %H 小说 %M 分钟 %S 秒 %s 时间戳
例子 date +%Y-%m-%d 输出为 2024-03-14 输出两秒后的时间
# date -d "2 second" +"%Y-%m-%d %H:%M.%S"2012-11-20 14:21.31 加一天 date -d "+1 day" date -d "-1 day" +%Y%m%d # 显示前一天的日期
linux时间可能不准确可以通过该方法校准或者 使用yum -y install ntp 下载ntp程序来自动校准系统时间 然后 systemctl start ntpd 最后 systemctl enable ntpd 来实现开机自启 (这个程序会定期进行联网校准,如果感觉间隔时间长可以手动校准 ntpdate -u ntp.aliyun.com 来实现手动校准)
ifconfig等价于ip addr 用于查看主机的IP地址
ens33:centos系统的主网卡
lo:本地回环的网卡
virbr0:虚拟机专用的网卡(虚拟的)
hostname 查看主机名
hostnamectl set-hostname 主机名 修改主机名
例子:hostnamectl set-hostname begon centos
ping [-c num] ip或主机名 测试服务器是否可以连通
-c 检查的次数,不使用-c选项将无限次数持续检查
wget [-b] url 进行网络文件下载
-b 可选 后台下载,同时将日志写入到当前工作目录的wget-log文件
curl [-O] url 发起网络请求
-O 用于下载文件,当url是下载链接时,可以使用此选项保存文件
这个命令本质是发起http请求 当加上-O 等价于wget
nmap 被查看的ip地址 可以查看端口的占用情况
通过yum -y install nmap 安装nmap命令 (centos默认已安装)
原理是软件会对这个地址进行嗅探,来确定哪些端口被占用,外界可以连接
例子 nmap 127.0.0.1
netstat -anp | grep 端口号
通过yum -y install net-tools进行安装
例子:0:::3306 代表绑定在0.0.0.0 这个地址上,允许外界访问 1558代表的是进程号
ps [-e -f] 查看linux系统中的进程信息
-e 显示全部的进程
-f 以完全格式化的形式展示信息(展示全部信息)
kill [-9] 进程ID
-9 表示强制关闭进程,不使用此选项则进程是否关闭看进程自身的处理机制
top 查看cpu,内存使用情况,默认每五秒刷新异常 按q或ctrl+c退出
df [-h] 查看硬盘的使用情况
-h 以更加人性化的单位显示
iostat [-x] [num1] [num2]
-x 显示更多信息
num1 数字,刷新间隔 num2 数字,刷新几次
sar -n DEV num1 num2 (sar命令非常复杂,这是简单用法)
-n 查看网络 DEV 查看网络接口 num1 刷新间隔(默认查看一次) num2 刷新次数(默认无限)
env 查看环境变量信息
当使用cd命令时,会在path中的每一个路径中寻找是否有cd这个可执行文件(分隔符是冒号)
当你知道环境变量中的键可以通过$来取其值 例如 echo $PATH 可以输出其值 如果想在输出的值后拼接一些字符串可以使用 echo ${PATH}abc 就可以完成拼接
export 变量名=变量值 临时设置环境变量
永久生效: 针对当前用户 在~/.bashrc 文件中输入export MYNAME=wjj 保存退出后进行source ~/.bashrc 即可生效
rz (文件上传) sz 需要下载的文件 (文件下载,文件会自动下载到桌面的文件夹中)
首先安装 yum -y install lrzsz
这些命令要配合终端一起使用
tar [-c -v -x -f -z -C] 参数1 ...
.tar被称为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装
.gz 也常见为.tar.gz ,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
-c 创建压缩文件,用于压缩模式
-v 显示压缩,解压过程,用于查看进度
-x 解压模式
-f 要创建的文件或要解压的文件,-f必须在所有选项中位置处于最后
-z gzip模式,不使用-z加上普通的tarball格式
-C 选择解压的目的地,用于解压模式
zip [-r] 参数1 ...
-r 被压缩的包含文件夹的时候,需要使用-r选项,和rm,cp等命令的-r效果一致
例子 : zip test.zip a.txt b.txt c.txt 将abc压缩到test.zip文件内
例子 : zip -r test.zip test itheima a.txt
uzip [-d] 参数
-d 指定要解压取的位置,同tar的-C选项 例子:uzip test2.zip -d /root/test/
参数,被解压的zip压缩包文件
总结:
加粗的命令为经常使用的,Linux的命令不止如此但是掌握这些足以应对日常的开发以及个人博客的部署。