周末复习一波Linux,Linux常用命令总结,还有语法+案例
目录
vi和vim
快捷键使用案例:
1)拷贝当前行yy ,拷贝当前行向下的5行5yy,并粘贴(p)。
2)删除当前行 dd ,删除当前行向下的5行5dd
3)在文件中查找某个单词[命令行下/关键字,回车查找,输入 n就是查找下一个],
4)设置文件的行号,取消文件的行号.[命令行下: set nu和:set nonu]
5)文档的最末行[G]和最首行[gg],注意这些都是在正常模式下执行的。
6)撤销上一个动作,正常模式下输入u
7)编辑/etc/profile文件,并将光标移动到第20行shift+g
第一步:显示行号:set nu
第二步:输入20这个数
第三步:输入shift+g
开机、重启、防火墙相关操作
- shutdown
shutdown -h now:表示立即关机
shutdown -h 1:表示1分钟后关机
shutdown -r now:立即重启 - halt
就是直接使用,效果等价于关机 - reboot
就是重启系统。
sync :把内存的数据同步到磁盘
注意: 当我们关机或者重启时,都应该先执行以下sync指令,把内存的数据写入磁盘,防止数据丢失。
防火墙:
查看防火墙状态
systemctl status firewalld
关闭防火墙
用户管理
增添用户:
useradd [选项] 用户名
当创建用户成功后,会自动的创建和用户同名的家目录
也可以通过useradd -d 指定目录新的用户名,给新创建的用户指定家目录
给用户指定或者修改密码:
基本语法
passwd 用户名
删除用户
基本语法
userdel 用户名
应用案例:
1)删除用户xm,但是要保留家目录
2)删除用户xh 以及用户主目录
查询用户信息
基本语法
id 用户名
应用案例:
查询root信息
切换用户
基本语法
su - 切换用户名
细节说明:
1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2)当需要返回到原来用户时,使用exit 指令
用户组
增加组
groupadd 组名
删除组
groupdel 组名
增加用户时直接指定组
useradd -g 用户组 用户名
修改用户的组
usermod -g 用户组 用户名
帮助指令
man获得帮助信息
基本语法
man[命令或配置文件] (功能描述:获得帮助信息)
应用示例
help 指令
help 命令(功能描述:获得shell内置命令的帮助信息)
应用实例:
文件目录类
pwd 指令
pwd (功能描述:显示当前工作目录的绝对路径)
ls指令
ls [选项] [目录或是文件]
常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息
cd指令
cd [参数] (功能描述:切换到指定目录)
cd~或者cd :回到自己的家目录
cd …回到当前目录的上一级目录
mkdir指令
mkdir 「选项] 要创建的目录
常用选项
-p :创建多级目录
rmdir指令(删除空
目录)
rmdir [选项] 要删除的空目录
touch指令(创建空文件)
touch 文件名称
cp指令(拷贝文件到指定目录)
cp [选项] source dest
常用选项
-r :递归复制整个文件夹
使用细节:
rm指令(移除【删除】文件或目录)
rm [选项] 要册除的文件或目录
常用选项:
mv指令(移动文件与目录或重命名)
基本语法:
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
案例2:将/home/pig.txt文件移动到/root目录下
cat指令(查看文件内容,是以只读的方式打开)
cat [选项] 要查看的文件
more指令
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明
基本语法:
more要查看的文件
应用实例:
less指令
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法:
less 要查看的文件
快捷键
时间日期类
date指令-显示当前日期
基本语法
1 ) date (功能描述:显示当前时间)
2) date +%Y (功能描述:显示当前年份)
3) date +%m (功能描述:显示当前月份)
4) date +%d (功能描述:显示当前是哪一天)
5) date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
date指令-设置日期
date -s 字符串时间
案例:
cal指令(查看日历指令)
cal [选项] (功能描述:不加选项,显示本月日历)
搜索查找类
find 指令
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
grep指令和 管道符号 │
案例1:请在 hello.txt文件中,查找"yes"所在行,并且显示行号
压缩和解压类
gzip/gunzip指令
基本语法
案例2: gunzip压缩,将 /home下的 hello.txt.gz文件进行解压缩
zip/unzip指令
zip 用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用的
tar指令
案例2:将/home的文件夹压缩成myhome.tar.gz
指定解压到的那个目录,事先要存在才能成功,否则会报错。
组管理和权限管理
Linux 组基本介绍
文件/目录所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
查看文件的所有者
修改文件所有者
组的创建
groupadd 组名
应用案例
创建一个组, ,monster
创建一个用户fox ,并放入到monster组中
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root 的管理权限可以改变某个用户所在的组。
应用案例
权限的基本介绍
rwx权限详解
rwx作用到文件
1)[ r ]代表可读(read):可以读取,查看
2) [ w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3)[x ]代表可执行(execute):可以被执行
rwx作用到目录
1)[ r]代表可读(read):可以读取,ls查看目录内容
2)[ w]代表可写(write):可以修改,目录内创建+删除+重命名目录
3)[ x ]代表可执行(execute):可以进入该目录
文件及目录权限实际案例
可用数字表示为: r=4,w=2,x=1因此rwx=4+2+1=7
l 文件:硬连接数或目录:子目录数
root 用户
root 组
1213 文件大小(字节),如果是文件夹,显示 4096字节
Feb 2 09:39 最后修改日期
abc 文件名
修改权限-chmod
3)给abc文件的所有用户添加读的权限
第二种方式:通过数字变更权限
修改文件所有者-chown
chown newowner file改变文件的所有者
chown newowner: newgroupfile改变用户的所有者和所有组
-R如果是目录则使其下所有子文件或目录递归生效
案例演示:
1)请将 /home/abc .txt文件的所有者修改成tom
修改文件所在组-chgrp
案例演示:
crond任务调度
crontab 进行定时任务的设置
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
快速入门
任务的要求:
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab -e命令。
接着输入任务到调度文件
如:/1***ls -l/etc/ >/tmp/to.txt
意思说每小时的每分钟执行ls - l /etc/ > /tmp/to.txt命令
步骤如下:
1 ) crontab -e
2) /1***ls -l/etc >>/tmp/to.txt
3)当保存退出后就程序。
4)在每一分钟都会自动的调用ls -l /etc >>/tmp/to.txt
参数细节说明
任务调度的几个应用实例
案例1:每隔Ⅰ分钟,就将当前的日期信息,追加到/tmp/mydate文件中
案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中
1)先编写一个文件/home/mytask2.sh
date >>/tmp/mycal
cal >>/tmp/mycal
2)给mytask1.sh 一个可以执行权限
chmod 744 /home/mytask2.sh
3 ) crontab -e
4)/1***/home/mytask2.sh
5)成功
案例3:每天凌晨2:00将mysql数据库testdb ,备份到文件中mydb.bak
RPM和YUM
rpm包的管理
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows的setup.exe,这一文件格式名称虽然打上了RedHat 的标志,但理念是通用的.
Linux的分发版本都有采用(suse,redhat, centos等等),可以算是公认的行业标准了。
rpm包的简单查询指令
查询已安装的rpm列表rpm-qalgrep xx
请查询看一下,当前的Linux有没有安装firefox
rpm包名基本格式
rpm包的其它查询指令
rpm -qa :查询所安装的所有rpm软件包
rpm -qa | more[分页显示]
rpm -qa l grep X [rpm -qa | grep firefox ]
rpm -q软件包名:查询软件包是否安装
rpm -q firefox
rpm -qi软件包名:查询软件包信息
rpm -qi file
rpm -ql 软件包名:查询软件包中的文件
rpm -ql firefox
卸载rpm包![在这里插入图片描述](https://img-blog.csdnimg.cn/8d846dacff934258a9b1d39ee06a9c7a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rWq6YeM5bCP55m96b6ZbmJ3,size_18,color_FFFFFF,t_70,g_se,x_16)
细节问题
1)如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
2)如果我们就是要删除 foo这个rpm包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
如: $ rpm -e --nodeps foo
带上 --nodeps就是强制删除。
安装rpm包
rpm -ivh RPM包全路径名称
yum
Yum是一个Shell前端软件包管理器
。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系
,并且一次安装所有依赖的软件包。使用yum的前提是可以联网。
yum的基本指令
- 查询yum服务器是否有需要安装的软件
yum listlgrep xx软件列表 - 安装指定的yum包
yum install xxx下载安装
应用案例