2.1 linux的提示符
1. [root@localhost~]#
提示符的格式
1. [当前用户名@当前的主机名 当前所在的位置]身份标识符
root的提示符
1. [root@localhost~]#
tom的提示符
1.[tom@localhost~]$
身份标识有俩种
1. #表示这个用户是管理员
2. $表示这个用户是普通用户
当前所在的位置
当前所在的位置-工作目录
工作目录的表示形式有俩种
1. 形式1:具体的目录 2. 形式2:~
~表示的是当前用户家目录
案例1:
1. [root@localhost etc]#
1.当前用户名是root
2.当前计算机的主机名是localhost
3.当前的路劲是etc
4.当前的用户身份是管理员
案例2:
1. [tom@localhost etc]$
1.当前的用户名是tom
2.当前的主机名是localhost
3.当前所在的路径是etc
4.当前的用户是普通用户
linux的俩种界面:
- 图形界面
- 类似于windows,可以用鼠标点击操作
- 字符界面
- 类似于dos系统,所有的操作都只能依靠命令
2.2 linux的命令格式
1. 命令 [选项] 参数
- 命令:linux中所有的命令,是严格区分大小写
- 选项:选项是用于控制命令的执行过程
- 参数:参数是指命令的作用对象
造型
1. 短选项:-字母
2. 长选项:--单词
- 短选项可以进行合并
2.3 linux目录结构
windows是多跟系统
linux是单根系统
windows的目录结构:
- windows 是一个多根系统
- 每个磁盘/分区都是一个根
- 你在存储文件的时候,文件一定是存储在某一个根目录之下
- 目录结构是倒树状结构
linux的目录结构特点:
- linux是一个单根系统
- 你在linux中存储文件,只会有一个存储位置,就是 / 、
- 目录结构是倒树状结构
注意: 根的用法/
linnux根目录下的主要文件
1. /bin:存放的的是命令 2. /sbin:存放的的是命令 3. /tmp:存放临时文件【任何用户都可以在这个目录进行读写操作,但是只能操作自己的文件;这个目录 下的文件30天没有被访问或使用,就会被自动删除】 4. /etc:存储各种配置文件 /etc/inittab /etc/rc.local /etc/httpd/httpd.conf /etc/sysconfig/network-scripts/ifcfg-eth0 5. /home:存放普通用户家目录 6. /root:root用户的家目录 7. /usr:自定义安装软件保存位置 /usr/bin:存放的的是命令 /usr/sbin:存放的的是命令 8. /var:存储经常发生改变的文件 /var/log/messages /var/log/secure 9. /dev:存储设备文件
2.4 linux基础命令
2.4.1 pwd
- 全程:Print Working Directory
- 作用:显示当前所在的路径
- 格式:
-
1. pwd
案例:
1.[root@localhost network-scripts]# pwd
2./etc/sysconfig/network-scripts
1. [root@localhost 桌面]# pwd
2. /root/桌面
最左侧的 / 表示的是系统根目录
/root/桌面 表示 当前所在的位置是 根下的root下的桌面目录中
案例:
1.[root@localhost network-scripts]# pwd
2.etc/sysconfig/network-scripts
我当前所在的位置是 根目录下的etc目录下的sysconfig目录下的/network-scripts目录中
案例:
1. [root@localhost /]# pwd
2./
当前我在根目录下
2.4.2 cd
- 全称:Change Directory
- 作用:切换目录的
- 格式:
-
1. cd 目标位置
案例1:切换到根目录下
1. cd /
案例2:切换到dev目录下
dev在根目录下
1. cd /dev
注意:路径是连续的,不能加 空格
目录和目录之间,用/进行分割
案例3:切换etc下的sysconfig目录中 etc在根目录下
1. cd /etc/sysconfig
或者
2. cd /etc/sysconfig/
总结:
1.cd / 进入根目录
2.cd ~ 进入当前用户家目录
3.cd 进入当前用户家目录
4.cd - 进入上次执行cd前所在
5.cd .. 进入上一层目录
2.4.3 clear
- 作用:清空屏幕
- 格式:
1. clear
快捷键:ctrl+l
2.4.4 touch
- 作用:新建空白文本文件
- 格式:
格式1:touch 文件名 在当前位置下创建文件
格式2:touch 路径/文件名 在指定的位置下创建文件
案例1:在当前位置下创建文件a1.txt
1. touch a1.txt
1.touch a1.txt # 在当前目录下创建a1.txt
2.touch /a1.txt # 在根目录下创建a1.txt
3.touch ~/a1.txt # 在当前用户家目录下创建a1.txt
4.touch /etc/a1.txt # 在/etc下创建a1.txt
5.touch /etc/sysconfig/a1.txt # 在/etc/sysconfig/下创建a1.txt
6.touch ../a1.txt # 在当前所在目录的上一级目录中,创建a1.txt
7.touch ../../a1.txt # 在当前所在目录的上一级的上一级目录中,创建a1.txt
8.touch ../sysconfig/a1.txt
案例2:去根目录下,创建a2.txt
方法1:
cd /
touch a2.txt
方法2:
touch /a2.txt
案例3:去根etc下,创建a3.txt
方法1:
cd /etc
touch a3.txt
方法2:
touch /etc/a3.txt
案例4:去根etc下的sysconfig中,创建a4.txt
方法1:
cd /etc/sysconfig
touch a4.txt
方法2:
touch /etc/sysconfig/a4.txt
2.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
2.4.6 mkdir
- 全称:MaKe DIRectory
- 作用:新建文件夹/目录
- 格式:
-
格式1:在当前位置下直接创建目录:mkdir 目录名 格式2:在指定位置下直接创建目录:mkdir [选项] 路径/目录名
案例1:在当前位置下创建目录dir1
mkdir dir1
案例2:在home下创建目录dir2
mkdir /home/dir2
案例3:在tmp下创建目录dir3
mkdir /tmp/dir3
案例4:在根目录下创建目录dir4
mkdir /dir4
案例5:在tmp下,创建目录a1,在a1里面创建a2,在a2,里面创建a3
mkdir /tmp/a1/a2/a3 -p
注意:在linux中,命令执行成功是不显示信息的,执行失败会有信息
2.4.7相对和绝对路径
绝对路径:
- 就是完整路径
- 从根的目录下开始写
相对路径:
- 不是完整的路径
- 从当前位置开始写
例如:当前我们的工作目录是 /etc/sysconfig
案例1:切换到根下
相对路径写法:cd ../../
绝对路径写法:cd /
案例2:切换到home下
相对路径写法:cd ../../home
绝对路径写法:cd /home
案例3:切换到etc下
相对路径写法:cd ../
绝对路径写法:cd /etc
案例4:切换到sysconfig下面的network-scripts目录
相对路径写法:cd network-scripts
相对路径写法:cd ./network-scripts
绝对路径写法:cd /etc/sysconfig/network-scripts
2.4.8 cp
- 全称:copy
- 作用:复制文件或者是目录
- 格式:
cp [选项] 源文件 目的路径
选项
- -a:在复制文件的过程中,保持文件的属性不变,另外,也可以实现复制目录【cp默认无法直 接复制目录】
- -r:递归复制。这个选项就是单纯的用来实现复制目录。
总结案例【一般文件】
将tmp下的a.txt复制到home下
cp -a /tmp/a.txt /home/
将tmp下的a.txt复制到home下,名字改为b.txt
cp -a /tmp/a.txt /home/b.txt
将tmp下的a.txt复制到/etc/sysconfig下
cp -a /tmp/a.txt /etc/sysconfig
将tmp下的a.txt复制到当前位置
cp -a /tmp/a.txt ./
将tmp下的a.txt复制到当前位置,名字改为qq.txt
cp -a /tmp/a.txt ./qq.txt
将tmp下的a.txt复制到根下
cp -a /tmp/a.txt /
将tmp下的a.txt复制到根下,名字改为qq.txt
cp -a /tmp/a.txt /qq.txt
将当前位置下的a.txt复制到home下
cp -a a.txt /home
将当前位置下的a.txt复制到根下
cp -a a.txt /
将当前位置下的a.txt复制到上一级目录下
cp -a a.txt ../
将当前位置下的a.txt 复制到当前位置改名为b.txt
cp -a a.txt b.txt
总结案例[目录文件]
将tmp下的目录a001复制到个根下
cp -a /tmp/a001 /
扩展:
./ 也可以表示当前位置
[ ] 表示里面的内容是可选【可选的意思就是说,可以选,也可以不选】
< > 表示里面的内容是必选【必选的意思就是说,里面的内容必须得有】
2.4.9 mv
- 全称:
- 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 将原有文件覆盖
2.4.10 rm
- 全称:ReMove
- 作用:删除文件或者是目录的
- 格式:
rm -rf 要删除的文件或者目录
选项
-r:这个选项是专用于删除目录【在删除文件的时候,也可以加这个选项】
-f:这个选项是强制删除【删除过程不会进行询问】
总结1:
删除tmp下的a.txt
rm -rf /tmp/a.txt
删除根下的a.txt
rm -rf /a.txt
删除当前位置下的a.txt
rm -rf a.txt
rm -rf ./a.txt
2.4.11 通配符
通配符就是一些具有特殊的含义的符号
*:表示任意个任意字符 ?: 表示任意一个字符 |:前后可以分别写一个命令,通过管道符,可以见前面命令的执行结果传递给后面的命令,让后面的 命令再处理一次
例如:表示以a为开头的文件名
a*
可以匹配:
aaaaaaa
a11112312341234
a
不能匹配:
caaasdfasfdasdfasf
例如:表示以a为结尾的文件名
*a
可以匹配
asdfasdfasdfa
w4dsgfdsgdfgaaasdasfda
a
aa
不能匹配
aaaax
例如:表示文件名包含a
*a*
可以匹配
222afsf
a
1)删除所有文件
rm -rf *
2)删除所有文件名以a为开头的文件
rm -rf a*
3)删除所有文件名以a为结尾的文件
rm -rf *a
2.4.12 ls
- 作用:查看当前位置或者是指定的位置下,有什么文件
- 格式:
格式1:ls # 查看当前位置下文件
格式2:ls ./ # 查看当前位置下文件
格式3:ls 路径 # 查看指定的路径下有什么文件
选项
- -a 显示所有文件,包括隐藏文件【linux中的隐藏文件是文件名前面是一个 . 】
- -l 显示文件的属性信息
- -h 以人类易读的方式显示文件的大小
案例1:查看根目录下的全部的文件
ls /
案例2:查看home下的全部文件
ls /home
案例3:查看当前位置下的全部文件
ls
ls ./
案例4:创建一个隐藏文件,然后尝试用ls查看这个文件
touch .a.txt
ls -a
案例5:查看home下的全部文件,包括隐藏文件
ls -a /home
案例6:查看当前位置下的文件的属性
ls -l
案例7:查看home下的文件的属性
ls -l /home
案例8:查看当前位置下所有文件的属性,包括隐藏文件
ls -l -a
ls -la
ls -al
案例9:查看home下的文件的属性,包括隐藏文件
ls -a -l /home
ls -al /home
ls -la /home
关于文件类型
- linux中有多种文件类型 目录[d]:文件夹
- 一般文件[-]:文档,例如doc、txt
- 设备文件[b 或者 c]:指的是计算机中的外部设备,例如硬盘、u盘、键盘、鼠标
- 链接文件[l]:快捷方式
- ...
2.4.13 cat
- 作用:查看文本文件的内容【可以将多个文件的内容一块显示出来】
- 格式:
cat 文件名 [文件名]
案例:将/etc/passwd 文件复制到home下,然后用cat查看文件中的内容
[root@localhost ~]# cp /etc/passwd /home/
[root@localhost ~]# cat /home/passwd
注意:用cat只能查看一般文件的内容,不能查看目录
2.4.14 more
- 作用:查看文件的内容【比较适合查看大文件】
- 格式:
more 文件名
more的操作
- 敲回车:显示下一行
- f:显示下一屏
- 敲空格:显示下一屏
- b:显示上一屏
- q:退出查看
2.4.15 less
- 作用:查看文件的内容【比较适合查看大文件】
- 格式:
less 文件名
less的操作
- 敲回车:显示下一行
- f:显示下一屏
- 敲空格:显示下一屏
- b:显示上一屏
- q:退出查看
2.4.16 head
- 作用:查看文件的内容【默认是看文件的前10行】
- 格式:
head -N 文件名
案例1:查看文件/etc/passwd的前10行
格式1:
head /etc/passwd
格式2:
head -n10 /etc/passwd
2.4.17 tail
- 作用:查看文件的内容【默认是看文件的最后10行】
- 选项
-f: 动态监控文件内容变化,常用于监控日志文件变化
- 格式
tail -N 文件名
案例1:查看文件/etc/passwd的最后10行
格式1:
tail /etc/passwd
格式2:
tail -n10 /etc/passwd
2.4.18 wc
- 作用:统计文件中有多少行、单词、字符
- 格式:
wc [选项] 文件
选项
-w 统计单词
-c 统计字符
-l 统计行
统计passwd有多少行
cat passwd | wc -l
wc -l passwd
案例:计算etc下有多少个文件
ls -l /etc | wc -l
2.4.19 vi
作用:创建或者是编辑一个文本文件
格式:
vi 文件名
vi 路径/文件名
1)如果这个文件是存在的,而且是文本文件,那么vi就会直接打开这个文件
2)如果这个文件是存在的,而且是目录文件,那么vi也可以打开这个文件,但是无法正常的保存
3)这个文件不存在 ,vi会自动的创建一个新的空文件
注意:
- cat、head、tail、more、less 和vi 都可以查看文件中的内容
- 但是vi,主要是用于对文件内容进行修改
- 而其他的命令是查看文件的内容
案例1:复制文件 /etc/init.d/functions 复制到home下,然后用vi打开看看这个文件的内容
cp /etc/init.d/functions /home/
vi /home/functions
vi打开后,退出的方法
先按键盘的 ESC 键
然后 按 shift 和 : 两个键【一块按】
最后在左下角的冒号后面输入 q! ,然后敲回车
vi是一个模式化的工具
模式1:查看模式
功能:1. 查看文件的内容
2. 在文件中,搜索指定的内容
3. 复制行或者是删除行
表现:进入到输入模式的时候,在屏幕的最下角没有任何内容
模式2:输入模式 功能:1. 可以在文件中进写入或者修改操作表现
进入到输入模式的时候,在屏幕的最下角出现 INSERT 字样
模式3:末行模式
功能:1. 主要是用于执行各种的命令
2. 显示行号
3. 保存、退出
4. 行跳转
表现:在屏幕的左下角出现 冒号和一个闪烁的光标
查看模式 ===> 输入模式
1. A a 2. I i 3. O o
输入模式 ===> 查看模式
1. ESC
查看模式 ===> 末行模式
1. shift + :
末行模式 ===> 查看模式
1. ESC
输入模式和末行模式之间,无法进行直接切换
vi应用
查看模式下的操作
- nG:跳转到第n行
- dd:删除光标所在的行【剪切】
- yy:复制光标所在的行
- p - 小:将剪切/复制的内容,粘贴到当前所在的行的下一行
- P - 大:将剪切/复制的内容,粘贴到当前所在的行的上一行
- u:撤销操作 /要搜索的内容:在/后面输入要搜索的内容,就可以直接开始搜索了,
- n:继续向下搜索 N:继续向上搜索
按 dd 删除一行
按 4dd 删除连续的四行
按 yy 复制一行
按 15yy 复制连续的十五行
输入模式下的操作:
- 输入模式下没有操作
末行模式下的操作:
- set nu:在每一行的前面,显示一个行号
- set nonu:取消每行前面的行号
- nohl:取消高亮
- w:保存
- q:退出
- !:强制执行
组合:
wq 保存退出
wq! 强制保存退出
q 退出
q! 强制退出【不对输入的内容进行保存,而强制退出】 - 不保存强制退出
2.4.20 date
计算机有俩个时间
硬件时间:硬件 - 震荡电路 - hwclock
软件时间:是在计算机开机的时候,读取震荡电路的时间 - date
date的用法
用法1:查看时间
date
用法2:修改时间
date [MMDDhhmm[cc]YY][.ss]]
用法3:查看时间的一部分内容 date+%F
案例:创建一个txt文件,文件名是当前系统时间
touch `date +%T` .txt
2.4.21 echo
作用:输出一个内容
格式:echo
控制输出结果的显示样式
必须加上选项-e
设置控制对象的范围:
开头:\033[xxm,这里xx的值是不同的
- 31m:设置为红色
- 32m:设置为绿色
- 34m:设置为蓝色
- 5m:设置字体闪烁
结尾:\033[0m
相关选项
-e:控制字符,作用是让后面的特殊字符生效
- \t:水平制表符
- \v:垂直制表符
- \n:换行符
-n:设置输出这行的内容后,不换行
2.4.22 bc
标签:tmp,文件,etc,基础,命令,linux,home,txt,目录 From: https://blog.csdn.net/Name_886/article/details/136662366linux的计算题
[root@localhost ~]# echo “5+3” | bc
8