1.linux的提示符
1 [root@localhost ~]#
提示符的格式
[当前用户名@当前的主机名 当前所在位置]身份标识符
管理员提示符
[root@localhost ~]#
普通用户提示符
[zxhk@localhost ~]$
身份标识有两种
# 表示这个用户是管理员
$ 表示这个用户是普通用户
当前所在的位置
~ 表示的是当前用户家目录
举例1
[root@localhost etc]#
1. 当前用户名是root
2. 当前计算机的主机名是localhost
3. 当前所在路径是 etc
4. 当前用户身份是 管理员
2.linux命令格式
命令 [选项] 参数
命令:linux中所有的命令,是严格区分大小写
选项:选项是用于控制命令的执行过程
参数:参数是指命令的作用对象
选型:
短选项:-字母
长选项:--单词
短选项可以进行合并
linux的特点
命令和文件名都是严格区分大小写
linux文件的后缀名对于文件的属性没有任何影响
linux中的核心哲学思想:一切皆为文件
3.linux目录结构
windows 是多根系统
linux 是单根系统
windows的目录结构
1. windows 是一个多根系统
2. 每个磁盘/分区都是一个根
3. 你在存储文件的时候,文件一定是存储在某一个根目录之下
4. 目录结构是倒树状结构
linux的目录结构特点
1. linux是一个单根系统
2. 你在linux中存储文件,只会有一个存储位置,就是 /
3. 目录结构是倒树状结构
linux的核心目录结构
linux根目录下的主要文件
/bin:存放的的是命令
/sbin:存放的的是命令
/tmp:存放临时文件【任何用户都可以在这个目录进行读写操作,但是只能操作自己的文件;这个目录
下的文件30天没有被访问或使用,就会被自动删除】
/etc:存储各种配置文件
/etc/inittab
/etc/rc.local
/etc/httpd/httpd.conf
/etc/sysconfig/network-scripts/ifcfg-eth0
/home:存放普通用户家目录
/root:root用户的家目录
/lib
/lib64
/usr:自定义安装软件保存位置
/usr/bin:存放的的是命令
/usr/sbin:存放的的是命令
/var:存储经常发生改变的文件
/var/log/messages
/var/log/secure
/boot
/sys
/dev:存储设备文件
/proc
4.linux基础命令
4.1pwd
全称:Print Working Directory
作用:显示当前所在的路径
格式:
pwd
案例
[root@localhost 桌面]# pwd
/root/桌面
最左侧的 / 表示的是系统根目录
/root/桌面 表示 当前所在的位置是 根下的root下的桌面目录中
4.2.cd
全称:Change Directory
作用:切换目录的
格式:
cd 目标位置
案例:切换到根目录下
cd /
总结
cd / 进入根目录
cd ~ 进入当前用户家目录
cd 进入当前用户家目录
cd - 进入上次执行cd前所在的目录
cd .. 进入上一层目录
4.3clear
作用:清空屏幕
格式:
clear
快捷键:ctrl + l
4.4touch
作用:新建空白文本文件
格式:
格式1:touch 文件名 在当前位置下创建文件
格式2:touch 路径/文件名 在指定的位置下创建文件
案例:在当前文件下创建文件a1.txt
touch a1.txt
touch a1.txt # 在当前目录下创建a1.txt
touch /a1.txt # 在根目录下创建a1.txt
touch ~/a1.txt # 在当前用户家目录下创建a1.txt
touch /etc/a1.txt # 在/etc下创建a1.txt
touch /etc/sysconfig/a1.txt # 在/etc/sysconfig/下创建a1.txt
touch ../a1.txt # 在当前所在目录的上一级目录中,创建a1.txt
touch ../../a1.txt # 在当前所在目录的上一级的上一级目录中,创建a1.txt
touch ../sysconfig/a1.txt
4.5执行命令报错信息
执行命令可能成功也可能失败
/通常执行成功是没有信息的
/通常执行失败都会有返回信息
导致命令执行失败有几种可能
第一种:命令写错了,报错信息格式
bash: 命令 command not found ...
第二种:文件路径错误,报错信息格式
命令 : 报错提示 : 产生错误的原因
touch: cannot touch /taaaa/aaa.txt : no such file or directory
第三种:没有权限
命令 : 报错提示 : 产生错误的原因
touch: cannot touch /taaaa/aaa.txt : permission denied
4.6mkdir
全称:MaKe DIRectory
作用:新建文件夹/目录
格式:
格式1:在当前位置下直接创建目录:mkdir 目录名
格式2:在指定位置下直接创建目录:mkdir [选项] 路径/目录名
选项
选项 -p:在父目录不存在的情况,会自动的创建父目录
案例1:在当前位置下创建目录dir1
mkdir dir1
案例2:在tmp下,创建目录a1,在a1里面创建a2,在a2,里面创建a3
mkdir -p /tmp/a1/a2/a3
4.7相对和绝对路径
绝对路径:
就是完整路径
在写绝对路径的时候,是从根目录开始写
相对路径:
不是完整的路径
在相对路径的时候,是从当前录开始写
案例:切换到home下
相对路径写法:cd ../../home
绝对路径写法:cd /home
4.8cp
全称:copy
作用:复制文件或者是目录
格式:
cp [选项] 源文件 目的路径
选项
-a:在复制文件的过程中,保持文件的属性不变,另外,也可以实现复制目录【cp默认无法直 接复制目录】
-r:递归复制。这个选项就是单纯的用来实现复制目录。
-f ;复制过程中如需覆盖,则不需要询问
-v; 显示复制过程
4.9mv
全称:move
作用:移动文件或者是目录
格式:
mv 源文件 目的路径
总结
将home下的a.txt移动到tmp下
mv /home/a.txt /tmp
将home下的a.txt移动到tmp下,改名成b.txt
mv /home/a.txt /tmp/b.txt
将home下的a.txt移动到根
mv /home/a.txt /
将home下的a.txt移动到根下,改名成b.txt
mv /home/a.txt /b.txt
将home下的a.txt移动到当前位置下
mv /home/a.txt ./
将home下的a.txt移动到当前位置下,改名成b.txt
mv /home/a.txt ./b.txt
将当前位置下的a.txt 移动到home下
mv ./a.txt /home
mv a.txt /home
将当前位置下的a.txt 移动到home下,改名成b.txt
mv ./a.txt /home/b.txt
mv a.txt /home/b.txt
将当前位置下的a.txt 移动到 当前位置下,改名成b.txt [文件改名]
mv a.txt b.txt
mv ./a.txt ./b.txt
下面命令的执行效果
mv /home/a.txt /aaa
这个命令有三种可能
第一种:/aaa不存在的,那么这个命令就是将a.txt移动到根下,并且名字修改为aaa
第二种:/aaa存在,而且是目录,那么这个命令就是将 a.txt 移动到 /aaa下面,文件名不变
第三种:/aaa存在,而且是一般文件,那么这个命令就是将 a.txt 移动到 /下,并且改名成 aaa 将原有文件覆盖
4.10 rm
全称:ReMove
作用:删除文件或者是目录的
格式:
rm -rf 要删除的文件或者目录
选项
-r:这个选项是专用于删除目录【在删除文件的时候,也可以加这个选项】
-f:这个选项是强制删除【删除过程不会进行询问】
4.11通配符
通配符就是一些具有特殊的含义的符号
*:表示任意个任意字符
?: 表示任意一个字符
|:前后可以分别写一个命令,通过管道符,可以见前面命令的执行结果传递给后面的命令,让后面的
命令再处理一次
1)删除所有文件
1)删除所有文件
2)删除所有文件名以a为开头的文件
rm -rf a*
3)删除所有文件名以a为结尾的文件
rm -rf *a
4.12 ls
作用:查看当前位置或者是指定的位置下,有什么文件
格式:
格式1:ls # 查看当前位置下文件
格式2:ls ./ # 查看当前位置下文件
格式3:ls 路径 # 查看指定的路径下有什么文件
选项
-a 显示所有文件,包括隐藏文件【linux中的隐藏文件是文件名前面是一个 . 】
-l 显示文件的属性信息
-h 以人类易读的方式显示文件的大小
-d 显示目录本身
-r 倒序排序
-t 根据修改的时间来排序
4.13cat
作用:查看文本文件的内容【可以将多个文件的内容一块显示出来】
格式:
cat 文件名 [文件名]
案例:用cat查看文件中的内容
cat /home/passwd
注意:用cat只能查看一般文件的内容,不能查看目录
4.14 more
作用:查看文件的内容【比较适合查看大文件】
格式:
more 文件名
more的操作
敲回车:显示下一行
f:显示下一屏
敲空格:显示下一屏
b:显示上一屏
q:退出查看
4.15 less
作用:查看文件的内容【比较适合查看大文件】
格式:
less 文件名
less的操作
敲回车:显示下一行
f:显示下一屏
敲空格:显示下一屏
b:显示上一屏
q:退出查看
4.16 head
作用:查看文件的内容【默认是看文件的前10行】
格式:
head -N 文件名
案例:查看文件/etc/passwd的前10行
格式1:
head /etc/passwd
格式2:
head -n10 /etc/passwd
案例:查看文件/etc/passwd的第一行
head -n1 /etc/passwd
4.17 tail
作用:查看文件的内容【默认是看文件的最后10行】
选项
1 -f: 动态监控文件内容变化,常用于监控日志文件变化
案例:查看文件/etc/passwd的最后10行
格式1:
tail /etc/passwd
格式2:
tail -n10 /etc/passwd
4.18 wc
作用:统计文件中有多少行、单词、字符
格式:
wc [选项] 文件
选项:
-w 统计单词
-c 统计字符
-l 统计行
案例:
wc passwd
26 36 1159 passwd
26 行数 36 单词数 1159 字符数
统计passwd有多少行
cat passwd | wc -l
wc -l passwd
4.19vi
作用:创建或者是编辑一个文本文件
格式:
vi 文件名
vi 路径/文件名
1)如果这个文件是存在的,而且是文本文件,那么vi就会直接打开这个文件
2)如果这个文件是存在的,而且是目录文件,那么vi也可以打开这个文件,但是无法正常的保存
3)这个文件不存在 ,vi会自动的创建一个新的空文件
注意:
cat、head、tail、more、less 和vi 都可以查看文件中的内容
但是vi,主要是用于对文件内容进行修改
而其他的命令是查看文件的内容
vi打开后,退出的方法
先按键盘的 ESC 键
然后 按 shift 和 : 两个键【一块按】
最后在左下角的冒号后面输入 q! ,然后敲回车
:或者 ! 只能是英文的,不能是中文
vi是一个模式化的工具
模式1:查看模式
功能:
1. 查看文件的内容
2. 在文件中,搜索指定的内容
3. 复制行或者是删除行
表现
进入到输入模式的时候,在屏幕的最下角没有任何内容
模式2:输入模式
功能:
1. 可以在文件中进写入或者修改操作
表现
进入到输入模式的时候,在屏幕的最下角出现 INSERT 字样
模式3:末行模式
功能
1. 主要是用于执行各种的命令
2. 显示行号
3. 保存、退出
4. 行跳转
表现
在屏幕的左下角出现 冒号和一个闪烁的光标
模式转换图
查看模式下的操作
nG:跳转到第n行
dd:删除光标所在的行【剪切】
yy:复制光标所在的行
p - 小:将剪切/复制的内容,粘贴到当前所在的行的下一行
P - 大:将剪切/复制的内容,粘贴到当前所在的行的上一行
u:撤销操作
/要搜索的内容:在/后面输入要搜索的内容,就可以直接开始搜索了,
n:继续向下搜索
N:继续向上搜索
按 dd 删除一行
按 4dd 删除连续的四行
按 yy 复制一行
按 15yy 复制连续的十五行
输入模式下的操作
输入模式没有操作
末行模式下的操作
数字:直接跳转到指定的行的行首
1 就是跳转到第一行
500 就是跳转到第500
$ 就是跳转到最后一行
set nu:在每一行的前面,显示一个行号
set nonu:取消每行前面的行号
nohl:取消高亮
w:保存
q:退出
!:强制执行
组合
wq 保存退出
wq!强制保存退出
q 退出
q! 强制退出【不对输入的内容进行保存,而进行输出】-不保存强制输出\
4.20 date
作用:显示和修改日期时间
格式:
date [MMDDhhmm[[cc]][.ss]]
MM.月
DD.日
hh:小时
mm:分钟
cc:年
ccyy:年
.ss:秒
date +%Y/%m/%d-%H:%M:%S
5.三剑客
5.1简介
其实就是三个命令
处理文本文件的三个命令
grep:过滤文件中的符合指定内容的行
awk:从文件中的每行内容中截取指定的部分/字段
sed:对文件中的内容进行替换
5.2 grep
grep也是一模式化的工具
在grep的时候,是针对每一行进行一次过滤,判断这行是否有满足条件的内容,如果有就显示这 行;否则不显示
格式:
grep [选项] "匹配的内容" 目标文件
cat 目标文件 | grep [选项] "匹配的内容"
选项
-v:取反
-o:显示匹配的内容
5.3 sed
sed 在处理文本的时候,会将文本加载到内存中,然后对内存中的文件的副本进行处理【也就是文件 的原始内容不受影响】
格式:
sed [选项] 操作 目标文件
选项
-i:修改原始文件【如果不加-i,那就是仅仅修改内存中的文件副本】
案例:将new.txt中的name=tom修改成jerry
sed -i "s/name=tom/name=jerry/g" new.txt
5.4 awk
截取文件中每行的指定的字段
概念
记录:文件中的每一行都是一条记录
分隔符:分割每一行的符号
字段:一条记录被分隔符分割后的每一块都是一个字段
格式:
awk -F "分隔符" '{print $数字}' 文件名
cat 文件名 | awk -F "分隔符" '{print $数字}'
补充
0 输出整条记录
NF 输出最后一个字段
6.正则表达式
6.1正则简介
正则,正则表达式
就是一些具有特殊含义的符号:? . * + ^ $ () {}
建议这样记
通配符:针对文件名进行匹配查找的
正则表达式:针对文件的内容进行匹配查找的
6.2匹配位置
匹配行首
^
匹配行尾
$
匹配单词首部
\<
匹配单词尾部
\>
案例1:找到包含root的行
grep "root" a.txt
案例2:找到以root为开头的行
grep "^root" a.txt
找到以root为结尾的行
grep "root$" a.txt
案例:找到包含root单词的行
grep "\<root\>" a.txt
6.3匹配范围
[] 表示限定一个范围
[0-9] 表示0-9之间的任意一个数字
[a-z] 表示任意一个小写字母
[A-Z] 表示任意一个大写字母
[0-9a-zA-Z] 表示任意一个数字或者字母
[a-zA-Z] 表示任意一个字母 = [a-Z]
[acd39] 表示这五个字符中的任意一个字符
[[:space:]] 表示一个空格
[[:digit:]] 表示任意一个数字
[[:lower:]] 表示任意一个小写字母
[[:upper:]] 表示任意一个大写字母
[[:alnum:]] 表示任意一个数字或者字母
[[:punct:]] 表示任意一个符号
[[:digit:][:space:]] 表示一个空格或者任意一个数字
案例:匹配以字母a或c或f为开头的行
grep "^[acf]" new1.txt
案例:匹配以数字或者空格或者#为开头的行
grep "^[[:space:][:digit:]#]" new1.txt
grep "^[[:digit:]# ]" new1.txt
案例:匹配以#为开头,后面是空格,空格后是非空字符
grep "^#[[:space:]][[:alnum:][:punct:]]" new1.txt
匹配范围以外的字符
[^xxxx]
6.4次数匹配
. 表示任意一个字符
* 表示其前面的字符出现任意次数【任意次可以是 0次 1次 无数次】
\{m,n\} 其前面的字符出现最少m次,最多n次
\{3,7\} 表示其前面的字符出现最少3次,最多7次
\{3,\} 表示其前面的字符出现最少3次
\{,7\} 表示其前面的字符出现最多7次
\{3,3\} 表示其前面的字符出现3次
? 表其前面的字符出现0次或者1次[最多一次] - 扩展正则的选项
+ 表其前面的字符出现最少一次 - 扩展正则的选项
案例:过滤去文件a.txt中,a前面至少有3个b的行
grep "b\{3,\}a" a.txt
案例:过滤去文件a.txt中,a前面最多有1个b的行
grep -E "b?a" 4.txt
grep "b\{,1\}a" 4.txt
案例:过滤去文件a.txt中,a前面最少有1个b的行
grep -E "b+a" 4.txt
常用的组合
.* 可表示任意个任意字符
6.5分组
\( 定位分组的位置 \)
\1 引用第一个分组的内容
\2 引用第二个分组的内容
案例:匹配出现两个相同数字的行
grep "\([0-9]\).*\1" 4.txt
6.6 | 或
测试对象
sadfa cat asfasdf Cat a asdf
案例:匹配cat Cat
grep -E "(c|C)at" 6.txt
grep -E "(cat|Cat)" 6.txt
7.用户管理
用户:标识计算上的资源的归属
root:x:0:0:root:/root:/bin/bash
7.1创建用户
7.2新建用户组 groupadd
格式:groupadd 组名
选项:
-g:指定用户组的id
groupadd -g 1080 a2
7.3 id命令
作用:显示指定用户的id信息
格式:id 【选项】 用户名
选项:
7.4passwd命令
7.5userdel 删除用户
7.6 chsh修改shell类型
chsh -s /bin/bash tom
7.7usermod修改用户的基本信息
7.8su命令
7.9权限
-rw-r--r--
- rw- r-- r--
一般文件 属主:读写权限 属组:读权限 其他用户:读权限
7.10chown修改文件的属主
7.11chgrp修改文件的属组
7.12修改文件的权限
chmod a=--- 11.txt
chmod 700 11.txt