linux常见命令
常用指令
. ls 显示文件或目录
-l 列出文件详细信息l(list)
-a 列出当前目录下所有文件及目录,包括隐藏的a(all)
. mkdir 创建目录
-p 创建目录,若无父目录,则创建p(parent)
. cd 切换目录
. touch 创建空文件
. echo 创建带有内容的文件。
. cat 查看文件内容
. cp 拷贝
. mv 移动或重命名
. rm 删除文件
-r 递归删除,可删除子目录及文件
-f 强制删除
. find 在文件系统中搜索某文件
. wc 统计文本中行数、字数、字符数
. grep 在文本文件中查找某个字符串
. rmdir 删除空目录
. tree 树形结构显示目录,需要安装tree包
. pwd 显示当前目录
. ln 创建链接文件
. more、less 分页显示文本文件内容
. head、tail 显示文件头、尾内容
. ctrl+alt+F1 命令行全屏模式
. Ifconfig
. Fping -asg +ip 查找内网ip
. tail -f 实时查看末尾
. su -用户名 切换用户
系统管理命令
. stat 显示指定文件的详细信息,比ls更详细
. who 显示在线登陆用户
. whoami 显示当前操作用户
. hostname 显示主机名
. uname 显示系统信息
. top 动态显示当前耗费资源最多进程信息
. ps 显示瞬间进程状态 ps -aux
. du 查看目录大小 du -h /home带有单位显示目录信息
. df 查看磁盘大小 df -h 带有单位显示磁盘信息
. ifconfig 查看网络情况
. ping 测试网络连通
. netstat 显示网络状态信息
. man 命令不会用了,找男人? 如:man ls
. clear 清屏
. alias 对命令重命名 如:alias showmeit=”ps -aux” ,另外解除使用unaliax showmeit
. kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
. uptime 查看报告系统运行时长及平均负载
. netstat -tunlp | grep 端口号 查看端口占用情况
. top(P是CPU,M是内存,N是PID) 查看内存(q退出)
. ps -aux 查看进程
打包压缩相关命令
. tar: 打包压缩
. -c 归档文件
. -x 压缩文件
. -z gzip压缩文件
. -j bzip2压缩文件
. -v 显示压缩或解压缩过程 v(view)
. -f 使用档名
例:
. tar -cvf /home/abc.tar /home/abc 只打包,不压缩
. tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
. tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
关闭防火墙
systemctl (CentOS 7版本)
1) 基本语法
systemctl start | stop | restart | status 服务名
2)经验技巧
查看服务的方法:/usr/lib/systemd/system
3)案例实操
(1)查看防火墙服务的状态
[root@hadoop100 桌面]# systemctl status firewalld
(2)停止防火墙服务
[root@hadoop100 桌面]# systemctl stop firewalld
(3)启动防火墙服务
[root@hadoop100 桌面]# systemctl start firewalld
(4)重启防火墙服务
[root@hadoop100 桌面]# systemctl restart firewalld
systemctl 设置后台服务的自启配置
1)基本语法
systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)
关机重启命令
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
正确的关机流程为:sync > shutdown > reboot > halt
1)基本语法
(1)sync (功能描述:将数据由内存同步到硬盘中)
(2)halt (功能描述:关闭系统,但不断电。等同于shutdown -h now 和 poweroff)
(3)reboot (功能描述:就是重启,等同于 shutdown -r now)
(4)shutdown [选项] 时间
表5-1
选项 | 功能 |
---|---|
-h | -h=halt关机 |
-r | -r=reboot重启 |
表5-2
参数 | 功能 |
---|---|
now | 立刻关机 |
时间 | 等待多久后关机(时间单位是分钟)。 |
2) 经验技巧
Linux系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
3)案例实操
(1)将数据由内存同步到硬盘中
[root@hadoop100桌面]#sync
(2)重启
[root@hadoop100桌面]# reboot
(3)关机
[root@hadoop100桌面]#halt
(4)计算机将在1分钟后关机,并且会显示在登录用户的当前屏幕中
[root@hadoop100桌面]#shutdown -h 1 ‘This server will shutdown after 1 mins’
(5)立马关机(等同于 halt)
[root@hadoop100桌面]# shutdown -h now
(6)系统立马重启(等同于 reboot)
[root@hadoop100桌面]# shutdown -r now
关机/重启机器
. shutdown
-r 关机重启
-h 关机不重启
-now 立刻关机
. halt 关机
. reboot 重启
输出重定向和 >> 追加 >覆写
1)基本语法
(1)ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
(2)ls -al >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
(3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
(4)echo “内容” >> 文件
Linux管道
将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。
例:grep -r “close” /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。
vim使用
vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:
. :q 退出
. :q! 强制退出
. :wq 保存并退出
. :set number 显示行号
. :set nonumber 隐藏行号
. /apache 在文档中查找apache 按n跳到下一个,shift+n上一个
. yyp 复制光标所在行,并粘贴
. h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
用户及用户组管理
. /etc/passwd 存储用户账号
. /etc/group 存储组账号
. /etc/shadow 存储用户账号的密码
. /etc/gshadow 存储用户组账号的密码
. useradd 添加用户名
. userdel 删除用户名
. adduser 添加用户名
. groupadd 添加组名
. groupdel 删除组名
. passwd root 给root设置密码
. su root
. su – root
. /etc/profile 系统环境变量
. bash_profile 用户环境变量
. .bashrc 用户环境变量
. su user 切换用户,加载配置文件.bashrc
. su – user 切换用户,加载配置文件/etc/profile ,加载bash_profile
更改文件的用户及用户组
. sudo chown [-R] owner[:group] {File|Directory}
例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop
要想切换此文件所属的用户及组。可以使用命令。
. sudo chown root:root jdk-7u21-linux-i586.tar.gz
文件权限管理
三种基本权限
R 读 数值表示为4
W 写 数值表示为2
X 可执行 数值表示为1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SdTGfuIh-1610458767279)(file:///C:/Users/RADIAT~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)]
如图所示,jdk-7u21-linux-i586.tar.gz文件的权限为-rw-rw-r–
-rw-rw-r–一共十个字符,分成四段。
第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录
第二三四个字符“rw-”表示当前所属用户的权限。 所以用数值表示为4+2=6
第五六七个字符“rw-”表示当前所属组的权限。 所以用数值表示为4+2=6
第八九十个字符“r–”表示其他用户权限。 所以用数值表示为2
所以操作此文件的权限用数值表示为662?
更改权限
chmod 改变权限
1)基本语法
第一种方式变更权限
chmod [{ugoa}{±=}{rwx}] 文件或目录
第二种方式变更权限
chmod [mode=421 ] [文件或目录]
2)经验技巧
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
r=4 w=2 x=1 rwx=4+2+1=7
3)案例实操
(1)修改文件使其所属主用户具有执行权限
[root@hadoop101 ~]# cp xiyou/dssz/houge.txt ./
[root@hadoop101 ~]# chmod u+x houge.txt
(2)修改文件使其所属组用户具有执行权限
[root@hadoop101 ~]# chmod g+x houge.txt
(3)修改文件所属主用户执行权限,并使其他用户具有执行权限
[root@hadoop101 ~]# chmod u-x,o+x houge.txt
(4)采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。
[root@hadoop101 ~]# chmod 777 houge.txt
(5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。
[root@hadoop101 ~]# chmod -R 777 xiyou/
chown 改变所有者
1)基本语法
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
2)选项说明
表7-20
选项 | 功能 |
---|---|
-R | 递归操作 |
3)案例实操
(1)修改文件所有者
[root@hadoop101 ~]# chown atguigu houge.txt
[root@hadoop101 ~]# ls -al
-rwxrwxrwx. 1 atguigu root 551 5月 23 13:02 houge.txt
(2)递归改变文件所有者和所有组
[root@hadoop101 xiyou]# ll
drwxrwxrwx. 2 root root 4096 9月 3 21:20 xiyou
[root@hadoop101 xiyou]# chown -R atguigu:atguigu xiyou/
[root@hadoop101 xiyou]# ll
drwxrwxrwx. 2 atguigu atguigu 4096 9月 3 21:20 xiyou
chgrp 改变所属组
1)基本语法
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
2)案例实操
(1)修改文件的所属组
[root@hadoop101 ~]# chgrp root houge.txt
[root@hadoop101 ~]# ls -al
-rwxrwxrwx. 1 atguigu root 551 5月 23 13:02 houge.txt
进程线程类
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
ps 查看当前系统进程状态
ps:process status 进程状态
1)基本语法
ps -aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
2)选项说明
表7-30
选项 | 功能 |
---|---|
-a | 选择所有进程 |
-u | 显示所有用户的所有进程 |
-x | 显示没有终端的进程 |
3)功能说明
(1)ps -aux显示信息说明
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
(2)ps -ef显示信息说明
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
4)经验技巧
如果想查看进程的CPU占用率和内存占用率,可以使用aux;
如果想查看进程的父进程ID可以使用ef;
5)案例实操
[root@hadoop101 datas]# ps aux
如图1-161所示
图1-161 查看进程的CPU占用率和内存占用率
[root@hadoop101 datas]# ps -ef
如图7-8所示
图7-8 查看进程的父进程ID
kill 终止进程
1)基本语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
2)选项说明
表7-31
选项 | 功能 |
---|---|
-9 | 表示强迫进程立即停止 |
3)案例实操
(1)杀死浏览器进程
[root@hadoop101 桌面]# kill -9 5102
(2)通过进程名称杀死进程
[root@hadoop101 桌面]# killall firefox
pstree 查看进程树
1)基本语法
pstree [选项]
2)选项说明
表7-32
选项 | 功能 |
---|---|
-p | 显示进程的PID |
-u | 显示进程的所属用户 |
3)案例实操
(1)显示进程pid
[root@hadoop101 datas]# pstree -p
(2)显示进程所属用户
[root@hadoop101 datas]# pstree -u
top 查看系统健康状态
1)基本命令
top [选项]
2)选项说明
表7-33
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令: |
-i | 使top不显示任何闲置或者僵死进程。 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态。 |
3)操作说明
表7-34
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top |
4)查询结果字段解释
第一行信息为任务队列信息
表7-35
内容 | 说明 |
---|---|
12:26:46 | 系统当前时间 |
up 1 day, 13:32 | 系统的运行时间,本机已经运行1天 13小时32分钟 |
2 users | 当前登录了两个用户 |
load average: 0.00, 0.00, 0.00 | 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |
第二行为进程信息
表7-36
Tasks: 95 total | 系统中的进程总数 |
---|---|
1 running | 正在运行的进程数 |
94 sleeping | 睡眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |
第三行为CPU信息
表7-37
Cpu(s): 0.1%us | 用户模式占用的CPU百分比 |
---|---|
0.1%sy | 系统模式占用的CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
99.7%id | 空闲CPU的CPU百分比 |
0.1%wa | 等待输入/输出的进程的占用CPU百分比 |
0.0%hi | 硬中断请求服务占用的CPU百分比 |
0.1%si | 软中断请求服务占用的CPU百分比 |
0.0%st | st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
第四行为物理内存信息
表7-38
Mem: 625344k total | 物理内存的总量,单位KB |
---|---|
571504k used | 已经使用的物理内存数量 |
53840k free | 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了 |
65800k buffers | 作为缓冲的内存数量 |
第五行为交换分区(swap)信息
表7-39
Swap: 524280k total | 交换分区(虚拟内存)的总大小 |
---|---|
0k used | 已经使用的交互分区的大小 |
524280k free | 空闲交换分区的大小 |
409280k cached | 作为缓存的交互分区的大小 |
5)案例实操
[root@hadoop101 atguigu]# top -d 1
[root@hadoop101 atguigu]# top -i
[root@hadoop101 atguigu]# top -p 2575
执行上述命令后,可以按P、M、N对查询出的进程结果进行排序。
7.10.5 netstat 显示网络统计信息和端口占用情况
1)基本语法
netstat -anp |grep 进程号 (功能描述:查看该进程网络信息)
netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
2)选项说明
表7-40
选项 | 功能 |
---|---|
-n | 拒绝显示别名,能显示数字的全部转化成数字 |
-l | 仅列出有在listen(监听)的服务状态 |
-p | 表示显示哪个进程在调用 |
3)案例实操
(1)通过进程号查看该进程的网络信息
[root@hadoop101 hadoop-2.7.2]# netstat -anp | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 951/sshd
tcp 0 0 192.168.202.100:22 192.168.202.1:57741 ESTABLISHED 3380/sshd: root@pts
tcp 0 52 192.168.202.100:22 192.168.202.1:57783 ESTABLISHED 3568/sshd: root@pts
tcp 0 0 192.168.202.100:22 192.168.202.1:57679 ESTABLISHED 3142/sshd: root@pts
tcp6 0 0 :::22 ::😗 LISTEN 951/sshd
unix 2 [ ] DGRAM 39574 3568/sshd: root@pts
unix 2 [ ] DGRAM 37452 3142/sshd: root@pts
unix 2 [ ] DGRAM 48651 3380/sshd: root@pts
unix 3 [ ] STREAM CONNECTED 21224 951/sshd
(2)查看某端口号是否被占用
[root@hadoop101 桌面]# netstat -nltp | grep 22
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1324/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 951/sshd
tcp6 0 0 :::22 ::😗 LISTEN 951/sshd
RPM
RPM概述
RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
RPM包的名称格式
Apache-1.3.23-11.i386.rpm
- “apache” 软件名称
- “1.3.23-11”软件的版本号,主版本和此版本
- “i386”是软件所运行的硬件平台,Intel 32位微处理器的统称
- “rpm”文件扩展名,代表RPM包
RPM查询命令(rpm -qa)
1)基本语法
rpm -qa (功能描述:查询所安装的所有rpm软件包)
2)经验技巧
由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包
3)案例实操
(1)查询firefox软件安装情况
[root@hadoop101 Packages]# rpm -qa |grep firefox
firefox-45.0.1-1.el6.centos.x86_64
RPM卸载命令(rpm -e)
1)基本语法
(1)rpm -e RPM软件包
(2) rpm -e --nodeps 软件包
2)选项说明
选项 | 功能 |
---|---|
-e | 卸载软件包 |
–nodeps | 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 |
3)案例实操
(1)卸载firefox软件
[root@hadoop101 Packages]# rpm -e firefox
RPM安装命令(rpm -ivh)
1)基本语法
rpm -ivh RPM包全名
2)选项说明
选项 | 功能 |
---|---|
-i | -i=install,安装 |
-v | -v=verbose,显示详细信息 |
-h | -h=hash,进度条 |
–nodeps | –nodeps,不检测依赖进度 |
克隆完机器注意事项
修改主机名 vim /etc/hostname
修改ip地址 vim /etc/
重启客户端
配置更新下载源:
(1)先安装wegt(也是下载软件包的方法)
yum -y install wget
(2)下载YUM源文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
(3)
yum makecache
(4)
yum -y update
| -e | 卸载软件包 |
| --nodeps | 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 |
3)案例实操
(1)卸载firefox软件
[root@hadoop101 Packages]# rpm -e firefox
RPM安装命令(rpm -ivh)
1)基本语法
rpm -ivh RPM包全名
2)选项说明
选项 | 功能 |
---|---|
-i | -i=install,安装 |
-v | -v=verbose,显示详细信息 |
-h | -h=hash,进度条 |
–nodeps | –nodeps,不检测依赖进度 |
克隆完机器注意事项
修改主机名 vim /etc/hostname
修改ip地址 vim /etc/
重启客户端
配置更新下载源:
(1)先安装wegt(也是下载软件包的方法)
yum -y install wget
(2)下载YUM源文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
(3)
yum makecache
(4)
yum -y update