Linux常用指令
一.vim常用快捷键
ESC:切换到一般模式
:或/:在一般模式下进入命令模式
i:在一般模式下进入编辑模式
设置/取消行号:命名行下:set nu和:set nonu
保存并退出:wq;强制退出:q!
查找单词:/关键字,然后输入n就是查找下一个
撤销动作:一般模式下按u
移动光标到特定行:一般模式下,输入行号,再输入shift+g
移动到文档末行:G;移动到首行:gg
二.用户管理
1.用户
添加用户:useradd 用户名
指定/修改密码:passwd 用户名
删除用户:1.保留家目录:userdel xxx;2.删除家目录:userdel -r xxx
查看用户基本信息:id xxx
切换用户:su - 用户名
当要返回到原来用户时,使用exit/logout指令
查看当前用户/登录用户:whoami/who am i
2.用户组
新增组:groupadd 组名
删除组:groupdel 组名
增加用户时直接加上组:useradd -g 用户组 用户名
不指定的话默认是以用户名作为组名
修改用户到其他组:usermod -g 用户组 用户名
其中/etc/password 文件记录用户的各种信息
/etc/shadow文件记录口令的配置文件
/etc/group文件记录组的信息
如果强制删除组,组内成员会新建一个以自己名字为组名的组,然后再删除该成员,对应的组也会被删除。
三.文件目录类
1.pwd指令
显示当前工作目录的绝对路径
2.ls指令
基本语法:ls [选项] [目录或是文件]
常用选项
-a:显示当前目录所有的文件和目录,包括隐藏的。
-l:以列表的方式显示信息
-h:内存单位显示更合理
3.cd指令
基本语法:cd [参数] (功能描述:切换到指定目录)
cd ~ 或者 cd :回到自己的家目录, 比如 你是 root , cd ~ 到 /root
cd … 回到当前目录的上一级目录
4.mkdir指令
mkdir 指令用于创建目录
基本语法:mkdir [选项] 要创建的目录
常用选项
-p :创建多级目录
5.rmdir指令
rmdir 指令用于删除空目录
rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录
6.touch指令
touch 指令创建空文件
基础语法:touch 文件名称
7.cp指令
cp 指令拷贝文件到指定目录
基本语法
cp [选项] source dest
常用选项
-r :递归复制整个文件夹
强制覆盖不提示的方法:\cp , \cp -r /home/bbb /opt
8.rm指令
rm 指令移除文件或目录
基础语法:rm [选项] 要删除的文件或目录
常用选项
-r :递归删除整个文件夹
-f : 强制删除不提示
9.mv指令
mv 移动文件与目录或重命名
基本语法
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
10.cat指令
cat 查看文件内容
基础语法:cat [选项] 要查看的文件
常用选项
-n :显示行号
11.more指令
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令)
12.less指令
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
13.echo指令
echo 输出内容到控制台
基本语法
echo [选项] [输出内容]
14.head指令
head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
基本语法
head 文件 (功能描述:查看文件头 10 行内容)
head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)
15.tail指令
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前 10 行内容。
基本语法
- tail 文件 (功能描述:查看文件尾 10 行内容)
- tail -n 5 文件 (功能描述:查看文件尾 5 行内容,5 可以是任意行数)
- tail -f 文件 (功能描述:实时追踪该文档的所有更新)
16.> 指令 和 >> 指令
> 输出重定向和 >> 追加
基本语法
- ls -l >文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
- ls -al >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
- cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
- echo “内容”>> 文件 (追加)
17.ln指令
软链接也称为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
基本语法
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
18.history指令
查看已经执行过历史命令,也可以执行历史指令
基本语法
history (功能描述:查看已经执行过历史命令)
四.时间日期类
1.data指令
基本语法
- date (功能描述:显示当前时间)
- date +%Y(功能描述:显示当前年份)
- date +%m(功能描述:显示当前月份)
- date +%d (功能描述:显示当前是哪一天)
- date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
2.date 指令-设置日期
基本语法
date -s 字符串时间
3.cal指令
查看日历指令 cal
基本语法
cal [选项] (功能描述:不加选项,显示本月日历)
五.搜索查找类
1.find指令
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
基本语法
find [搜索范围] [选项]
-name<查询方式>:按照指定的文件名查找模式查找文件
-user<用户名>:查找属于指定用户名所有文件
-size<文件大小>:按照指定的文件大小查找文件,其中+表示大于,-小于,不写为等于
2.locate指令
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
基础语法:
locate 搜索文件
特别说明
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
3.grep指令和管道符号|
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法
grep [选项] 查找内容 源文件
常用选项
-n 显示匹配行及行号
-i 忽略字母大小写
案例 1: 请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号
写法 1: cat /home/hello.txt | grep “yes”
写法 2: grep -n “yes” /home/hello.txt
4.which指令
查看某个指令在哪个目录下
六.压缩和解压缩类
1.gzip和gunzip指令
gzip 用于压缩文件, gunzip 用于解压的
基本语法
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
案例:
案例 1: gzip 压缩, 将 /home 下的 hello.txt 文件进行压缩
gzip /home/hello.txt
案例 2: gunzip 压缩, 将 /home 下的 hello.txt.gz 文件进行解压缩
gunzip /home/hello.txt.gz
2.zip/unzip指令
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
zip 常用选项
-r:递归压缩,即压缩目录
unzip 的常用选项
-d<目录> :指定解压后文件的存放目录
应用实例
案例 1: 将 /home 下的 所有文件/文件夹进行压缩成 myhome.zip
zip -r myhome.zip /home/ [将 home 目录及其包含的文件和子文件夹都压缩]
案例 2: 将 myhome.zip 解压到 /opt/tmp 目录下
mkdir /opt/tmp
unzip -d /opt/tmp /home/myhome.zip
3.tar指令
tar 指令 是打包和解压指令,最后打包后的文件是 .tar.gz 的文件。
基本语法
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
多个文件中间空格隔开
选项说明:
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解包.tar文件
应用实例
案例 1: 压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
案例 2: 将/home 的文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
案例 3: 将 pc.tar.gz 解压到当前目录
tar -zxvf pc.tar.gz
案例4: 将myhome.tar.gz 解压到 /opt/tmp2目录下 (1) mkdir /opt/tmp2 (2) tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
七.组权限管理
1.修改文件和组
修改文件所有者:chown 用户名 文件名
修改文件/目录所在组:chgrp 组名 文件名
2.权限简介
权限介绍:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位说明
第 0 位确定文件类型(d, - , l , c , b)
l 是链接,相当于 windows 的快捷方式
d 是目录,相当于 windows 的文件夹
c 是字符设备文件,鼠标,键盘
b 是块设备,比如硬盘
第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
第 4-6 位确定所属组(同用户组的)拥有该文件的权限,—Group
第 7-9 位确定其他用户拥有该文件的权限 —Other
rwx 作用到文件
- [ r ]代表可读(read): 可以读取,查看
- [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权
限,才能删除该文件. - [ x ]代表可执行(execute):可以被执行
rwx 作用到目录
- [ r ]代表可读(read): 可以读取,ls 查看目录内容 r=4
- [ w ]代表可写(write): 可以修改, 对目录内创建+删除+重命名目录 w=2
- [ x ]代表可执行(execute):可以进入该目录 x=1
3.修改权限
第一种方式:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
- chmod u=rwx,g=rx,o=x 文件/目录名
- chmod o+w 文件/目录名
- chmod a-x 文件/目录名
案例演示
- 给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
chmod u=rwx,g=rx,o=rx abc - 给 abc 文件的所有者除去执行的权限,增加组写的权限
chmod u-x,g+w abc - 给 abc 文件的所有用户添加读的权限
chmod a+r abc
第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于 chmod 751 文件/目录名
4.修改文件所有者-chown
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
-R 如果是目录 则使其下所有子文件或目录递归生效
案例:
请将 /home/test 目录下所有的文件和目录的所有者都修改成 tom
chown -R tom /home/test
5.修改文件/目录所在组-chgrp
chgrp newgroup 文件/目录 【 改变所在组】
请将 /home/test 目录下所有的文件和目录的所在组都修改成 shaolin(少林)
chgrp -R shaolin /home/test
八.定时任务调度
1.crond 任务调度
crontab [选项]
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
service crond restart 重启任务调度
参数说明:
第一个*:一小时当中的第几分钟
第二个*:一天当中的第几小时
第三个*:一个月当中的第几天
第四个*:一年当中的第几月
第五个*:一周当中的星期几
特殊符号:
*:代表任何时间
,:代表不连续的事件
-:代表连续的事件范围
*/n:代表每个多久执行一次
2.at定时任务
at [选项] [时间]
Ctrl + D 结束 at 命令的输入, 输出两次
可以通过atq命令来查看系统重有没有执行的工作任务
九.磁盘相关
查看所有设备挂载情况:lsblk或者lsblk -f
查看系统整体磁盘使用情况:df -h
查询指定目录的磁盘占用情况:du -h
默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
- 统计/opt 文件夹下文件的个数
ls -l /opt | grep “^-” | wc -l - 统计/opt 文件夹下目录的个数
ls -l /opt | grep “^d” | wc -l - 统计/opt 文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep “^-” | wc -l - 统计/opt 文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep “^d” | wc -l - 以树状显示目录结构 tree 目录 , 注意,如果没有 tree ,则使用 yum install tree 安装
tree /home/
十.网络相关
1.查看ip地址ifconfig
linux查看ip地址:ifconfig
固定linux的ip:vi /etc/sysconfig/network-scripts/ifcfg-ens33并对内容进行修改,然后修改linux子网和网关。最后重启网络服务
2.查看进程ps
ps 命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数
指令:ps –aux|grep xxx
a:显示当前终端的所有进程信息
u:以用户的格式显示进程信息
x:显示后台进程运行的参数
ps -ef 是以全格式显示当前所有的进程
-e 显示所有进程。-f 全格式
3.终止进程kill和killall
kill [选项] 进程号(功能描述:通过进程号杀死/终止进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
-9 :表示强迫进程立即停止
4.查看进程树pstree
pstree [选项] ,可以更加直观的来看进程信息
p :显示进程的 PID
-u :显示进程的所属用户
5.服务
service 服务名 [start | stop | restart | reload | status]
在 CentOS7.0 后 很多服务不再使用 service ,而是 systemctl
service 指令管理的服务在 /etc/init.d 查看,即ls -l /etc/init.d
6.chkconfig指令
通过 chkconfig 命令可以给服务的各个运行级别设置自 启动/关闭
chkconfig 指令管理的服务在 /etc/init.d 查看
注意: Centos7.0 后,很多服务使用 systemctl 管理
chkconfig 基本语法
- 查看服务 chkconfig --list [| grep xxx]
- chkconfig 服务名 --list
- chkconfig --level 5 服务名 on/off
7.systemctl 指令
基本语法: systemctl [start | stop | restart | status] 服务名
systemctl 指令管理的服务在 /usr/lib/systemd/system 查看
systemctl 设置服务的自启动状态
systemctl list-unit-files [ | grep 服务名] (查看服务开机启动状态, grep 可以进行过滤)
systemctl enable 服务名 (设置服务开机启动)
systemctl disable 服务名 (关闭服务开机启动)
systemctl is-enabled 服务名 (查询某个服务是否是自启动的)
8.firewall指令
- 打开端口: firewall-cmd --permanent --add-port=端口号/协议
- 关闭端口: firewall-cmd --permanent --remove-port=端口号/协议
- 重新载入,才能生效 : firewall-cmd --reload
- 查询端口是否开放: firewall-cmd --query-port=端口/协议
9.动态监控进程
top [选项]
-d:指定top命令每隔几秒更新,默认是3秒
-i:使top不显示任何限制或者僵死进程
-p:通过指定监控进程ID来仅仅监控某个进程的状态
交互操作:
P:以CPU使用率排序,默认就是此项
M:以内存的使用率排序
N:以PID排序
q:退出top
u:监控用户
k:终止进程
10.监控网络状态netstat
基本语法
netstat [选项]
选项说明
-an 按一定顺序排列输出
-p 显示哪个进程在调用
应用案例
请查看服务名为 sshd 的服务的信息。
netstat -anp | grep sshd
十一.rpm和yum
1.rpm查询
rpm 用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。
查询已安装的 rpm 列表 rpm –qa|grep xx
举例: 看看当前系统,是否安装了 firefox
指令: rpm -qa | grep firefox
rpm -qa :查询所安装的所有 rpm 软件包
rpm -qa | more
rpm -qa | grep X [rpm -qa | grep firefox ]
rpm -q 软件包名 :查询软件包是否安装
案例:rpm -q firefox
rpm -qi 软件包名 :查询软件包信息
案例: rpm -qi firefox
rpm -ql 软件包名 :查询软件包中的文件
比如: rpm -ql firefox
rpm -qf 文件全路径名 查询文件所属的软件包
rpm -qf /etc/passwd
rpm -qf /root/install.log
2.卸载rpm包
基本语法
rpm -e RPM 包的名称 //erase
应用案例
删除 firefox 软件包
rpm -e firefox
3.安装rpm包
基本语法
rpm -ivh RPM 包全路径名称
参数说明
i=install 安装
v=verbose 提示
h=hash 进度条
4.yum
Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
查询 yum 服务器是否有需要安装的软件
yum list|grep xx 软件列表
yum install xxx 下载安装