Linux基础命令
一、Linux基本命令(常用)
01、ls
用法1:ls
列出当前目录下的所有文件/文件夹名称
用法2:ls 路径
列出指定路径下的所有文件/文件夹名称
相对路径的写法:在相对路径中通常会用到“./”【表示当前目录下】、”../“【上一级目录下】;
绝对路径的写法:绝对路径直接从根“/”开始寻找对于路径;
用法3.ls 选项 路径
[root@localhost ~]# ls -l /-l:表示list,表示已详细列表的形式进行展示
[root@localhost ~]# ls -la /-a:表示显示所有的文件/文件夹(包含了隐藏的文件)
上述列表中的第一列字符表示文档的类型。其中“-”表示该行对应的文档类型为文件,“d”表示文档类型为文件夹。
在Linux中隐藏文档一般都是以“.”开头。
语法4:ls -lh 路径
列出指定路径下的所有文件/文件夹的名称,以列表的形式并且显示文档的大小,已可读性较高的形式显示
02、pwd
用法:
[root@localhost ~]# pwd
打印当前的工作路径
03、cd
作用:用于切当前的工作目录的
语法:
[root@localhost ~]# cd 路径
- 例一:当前在“/”下,需要使用绝对路径切换到/usr/local
[root@localhost ~]# cd /usr/local
[root@localhost local]#
- 例二:当前在/usr/local下,需要使用相对路径切换目录到/var/log目录中。
[root@localhost local]# pwd
/usr/local
[root@localhost local]# cd ../../var/log
[root@localhost log]#
在linux中“~”,当前表示在用户的家目录。
cd ~
快速切换到家家目录
04、mkdir
含义:创建文件夹目录
语法:
[root@localhost ~]#mkdir 路径 /*路径可以是文件夹名称也可以是包含名称的一个完整路径。
- 案例一:在当前路径下创建test
ls列出的结果颜色说明,其中蓝色的名称表示文件夹,黑色的表示文件,绿色的表示其权限为拥有所有权限。
- 案例二:在指定目录下创建文件夹"/root/test"
[root@localhost ~]#mkdir /root/test
语法2:创建多级目录
[root@localhost ~]#mkdir -p 路径
[root@localhost ~]#mkdir -p /root/一级/二级/三级/ /*创建多层目录
语法3:创建多个文件夹
[root@localhost ~]#mkdir 一级 二级 三级 /*一次性创建多个目录
05、touch
指令:touch
含义:创建文件
语法1:
[root@localhost ~]#touch 文件路径 /*路径可以说直接的文件名也可以是路径
- 案例一:使用touch在当前路径下创建一个文件,命名为Linux.txt
[root@localhost ~]# touch linux.txt
[root@localhost ~]# ls
anaconda-ks.cfg linux.txt mysql57-community-release-el7-8.noarch.rpm
语法2::使用touch创建多个文件
[root@localhost ~]# touch linux1.txt linux2.txt
[root@localhost ~]# ls
anaconda-ks.cfg linux1.txt linux2.txt linux.txt mysql57-community-release-el7-8.noarch.rpm
06、cp
含义:复制文件/文件夹到指定的位置
语法
[root@localhost ~]#cp 被复制的文档路径 文档被复制到的路径
- 案例一:复制文件到其他文件夹
注:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的,则建议保持前后名称一致。
- 案例二:复制文件夹
注意:当使用cp命令进行文件夹复制的时候需要添加”-r“[参数]:表示递归,否则目录将会被忽略。
07、mv
含义:移动文档到新的位置
语法:
[root@localhost ~]#mv 需要移动的文档路径 新的文档路径
案例1:移动一个文件
案例2:移动一个文件夹
Linux中重命名的命令也是mv语法和移动语法一样。
08、rm
含义:删除文档
语法:
[root@localhost ~]#rm 选项 需要移除的文档路径
在删除的时候如果不带选项,会提示是否删除,如果需要确认则输入‘’y'',否则输入’‘no''回车。
如果在删除的时候不想确认,则可以在指令中添加选项’‘-f'',表示强制。
其中*称之为通配符,意思表示任意字符。
案例1:删除一个文件
案例2:删除一个文件夹
案例3:删除多个文件
案例4:删除一个目录下有公共特性的文档
09、vim
含义:文本编辑器
指令:
[root@localhost ~]#vim 文件的路径
案例1:使用vim打开一个文件
退出打开的文件按’‘Shift+;’‘输入’‘q’‘回车即可
10、输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>覆盖输出,会覆盖掉原先的文件内容
>>追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:正常指令 > / >> 文件路径
案例1:覆盖重定向,保存ls -la 的执行结果到 ls.txt中
案例2:追加重定向,保存ls -la 的执行结果到 ls.txt中
11、cat
含义:查看文件打开文件内容
语法1:
[root@localhost ~]#cat 文件的路径
语法2:对文件进行合并
cat 文件路径 文件路径 > 新的文件保存路径
12、快速删除光标前/后的内容
- 删除光标前:Ctrl+u
- 删除光标后:Ctrl+k
二、进阶指令(重点)
01、df
含义:查看磁盘空间
语法
[root@localhost ~]#df -h #参数"-h"以较高的可读性显示
02、free
含义:查看内存使用情况
语法
[root@localhost ~]#free -m #参数"-m"以Mb的形式显示
03、head
含义:查看文件的前n行,如果不指定n,则默认显示10行。
语法
[root@localhost ~]#head -n 文件路径 #n表示数字
[root@localhost ~]#head -15 /var/log/boot.log
04、tail
含义:查看文件的后n行,如果不指定n,则默认显示10行。
语法1
[root@localhost ~]#tail -n 文件路径 #n表示数字
[root@localhost ~]#tail -5 /var/log/boot.log
语法2
[root@localhost ~]#tail -f 文件路径 #-f表示实时显示文件动态
[root@localhost ~]#tail -f /var/log/boot.log
用于查看自动生成的日志文件
05、less
含义:查看文件,以较少的内容进行输出,按下辅助功能(上下键、回车、空格)查看更多
语法
[root@localhost ~]#less file
[root@localhost ~]#less /var/log/boot.log
按q键退出
06、wc
含义:统计文件内容信息
语法
[root@localhost ~]#ws [参数] file
-c或:只显示Bytes数;
-l或——lines:只显示列数;
-w或——words:只显示字数。
[root@localhost ~]#ws [参数] file
07、date
含义:表示操作时间日期(读取、设置)
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份
%d:表示日期
%H:表示小时
%M:表示分钟
%S:表示秒
语法1:
[root@localhost ~]# date
Fri Mar 10 16:22:49 CST 2023
语法2:
[root@localhost ~]# date +%F #等同于"%Y-%m-%d"输出-年-月-日
2023-03-10
语法3:
[root@localhost ~]# date "+%F %T" #引号表示让"年月日与时分秒"成为一个不可分割的整体
2023-03-10 16:26:46
[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S" #date "%Y-%m-%d %H:%M:%S"
2023-03-10 16:34:48
语法4:获取之前或者之后的时间
[root@localhost ~]# date -d "-1 day" "+%Y-%m-%d %H:%M:%S"
2023-03-09 16:48:50
[root@localhost ~]# date -d "+1 day" "+%Y-%m-%d %H:%M:%S"
2023-03-11 16:49:19
符号的可选值:“-”之前或者“+”之后
08、cal
含义:操作日历
语法1:输出当前月份的日历
[root@localhost ~]# cal
语法2:输出上月+本月+下月的日历
[root@localhost ~]# cal +3
语法3:输出本年的月份
[root@localhost ~]# cal +3
语法3:周一开始输出年月
[root@localhost ~]# cal -M +3
09、clear/ctrl +L
含义:清屏,清除已打印的信息而不是删除
语法:直接输入clear
10、管道
管道符: |
含义:用于“过滤”,“特殊”,“扩展处理”,必须需要配置常规指令一起使用,其作用主要是辅助功能
1、过滤案例(常用):需要通过管道查询出bin目录下包含包含mysql字母的文档名称
说明:
①以管道作为分界面,前面的命令输出,后面需要先输入,然后在过滤,最后在输出;管道前面的输出就是后面指令的输入
②grep指令:主要用于过滤
2、特殊案例(了解):cat /etc/passwd | less 等同于less /etc/passwd
[root@localhost /]# cat /etc/passwd | less
3、扩展案例:使用命令,统计某个目录下的文档总个数。
三、高级指令
01、hostname
含义:操作读取服务器主机名
语法1:表示输出完整的主机名
[root@localhost ~]# hostname
localhost
[root@localhost ~]#
语法2:表示输出当前主机名中的FQDN(域名)
[root@localhost ~]# hostname -f
localhost
[root@localhost ~]#
02、id
含义:查看用户的基本信息(包含用户的id,用户组id,附加id),不指定用户则显示当前用户
语法1:默认显示当前用户的基本信息
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]#
语法2:显示指定用户名的基本信息
[root@localhost ~]# id admin
uid=1000(admin) gid=1000(admin) groups=1000(admin)
[root@localhost ~]#
#用户目录:/etc/passwd
#用户组目录:/etc/group
验证用户
[root@localhost ~]# cat /etc/passwd | grep admin
admin:x:1000:1000::el:/bin/bash
[root@localhost ~]#
验证用户组
[root@localhost ~]# cat /etc/group | grep admin
admin:x:1000:
03、whoami
含义:显示当前登录的用户名,一般用于shell脚本
[root@localhost ~]# whoami
root
[root@localhost ~]#
04、ps -ef(重点)
含义:查看服务器进程信息
参数:
-e:列出全部进程
-f:列出全部的列(显示全字段)
语法1:
[root@localhost ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 16:02 ? 00:00:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 16:02 ? 00:00:00 [kthreadd]
root 4 2 0 16:02 ? 00:00:00 [kworker/0:0H]
root 5 2 0 16:02 ? 00:00:00 [kworker/u256:0]
UID | PID | PPID | C | STIME | TTY | TIME | CMD |
---|---|---|---|---|---|---|---|
该进程执行的用户ID | 进程的ID | 父级进程ID,如果一个进程的父级ID找不到的进程称之为僵尸进程 | CPU的占用率,其形式是百分比 | 进程启动的时间 | 终端设备 | 进程的执行时间 | 进程的名称或者对于的路径 |
语法2:ps -ef | grep 进程名称
[root@localhost ~]# ps -ef | grep mysqld
mysql 1120 1 0 16:02 ? 00:00:07 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root 49440 1852 0 18:26 pts/0 00:00:00 grep --color=auto mysqld
05、top(重点)
含义:列出进程占用率,实时变化
语法
[root@localhost ~]# top
按q进行退出
M :表示按照内存占用从高到低进行降序排列
P :表示按照cpu占用从高到低进行降序排列
1:服务器多个CPU可以使用“1”来切换是否展示显示各个CPU的详细信息
H:解锁
top - 18:37:13 up 2:34, 2个用户当前登录, 系统负载: 5分钟, 10分钟, 15分钟负载
任务: 109 总进程数, 2 运行, 107 睡眠, 0 停止, 0 僵尸进程
CPU占用百分比: 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
物理内存 : 1862816 总量, 1312336 空闲内存, 365200 使用内存, 185280 内核缓存内存
Swap : 2097148 total, 2097148 free, 0 used. 1344060 avail Mem
名称 | 含义 |
---|---|
PID | 进程ID |
USER | 该进程对应的用户 |
PR | 优先级 |
VIRT | 虚拟内存 |
RES | 常驻内存 |
SHR | 共享内存 计算一个进程实际使用的内存=常驻内存-共享内存 |
S | 进程运行的状态S表示睡眠,P表示运行 |
%CPU | CPU占用百分比 |
%MEM | 内存占用百分比 |
TIME+ | 执行时间 |
COMMAND | 进程的名称或路径 |
06、du -sh
含义:统计目录的真实大小
-s:表示只是汇总的大小
-h:表示以较高的可读性显示
语法:
[root@192 ~]# du -sh file
[root@localhost ~]# du -sh /
1.8G /
[root@localhost ~]#
07、find
含义:用于查找文件(包含隐藏文件)
语法[root@localhost ~]find file 选项 选项的值
-
-name:按照文档名称进行搜索(支持模糊搜索)
-
-type:按照文档类型进行搜索
-
文档类型:“-”表示文件(在使用find的时候用“f”来替换),“d”表示文件夹
案例1:使用find来搜索my.cnf
[root@hostlocal ~]# find / -name my.cnf
/etc/my.cnf
案例2:使用find搜索/etc下后缀名为.conf的文件
[root@hostlocal ~]# find /etc -name *.conf
/etc/resolv.conf
/etc/depmod.d/dist.conf
/etc/dracut.conf
........
[root@hostlocal ~]# find /etc -name *.conf | wc -l
91
[root@hostlocal ~]#
案例3:使用find搜索/usr/local/nginx目录下所有的文件
[root@hostlocal ~]# find /usr/local/nginx -type f
/usr/local/nginx/sbin/nginx
/usr/local/nginx/conf/koi-win
/usr/local/nginx/conf/koi-utf
/usr/local/nginx/conf/win-utf
/usr/local/nginx/conf/mime.types
/usr/local/nginx/conf/mime.types.default
......
案例4:使用find搜索/usr/local/nginx目录下所有的文件夹
[root@hostlocal ~]# find /usr/local/nginx -type d
/usr/local/nginx
/usr/local/nginx/sbin
/usr/local/nginx/conf
/usr/local/nginx/logs
/usr/local/nginx/html
/usr/local/nginx/client_body_temp
/usr/local/nginx/proxy_temp
/usr/local/nginx/fastcgi_temp
/usr/local/nginx/uwsgi_temp
/usr/local/nginx/scgi_temp
[root@hostlocal ~]#
08、service(重点)
含义:用于控制软件的服务启动、停止、重启
语法:
[root@hostlocal ~]# sercice 服务名 start/stop/restart
案例1:需要启动本机安装的apache,其服务名为httpd
使用ps -ef | grep httpd验证httpd是否启动
09、kill
含义:杀死进程
语法
[root@hostlocal ~]#kill 进程PID
与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
语法
[root@hostlocal ~]#killall 进程名称
10、ifconfig(重点)
含义:获取网卡信息
语法
[root@hostlocal ~]# ifconfig
11、reboot
含义:重新启动计算机
语法1:reboot回车
[root@hostlocal ~]# reboot
语法2:reboot -w模拟重启,但是不重启(只写关机与开机的日志信息)
[root@hostlocal ~]# reboot -w
12、shutdown
含义:关机(慎用)/重启
语法:
[root@hostlocal ~]#shutdown -h now #立即关机
[root@hostlocal ~]#shutdown -h 时间
[root@hostlocal ~]#shutdown -h 15:00 "提示语" #指定15点整进行关机
[root@hostlocal ~]#shutdown -r now #立即重启
shutdown -h +10 #10分钟后关机
shutdown -r +10 #10分钟后重启
除了shutdow关机外,还有以下几个关机命令
[root@hostlocal ~]#init 0
[root@hostlocal ~]#halt
[root@hostlocal ~]#poweroff
13、uptime
含义:输出计算机的持续在线时间(计算机从开机到现在的运行时间)
[root@hostlocal ~]# uptime
15:42:24 up 2:05, 1 user, load average: 0.01, 0.02, 0.05
[root@hostlocal ~]#
14、uname
含义:获取计算机详细信息
语法:
[root@hostlocal ~]# uname #获取操作系统类型
[root@hostlocal ~]# uname -a #all,表示获取全部信息(类型、全部主机名、内核版本、发布时间、开源计划)
15、netstat -tnlp
含义:查看网络的连接状态
语法:
[root@hostlocal ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1055/sshd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 51283/nginx: master
tcp6 0 0 :::22 :::* LISTEN 1055/sshd
tcp6 0 0 :::3306 :::* LISTEN 1127/mysqld
选项说明:
- -t:表示只列出tcp协议的连接;
- -n:表示将地址从字母组合转化成ip地址,将协议转换为端口号来显示
- -l:表示过滤出“state”(状态)列出其中值为LISTEN(监听)的连接;
- -p:表示显示发起进程的pid和进程名称
16、man
含义:manual,手册(包含了Linux中全部手册)
初学者可以汉化参考:MAN命令的汉化设置(centos7)
语法:
[root@hostlocal ~]man 指令
#案例
[root@hostlocal ~]man ls