一、Linux简介
一种操作系统,安装在计算机硬件上、用来管理计算机的硬件和软件资源的系统软件
- Linux是开源的、免费的
- Linux注重系统的安全性、稳定性、高并发处理能力
- Linux系统没有优异的可视化界面
二、Vi和Vim
vi和vim是Linux中提供的一种文本编辑器,这种编辑器用来在Linux中查看或者编辑文本文件,就好像windows中的记事本一样。
2.1、vi和vim都有三种模式
第一种:一般模式,用vi或者vim命令打开文件,进入一般模式
可以查看文件的内容,并且可以通过上下左右键移动光标
查看文件某一部分,但是不能编辑文件内容
第二种:编辑模式,在一般模式下按下i键或者a键或者I键或者A键
就可以进入编辑模式,编辑模式下只能编辑不能保存,也不会
自动保存
需要保存的话,要先回到一般模式,按esc键
第三种:命令模式,在一般模式下,按下shift+:,进入命令模式,
输入:q!--表示不保存强制退出编辑器
wq--保存并且退出
q---只是退出编辑器
2.2、vi和vim编辑器的常用快捷键
1、复制当前行:在一般模式下,按yy,把光标所在的行复制到剪切板
按p,把剪切板中的内容粘贴到光标所在的下一行
2、复制当前行往下5行:在一般模式下,按5yy,把光标所在行往下5行复制到剪切板
3、在文本文件中查找关键字:在命令行模式下,输入“/关键字”,回车,
找到之后,按n表示光标查找下一个关键字
4、删除光标所在的当前行:在一般模式下,按dd,删除
5、删除光标所在的行往下5行:在一般模式下,按5dd
6、撤销上次编辑的内容:在一般模式下,按u
7、显示行号:命令模式下,set nu
三、Linux中用户管理
1、任何使用Linux系统资源的用户,必须使用一个合法的账号和密码;
账号和密码一般都是向系统管理员申请
2、root是Linux系统安装时默认创建的系统管理员账号,由root创建普通账号
3、添加用户:useradd [选项] 用户名
例:useradd lisi
|->创建一个用户lisi
|->在/home目录下创建用的根目录,目录名称默认跟用户名相同
|->在Linux中任何一个用户都至少属于一个组,新建用户时如果不指定
组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中
useradd -d /home/ww wangwu 创建用户的同时来指定用户的根目录
4、给用户设置密码
passwd 用户名
例:passwd lisi
5、删除用户
userdel 用户名
例:userdel lisi
例:userdel -r lisi 删除用户的同时级联删除它的主目录
6、查看用户的信息
id 用户名
7、切换用户
su 用户名 (switch user 的缩写)
四、Linux中的组管理
1、Linux中的组相当于角色的概念,可以对有共性的用户进行统一管理,每一个用户至少属于一个组,不能独立于组存在,也可以属于多个组
2、新建用户时如果不指定组,则会新建一个组,组名跟用户名相同并把该用户添加到该组中
3、添加组:groupadd 组名
例:groupadd dev
4、删除组:groupdel 组名
例:groupdel dev
5、把用户添加到组中:gpasswd -a 用户名 组名
例:gpasswd -a hdh dev
6、把用户从组中移除:gpasswd -d 用户名 组名
例:gpasswd -d hdh dev
7、创建用户时,指定所属的组(主组):useradd -g 组名 用户名
五、Linux中的帮助命令
1、用来查看Linux系统手册上的帮助信息:man 命令
man ls 分屏显示帮助信息
按回车翻一行、按空格翻一页、按q退出
2、查看命令的内置帮助信息:help 命令
六、Linux中的文件和目录操作的命令
1、查看当前所在目录:pwd
2、查看指定目录下所有的子目录或者文件列表:ls
ls /home
ls 查看当前目录下所有的子目录和文件
ls -l /home 以列表的形式显示 (l是list的缩写)
ls -a /home 显示指定目录下所有的子目录和文件(包括虚拟的目录)
ls -al 以列表形式显示指定目录下所有的子目录和文件(包括虚拟的目录)
3、切换目录:cd 目录名
绝对目录:以盘符开始的目录
cd /opt/testDir
~:代表当前用户的根目录,在任何目录下执行 cd ~,可以进去当前账户的根目录
相对目录:以目录名开始的目录叫相对目录,从当前目录开始查找
cd testDir
4、创建目录:mkdir 目录名
目录名可以是绝对目录,也可以是相对目录
1、mkdir -p /opt/testDir/test3/test4 一次创建多级目录
5、创建一个或者多个空文件:touch 文件名列表(文件名之间用空格隔开)
touch t1.txt
6、复制文件:cp source(源) dest(目标)
cp t1.txt test2 把t1文件复制到test2文件中
cp -r test3 test2 递归复制,可以复制目录
7、删除文件或者目录:rm 文件名或者目录名
rm t1.txt 提示删除
rm -f t2.txt 强制删除
rm -r test2 提示递归删除目录
rm -rf test2 强制递归删除目录
8、移动文件或目录;mv source(源) dest(目标)
移动文件
mv tt.txt text1
移动目录
mv test1 test2
文件的重命名
mv t1.txt t2.txt
9、查看文件的具体内容:cat 文件名
cat tt.txt
cat -n tt.txt 查看文件内容并显示行号
10、分页查看文件内容:more 文件名,一次性加载文件所有内容到内存,分页显示
回车翻一行,空格翻一页
more t4.txt
11、查看文件的头10行:head 文件名
head tt.txt 默认查看头10行
head -n 5 tt.txt 查看头6行的内容,6可以是任意数字
12、查看文件尾10行内容:tail 文件名
tail tt.txt 默认查看末尾10行
tail -n 5 tt.txt 查看尾部5行的内容,5可以是任意数字
13、echo指令
输出系统变量或者常量的值到命令行终端
echo $JAVA_HOME
14、把前一个查看命令的结果输出到指定的文件中,如果目标不存在
会新建一个:查看命令 > 文件名
如果目标文件以存在,则把文件以前的内容覆盖
cat tt.txt > t3.txt 复制,把tt.txt中的内容复制到 t3.txt中
>> 可以追加写入
七、Linux中关于日期和时间的操作指令
1、查看或者设置系统当前时间:date
date 查看系统当前的完整的日期和时间
date + %Y 系统当前的年份
date + %m 系统当前的月份
date + %d 系统当前的日期
date '+%Y-%m-%d %H:%M:%S' 按yyyy-MM-dd HH:mm:ss格式显示
date -S '2020-10-2- 10:20:30' 设置系统当前时间
2、查看系统日历:cal
cal:查看当前月份的日历
cal 2020: 查看2020年的日历
八、Linux中关于搜索文件或者目录的命令:find 关键字
find *.txt 默认搜索当前目录下所有的txt文件
* 是通配符
find /etc *.txt 搜素/etc目录下所有的txt文件
find /etc -size =5M +5M -5M 搜索/etc 目录下所有等于/大于/小于5M的文件
-user:按文件的所有者进行搜索
-size:按文件的大小进行搜索
-name:按文件的名称进行搜索,默认按照名称搜索(文件或者目录所在的路径也在搜索范围之内)
九、过滤查找
在前一个搜索命令的结果中进行进一步的过滤
搜索命令 |grep 过滤条件
查看命令 |grep 过滤条件 过滤条件区分大小写
查看命令 |grep -i 过滤条件 忽略大小写
find *.txt |grep s 找出当前目录下所有的txt文件,按照含有字母s的进行过滤
十、Linux中有关压缩和解压的命令
1、压缩或者解压单个文件:gzip
gzip 文件名 自动生成一个.gz的压缩包,并且会把原来的文件删除
2、解压单个文件:gunzip
gunzip .gz压缩包名 解压指定的压缩包,并把.gz的压缩包删除
3、压缩(打包)或者解压多个文件和目录:zip 目标压缩包名称 文件或者目录列表 (不删除源文件)
zip tt.zip resulu.txt tt.txt
unzip 压缩包名 :将指定的zip包解压到当前目录下
unzip 压缩包名 -d 目录名:指定解压目录
(解压后,不删除压缩包)
4、压缩或者解压多个文件或者目录:tar [选项] 目标压缩包名称(xxx.tar.gz) 需要打包的文件或者目录列表
tar -c :打包或者压缩
tar -x :解压
tar -x 压缩包名(xxx.tar.gz):将指定的.tar.gz压缩包解压到当前目录
tar -zcvf xxx.tar.gz 文件或者目录列表
tar -zxvf xxx.tar.gz -C 解压目录名 (不删除原来的压缩文件)
十一、Linux文件与组管理指令
1、在Linux中,每一个用户都属于一个组,用户不能独立于组存在,一个用户可以属于多个组
在Linux中,每一个文件或者目录也都属于一个组,文件也必须属于一个组,并且只能属于一个组
文件或者目录通过组来控制那些用户可以对它进行那些操作,即文件或者目录的访问权限
在文件或者目录看来,Linux系统中的所有用户分为三类:
所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
同组用户:和文件/目录属于同一个组的用户
其他组用户:既不是文件/目录的所有者,也不是同组用户
2、查看文件的所有者和所在的组:
ls -l
3、修改文件或者目录的所有者:chown 新的所有者 文件名
chown 新的所有者:新的组 文件名
chown -R 新的所有者 目录名(递归修改目录及目录中的文件的所有者和所在的组)
4、修改文件或者目录的所在组:chgrp 新的组名 文件名或者目录名
chgrp -R 新的组名 文件名或者目录名(递归修改)
十二、Linux中文件或者目录的权限管理
1、一个用户至少属于一个组,也可以属于多个组
一个文件或者目录也必须属于一个组,并且只能属于一个组
2、Linux中文件或者目录的三种权限
文件:
第一种:读(read)
可以读取、查看文件的内容,比如:cat、more、less、head、tail等
第二种:写(write)
可以修改文件的内容,比如:vi、vim
第三种:执行(execute)
如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh
目录:
第一种:读(read)
可以读取、查看目录下边的内容,比如:ls等
第二种:写(write)
可以修改目录中的内容,比如:mkdir、rm、touch、mv
第三种:执行(execute)
可以进入该目录,比如:cd等
十三、文件或者目录的权限控制
1、在Linux中,任何一个文件或者目录都有三部分权限:
所有者权限:文件/所有者对该文件所拥有的的权限,使用r、w、x分别表示
读、写、执行的权限。比如rwx--拥有读写执行的权限,r-x:拥有
读和执行的权限,---:没有任何权限,r--:只拥有读的权限
同组用户权限:文件或者目录的同组用户对该文件所拥有的权限
其他组用户权限:其他组用户对该文件/目录所有用的权限
2、查看文件或目录的权限:ls -l
3、修改文件或者目录的权限:chmod
用r、w、x分别表示读、写、执行的权限
用u、g、o、a分别表示所有者、同组用户、其他用户、所有用户
用+、-、=分别表示给指定用户增加、减少、设置对应的权限
4、使用数字的方式修改文件/目录的权限
每一个权限都可以用一个数字来表示:
r、w、x
4、2、1
2^2、2^1、2^0
每一个文件/目录都有三部分权限,每一部分权限都可以用一组数据之和来表示:
rwx rwx rw-
7 7 6
chomd 776 tt.txt
十四、Linux中的服务管理
1、服务是支持Linux运行的的一些必要程序,本质上也是进程,叫守护进程,为应用程序提供必要支撑,比如sshd、防护墙等
2、操作服务:systemCtl [参数] 服务名称
参数:start stop restart reload status enable
3、以防火墙为例:
systemctl status firewalld 查看防火墙状态
systemctl stop firewalld 关闭防火墙
systemctl start firewalld 开启防火墙
systemctl enable firealld 设置防火墙开机启动
老版的Linux或者有些发型版本的Linux,操作服务使用service命令
十五、linux软件包中的管理:软件安装包
1、RPM包:一种Linux的软件包的打包和安装工具,它操作的软件包都是.rpm结尾
1、如何使用RPM:使用rpm命令
查看当前系统中已经安装的rpm软件包:rpm -qa|grep firefox
卸载rpm软件包:rpm -e
安装rpm软件包:rpm -ivh xxx.rpm
2、YUM包管理:是一种基于rpm的软件包管理工具,他能够从指定服务器上自动下载RPM包并且自动安装,可以自动处理
软件包之间的依赖关系
1、查看当前系统中已经安装的rpm包:yum list installed
2、卸载rpm包:yum remove 软件包名
3、安装rpm包:yum install firefox