Linux常用命令
命令格式:命令 [-选项] [参数]
eg:ls -la /root
说明:
1.大部分命令遵循此格式
2.多个选项时,可以一起写
eg:ls -l -a ---->ls -la
help
1.查看shell内置命令的帮助信息
help 命令名
eg:help cd
2.查看其他命令的帮助信息
方式一:命令名 --help
方式二:命令名 --help 列举该命令的常用选项
eg:cp --help
文件处理命令
cd:change directory 命令途径:内部命令 执行权限:所有用户
cd:切换工作目录(★)
cd -:回到上一次的操作所在的位置(★)
cd ~:回到用户家目录
cd ./:当前目录
cd …/:回到上一级目录(★)
cd:回到用户家目录(★)
ls:list 查看目录 ls + 选项 + 目录名 命令所在目录 /bin/ls 执行权限:所有用户
ll:等价于 ls -l
-l:以列表的形式显示
-a:所有文件或者目录包括隐藏文件
-h:以可读的方式显示文件大小,配合-l使用
pwd:print working directory(显示当前工作的目录) 命令途径:/bin/pwd 执行权限:所有用户
pwd:打印当前工作目录(全目录)
语法:pwd [-LP]
参数说明:
-L:(logical),显示当前的路径,有链接文件时,直接显示链接文件的路径(不加参数默认此方式)
-P:(physical),显示当前的路径,有链接文件时,不使用连接路径,直接显示链接文件所指示的文件
mkdir:make directories(创建新的目录) 命令途径:/bin/mkdir 执行权限:所有用户
语法:mkdir [-p] 目录名
-p:父目录不存在的情况下先生成父目录(parents)
eg:mkdir linux/test 如果目录linux不存在,则报错,使用参数-p即可自动创建目录
touch:(创建空文件或者更新已存在文件的时间)命令途径:/bin/touch 执行权限:所有用户
语法:touch 文件名
eg:touch a.txt / touch c.txt d.txt / touch {e.txt,f.txt,g.txt}(同时创建多个文件,注意{}中间不能有空格)
eg:touch “hello world” 创建带空格的文件(注意在生产环境中,文件名,一定不要加空格)
echo:(查看某些环境变量/给文件增加内容(将文件创建出来))命令途径:/bin/echo 执行权限:所有用户
语法:echo ‘字符串’ > 文件名
eg:echo cd 查看当前路径
eg:echo ‘haha’ > aaa.txt 将字符串添加到aaa.txt里面,会将文件原来的内容覆盖
eg:echo ‘hihi’ >> bbb.txt 将字符串添加到bbb.txt里面,会将字符串追加到bbb.txt中,不会覆盖原来的内容
cp:copy(复制文件或者目录) 命令途径:/bin/cp 执行权限:所有用户
语法:cp [-rp] 源文件或者目录 目的目录
-r -R recursive 递归处理,复制目录
-p 保留文件属性
eg:
1.相对路径:cp -R /etc/* . 将etc下面的全部内容拷贝到当前的目录下
2.绝对路径:cp -R /etc/*.conf /opt/hadoop
mv:move(;移动文件或者目录,文件或者目录改名) 命令路径:/bin/mv 执行权限:所有用户
语法:mv 源文件或者目录 目的目录
mv 原文件名 新文件名
rm:remove(删除文件) 命令途径:/bin/rm 执行权限:所有用户
语法:rm [-rf] 文件或者目录
-r:(recursive):删除目录,同时删除该目录下的所有文件
-f:(force)强制删除文件或者目录,即使原档案属性设置为只读,亦可直接删除,无需逐一确定
(注意,在生产环境中,谨慎使用rm -rf 命令)
vim编辑器:
vim/vi是Unix/Linux上最常用的文本编辑器而且功能十分强大
只有命令,没有菜单
vim工作模式
命令模式:又称为一般模式
编辑模式:又称为底行模式,命令行模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xgu1kstN-1624698580908)(C:\Users\16326\Desktop\dayHomework\vim.png)]
插入命令:
命令 | 作用 |
---|---|
a | 在光标后附加文本 |
A | 在本行行末附加文本,行尾 |
i | 在光标前插入文本 |
I | 在本行开始插入文本,行首 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
定位命令:
命令 | 作用 |
---|---|
:set nu | 设置行号 |
:set nonu | 取消行号 |
gg G | 到第一行 到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
保存和退出命令:
命令 | 作用 |
---|---|
:w | 保存修改 |
:w new_filename | 另存为指定文件,如果文件不存在,会直接创建一个新的文件 |
:w >> a.txt | 内容追加到a.txt文件中,文件需存在 |
:wq | 保存修改并退出 |
ZZ | 快捷键,保存修改并退出 |
:q! | 不保存修改退出 |
:wq! | 保存修改并退出(文件所有者可以忽略文件的只读属性) |
eg:
1.不保存修改并退出 :q
2.有修改,但是修改内容是不用保存的 :q!
删除命令:
命令 | 作用 |
---|---|
x | 删除光标所有处的字符,nx删除光标所在处后n个字符 |
dd | 删除光标所在行,ndd删除n行 |
:n1,n2d | 删除指定范围中的行(1,3d删除了123这三行) |
dG | 删除光标所在行到末尾的内容 |
D | 删除从光标所在处到行尾 |
ln:link(产生链接文件) 命令途径:/bin/ln 执行权限:所有用户
语法:
ln -s [源文件] [目标文件] 创建软链接 相当于创建快捷方式 注意:源文件使用绝对路径
ln [原文件] [目标文件] 创建硬链接 相当于深拷贝
注意点:
软连接类似于windows下的快捷方式
lrwxrwxrwx. 1 root root 13 6月 20 16:48 myJdk -> /opt/jdk2/jdk
格式解析:
1代表硬链接数量,如果该文件没有硬链接,就只有本身一个硬链接
13代表链接文件的长度
软链接的文件类型是l(软连接),软连接文件的权限都是lrwxrwxrwx
->箭头指向源文件
真正的权限取决于源文件的权限
时间值为创建软连接的时间
软连接可以跨文件系统生成
硬链接特征:
1.相当于cp -p +同步更新
2.通过i节点识别,与原文件有相同的inode节点,当修改其中的任意一个硬链接文件时,其他文件中的内容也会同步更新
3.硬链接不能跨分区,
4.硬链接不能针对目录使用
删除软链接,源文件不会受到任何影响
inode:Linux文件系统中的inode主要用于存放档案和目录的文件信息,当系统创建文件系统的同时会创建大量的inode
cat:concatenate(显示文件全部内容) 命令途径:/bin/cat 执行权限:所有用户
语法:cat [-n] [文件名]
-A:显示所有内容,包括隐藏的字符
-n:显示行号
more:(分页显示文件内容) 命令途径:/bin/more 执行权限:所有用户
语法:more [文件名]
空格或者f 显示下一页
enter 显示下一行
q或者Q 退出
head:(查看文件前几行(默认是10行)) 命令途径:/usr/bin/head 执行权限:所有用户
语法:head [文件名]
-n:指定行数
tail:(查看文件后几行) 命令途径:/usr/bin/tail 执行权限:所有用户
语法:tail [文件名]
-n:指定行数
注意:获取一个大文件的部分文件,可以使用head或者tail命令
find:(查找文件或者目录) 命令途径:/bin/find 执行权限:所有用户
语法:find [搜索路径] [匹配条件] (如果没有指定搜索路径,默认从当前目录查找)
(1)-name按照名称区分大小写查找
说明:精确查找
eg:find /etc -name "yum.conf"
(2)-iname按照名称不区分大小写查找
说明:不区分大小写
eg:find /etc -iname "yum.conf"
模糊查询:
find查找字符匹配
*:匹配所有字符
?:匹配单个字符
模糊匹配的条件:建议使用单引号或者双引号括起来
(3)-size按照文件大小查找
以block为单位,一个block是512B,1K=2block,+大于,-小于,不写是等于
1Mb=1024kb=2048block
(4)-type按照文件类型查找
f:二进制文件,l:软链接文件,d:目录,c:字符文件
find查找的基本原则:
占用最少的系统资源,即查询范围最小,查询条件最精准
注意:如果明确知道查找的文件在哪一个目录,就直接对着指定目录查找,不需要查找根目录
grep:(在文件中搜寻字符串匹配的行并输出) 命令途径:/bin/grep 执行权限:所有用户
语法:grep [-cinv] ‘搜寻字符串’ filename
选项和参数:
-c:输出匹配行的次数(是以行为单位,不是以出现次数为单位)
-i:忽略大小写,所以大小写视为相同
-n:显示匹配行及行号
-v:反向选择,显示不包含匹配文本的所有行
管道:进行过滤
eg:find /root | grep a.txt
which:(显示系统命令所在目录(绝对路径及别名)) 命令途径:/usr/bin/which 执行权限:所有用户
which命令的作用是:在Path变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果,也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
whereis:(搜索命令所在的目录,匹配文件所在目录,及帮助文档的路径) 命令途径:/usr/bin/whereis 执行权限:所有用户
磁盘操作命令:
df命令:df [-hkam] [挂载点]
-h:(human-readable)根据磁盘的使用情况,以以易读的方式显示kb,mb,gb等
-k:以kb为单位显示各分区的信息
-m:以mb为单位显示信息,默认
-a:显示所有分区包括大小为0的分区
du命令:(用于查看文件或者目录的大小(磁盘使用情况))
语法:du [-ahs] [文件名目录]
-a:显示子文件的大小
-h:以易读的方式显示KB,MB,GB等
-s:summarize,统计总占有量
du命令和df命令的区别:
1.df命令是从文件系统考虑的,不仅考虑文件占用的空间,还要统计被命令或者程序占用的空间。
2.du命令面向文件,只计算文件或者目录占用的空间
free:(显示系统内存的使用情况,包括物理内存,交换内存(swap)和内核缓冲区内存)
语法:free [-kmg]
-k:以kb为单位显示,默认就是以kb为单位显示
-m:以mb为单位显示
-g:以GB为单位显示
打包压缩命令
gzip:(压缩(解压)文件,压缩文件的后缀名为.gz) 执行权限:所有用户
gzip:只能压缩文件,不能压缩目录;不保留源文件
语法:gzip 文件
-d :将文件解压(decompress)
解压使用gzip -d 或者gunzip
bzip2:(压缩(解压)文件,压缩文件后缀为.bz2) 执行权限:所有用户
语法:bzip2 [-k] [文件]
(注意:在纯命令行系统中,没有默认安装bzip2命令,需要手动安装)
-k:产生压缩文件后保留源文件(压缩比高)
-d:解压缩的参数(decompress)
解压使用bzip2 -d 或者 bunzip2
zip:(压缩(解压)文件,压缩文件后缀为.zip,保留原文件) 执行权限:所有用户
注意:在纯命令行系统中没有默认安装zip命令,需要手动安装
-r:压缩目录
如果不加r选项,压缩后的文件没有数据
解压使用unzip(也需要yum下载),解压时,已经存在与压缩文件同名的目录名,默认不会进行覆盖,如果选择y会进行覆盖
tar:(文件,目录,打包(解压)) 执行权限:所有用户
语法:tar [选项] 压缩文件名,文件或者目录
-c:建立一个压缩文件的参数指令(create),后缀是.tar
-x:解开一个压缩文件的参数指令(extract)
-z:以gzip命令压缩/解压缩
-j:以bzip2命令压缩/解压缩
-v:压缩过程中显示文件
-f:file 指定文件名,必选项
最常用:
tar -zcvf 压缩
tar -zxvf 解压
源文件会被保留,不会被删除
date
1.date命令是显示或者设置系统时间与日期
2.查看系统时间直接使用date
3.以自定义的方式显示系统时间:date +'%Y-%m-%d %H:%M:%S'(注意:+与字符串之间不能有空格)
4.设置时间
5.同步到bios,重启后生效
系统关机命令:
语法:shutdown [选项] 时间
-c:取消一个挂机命令
-h:立即关机
-r:重启
其他关机命令
halt;
poweroff;
init 0;
重启命令:
reboot -h now:立即重启
Linux的七种执行等级:
init 0:停机
init 1:单用户形式,只root进行维护
init 2:多用户,不能使用net file system
init 3:完全多用户
init 4:图形化
init 5:安全模式
init 6:重启
其他命令:
uname -r :查看系统版本信息
basename:查看命令中的名字
dirname:查看命令中的途径
Linux的快捷命令:
ctrl + c:停止当前进程
ctrl + z:挂起当前进程,放在后台
ctrl + r:(查看命令历史)history
ctrl + l:清屏,与clear命令作用相同
对当前命令行的操作:
ctrl + a 行首 ctrl + e 行尾 ctrl + d清楚当前的字符
ctrl + k 清楚光标后面的内容 ctrl + w 清楚光标前面的单词
小技巧:
linux不进去系统更改密码:
1.开机时按'e'键进入grub
2.在grub选项菜单按e进入编辑模式
3.编辑kernel那行 输入” 1”(空格1),然后按enter键。
4.按b重启
5.进入后执行下列命令
passwd root
passwd root (配置root的密码)——>Enter new unix password:输入新的密码——>init 6
网络相关操作:
1.修改ip地址:
说明:(以网络方式为NAT方式实例)
1. vi /etc/sysconfig/network-scripts/ifcfg-ens33
2.
相关属性信息:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=55afec4f-8e69-445d-8807-41c1f79b552c
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.10.101--------静态真实ip
GATEWAY=192.168.10.2---------网关(交换机的ip)
NETMASK=255.255.255.0----------子网掩码
DNS1=8.8.8.8-------谷歌的DNS
DNS2=114.114.114.114-----国内的DNS
3.重启网络生效:service network restart 或者 systemctl restart network
关闭防火墙:
1.及时生效,重启后复原
systemctl stop firewalld
systemctl start firewalld
systemctl status firewalld
2.非及时生效,重启后永久性生效
systemctl disable firewalld
systemctl enable firewalld
systemctl status firewalld
关闭NetworkManager:
NetWorkManager服务是管理和监控网络设置的守护进程,CentOS7更加注重使用NetworkManager服务来实现网络的配置和管理 它是一个动态的,事件驱动的网络管理服务
常用管理命令:
systemctl status NetworkManager 查看状态
systemctl start NetworkManager 开启
systemctl stop NetworkManager 关闭
systemctl disable NetworkManager 永久关闭
systemctl enable NetworkManager 重启
网络通信命令:
ping:
命令途径:/bin/ping 执行权限:所有用户 作用:测试网络的连通性
语法:ping -c 次数 ip地址
ping命令使用的是icmp协议(internet control message protocol) 不占用端口
ip addr:
作用:查看和设置网卡网络配置 命令途径:/sbin/ifconfig 执行权限:root
netstat:
英文:network statistics 命令途径:/bin/netstat 执行权限:所有用户
注意:如果在系统中默认没有这个命令,直接安装net -tools包即可
作用:主要用于检测主机的网络配置和状况
-a:(all)所有连接和监听端口
-t:(tcp)仅显示tcp相关选项
-u:(udp)仅显示udp相关选项
-n:使用数字方式显示地址和端口号
-p:显示sockt和PID和进程的名称
-l:(listening)显示监控中的服务器的socket
修改主机名:
修改配置文件:
/etc/hostname
修改映射关系:
修改主机名和ip地址之间的映射关系(存于etc/hosts中):
(注意最好让主机名字,虚拟机名字,网络连接名字保持一致)
进程管理命令:
进程和程序的区别:
1.程序是静态概念,本身作为一种软件资源长期保存;而进程是程序执行过程,他是动态概念,有一定的生命期,是动态产生和消亡的
2.程序和进程无一一对应关系,一个进程在活动中可以有顺序的执行若干个程序
父进程和子进程的区别:
1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程
2.在Linux系统中,使用系统调用fork创建进程,fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境
3.父进程终止,子进程自然终止
进程和线程的区别:
进程:正在执行的程序和命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源
线程:轻量级的进程,进程有独立的空间,而线程没有,线程不能独立存在,它由进程创建,相对来讲,线程耗费的cpu和内存要小于进程
进程管理的作用:判断服务器的状态,查看系统所有的进程,杀死进程
前台进程和后台进程:
前台进程:
在shell提示处打入命令后,创建一个子进程,运行命令,shell等待命令退出,然后返回到对用户给出提示符,这条命令与shell异步运行,即在前台运行,用户在它完成之前不能执行另一个命令
后台进程:
在shell提示处打入命令,若后随一个&,shell创建的子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示信息,这条命令与shell同步运行,记载后台运行,后台运行必须是非交互式的
ps:(查看系统中的进程信息) ps [-auxle]
-a:显示所有用户的进程
-u:显示用户名和启动时间
-x:显示没有控制终端的进程
-e:显示所有进程,包括没有控制终端的进程
-l:长格式显示
查看系统中所有的进程:
ps -aux:查看系统中所有进程,使用BSD操作系统格式,Unix
ps -le:查看系统中所有的进程,使用linux标准命令格式
pstree:
作用:查看当前进程树
语法:ps [选项]
-p:显示进程pid
-u:显示进程的所属用户
top:
作用:显示系统健康状况
显示当前系统中耗费资源最多的进程,以及系统的一些负载情况
语法:top [选项]
-d 秒数,指定几秒刷新一次,默认3秒(动态显示)
kill:
作用:关闭进程
语法:kill [-选项] pid
-9:强制关闭
-1:重启进程
补充:
killall -l 关闭所有进程(忽略进程名的大小写)
w:
作用:查看用户信息
语法:w 用户名
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 11:07 15:11 0.01s 0.01s -bash
root pts/0 192.168.10.1 11:07 7.00s 0.07s 0.00s w
root pts/1 192.168.10.1 11:07 14:59 1.14s 1.14s top
解释:
JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的cpu时间会显示在这里
PCPU:CPU执行程序耗费的时间
WHAT:用户正在执行的操作
nohub:
作用:使进程在用户退出登陆后仍在继续执行,nohub命令将执行后的数据信息和错误信息默认储存到nohub.out中
语法:nohub program & &是在后台运行的意思
uptime:
作用:查看负载
例如:使用uptime确定是服务器还是网络出了问题,如果网络应用程序运行,运行uptime来了解系统负载是否很高,如果负载不高,这个问题很可能就是由于网络引起的而非服务器
语法:uptime
11:30:21 up 23 min, 3 users, load average: 0.03, 0.05, 0.05
解释:
系统时间 用户数量 服务器在过去的1分钟,5分钟,15分钟的系统平均负载值
用户和组的创建和删除:
su:
语法:su 用户名
作用:切换用户
su root 切换回root用户,注意:如果是root用户,每次都会要求输入密码,普通的用户可以直接切换
useradd:
添加用户
语法:useradd [选项] 用户名
passwd:
修改密码命令:
passwd [选项] [用户名]
用户密码:在生产环境中,用户密码长度8位以上,设置大小写加数字加特殊字符,更要定期更换密码
userdel:
删除用户:
-r:删除账号的同时,删除宿主目录(remove)
注意:一个用户已经打开,需要删除
做法:先跳到当前用户的下面,执行exit,或者exit用户名,这是会自动跳到root界面
如果还是无法删除,可以将系统重新启动
groupadd:
用于添加组
-g 指定gid
groupmod:
用于修改组
-n 更改组名(new group)
groupdel:
用于删除组
如果要删除的组归属于某一个用户的所属组,则不能删除改组
文件权限命令:
r:read
w:write
x:execute
权限说明:-rwxrw-r–
-:(类型)d:目录,-普通文件,l 链接文件
rwx:所属用户(所有者)权限,用u(user)表示
rw-:所属组权限,用g(group)表示
r–:其他用户(其他人)权限,用o(other)表示
第2-10位:表示所有的权限,用a(all)表示
第11位的1代表硬连接数目
对于文件,我们有执行权限的命令:
r:cat,more,less,head,tail
w:echo,vi
x:命令,脚本
对于目录,我们有执行权限的命令:
r:ls
w:touch,mkdir,rm,rmdir,
x:cd
能删除的文件的权限是必须对该文件所在的目录有wx权限
chmod:
用于权限更改,改变文件或者目录的权限:(change the permissions mode of a file)
参数:-R 下面的文件或者子目录做相同的权限操作(recursive)
chown:
用于更改所有者,更改文件或目录的所有者
chgrp:
用于改变所属组,改变文件或者目录的所属组:(change file group ownership)
sudo权限的配置:
作用:
root把本来只能超级用户执行的权限赋予普通用户执行
sudo的操作对象是系统命令
删除
做法:先跳到当前用户的下面,执行exit,或者exit用户名,这是会自动跳到root界面
如果还是无法删除,可以将系统重新启动
groupadd:
用于添加组
-g 指定gid
groupmod:
用于修改组
-n 更改组名(new group)
groupdel:
用于删除组
如果要删除的组归属于某一个用户的所属组,则不能删除改组
文件权限命令:
r:read
w:write
x:execute
权限说明:-rwxrw-r–
-:(类型)d:目录,-普通文件,l 链接文件
rwx:所属用户(所有者)权限,用u(user)表示
rw-:所属组权限,用g(group)表示
r–:其他用户(其他人)权限,用o(other)表示
第2-10位:表示所有的权限,用a(all)表示
第11位的1代表硬连接数目
对于文件,我们有执行权限的命令:
r:cat,more,less,head,tail
w:echo,vi
x:命令,脚本
对于目录,我们有执行权限的命令:
r:ls
w:touch,mkdir,rm,rmdir,
x:cd
能删除的文件的权限是必须对该文件所在的目录有wx权限
chmod:
用于权限更改,改变文件或者目录的权限:(change the permissions mode of a file)
参数:-R 下面的文件或者子目录做相同的权限操作(recursive)
chown:
用于更改所有者,更改文件或目录的所有者
chgrp:
用于改变所属组,改变文件或者目录的所属组:(change file group ownership)
sudo权限的配置:
作用:
root把本来只能超级用户执行的权限赋予普通用户执行
sudo的操作对象是系统命令