1.初识:
linux,发展背景
multics--飞机大战
肯.汤普森--- unix(用汇编代码写的)
李娜丝--linux----开源 ,免费
发行版linux 操作系统=linux内核+外部应用
dabian
ubuntu
centos
redhat--收费
deepin 麒麟 红旗
企业级服务器市场占有率80%
windows server
unix--银行
2.基本操作
目录----文件夹
linux 下一切皆文件
linux 是一个多用户操作系统
家目录----每个用户都会有的单独的目录,每个用户打开终端,都会默认进入自己的家目录
家目录一般都是以用户名命名的
/home/user linux表达一个路径使用 / 进行间隔
Linux下目录结构
- 根目录: ./
- /bin:二进制命令
- /dev:设备文件
- /etc:安装软件的配置文件信息
- /home:各个用户的宿主目录
- /lib:库
- /media:挂载目录(自动)
- /mnt:挂载目录(手动)
- /root:管理员目录
- /user:当前用户软件安装目录
- linux命令的使用规则
命令名 [功能选项] [源操作对象] [目标操作对象]
目录相关命令:
- ls 列出当前目录下的内容
-a 查看所有文件,不忽略以 . 开头的文件(隐藏文件)
. 当前文件所在路径
.. 当前所在路径的上一层路径
. 和 .. 在每个目录下都会有
-l 列出文件的详细信息
- linux 下并不以文件后缀名区分文件类型,linux下的文件后缀名是给用户看的
- 普通文件,各种压缩文件,第一个属性为 [-]
d 目录文件:能用#cd 命令进入,第一个属性为 [d]
b 块设备文件:就是存储数据以系统存取的接口设备(硬盘),第一个属性为[b]
c 字符设备文件:串行端口的接口设备,例如 键盘,鼠标,第一个属性为[c]
l 链接文件:类似于Windows下的快捷方式,第一个属性为[l]
p 管道文件: 解决多个程序同时存取一个文件所造成的错误,第一个属性为[p]
s 套接字文件:通常用在网络数据连接
- pwd 显示当前所在路径(绝对路径)
目录结构:Linux下目录结构是树结构,最上层是根目录,用 / 表示
(与磁盘分区无关,它们相互独立)
绝对路径:起始查找目录从根目录下开始查找
相对路径:起始查找目录从当前目录下开始查找
- mkdir 创建目录
-p 递归创建:多层级创建目录(从外往内)
- rmdir 删除空目录
-p 递归删除空目录(从内往外)
- rm 删除文件
-r 递归删除:删除所有文件及目录
-f 忽略提示信息,直接删除
- cp 拷贝一个文件到指定位置(拷贝无法进行目录操作)
-r 递归拷贝: 拷贝所有文件(包含目录)
[user-xin@localhost ~]$ ls
Desktop Documents Downloads line main.c makefile
Music passwd Pictures Public Templates test.c Videos
[user-xin@localhost ~]$ cp test.c main.c //把test文件复制到main.c中
[user-xin@localhost ~]$ ls
Desktop Documents Downloads line main.c makefile
Music passwd Pictures Public Templates test.c Videos
[user-xin@localhost ~]$ ls main.c
test.c
- mv 移动一个 文件/目录 到指定位置
-i 添加提示信息
[user-xin@localhost ~]$ ls
Desktop Documents Downloads line main.c makefile Music
passwd Pictures Public Templates Videos
[user-xin@localhost ~]$ cd main.c
[user-xin@localhost main.c]$ ls
test.c
[user-xin@localhost main.c]$ mv test.c ..
[user-xin@localhost main.c]$ cd ..
[user-xin@localhost ~]$ ls
Desktop Documents Downloads line main.c makefile Music
passwd Pictures Public Templates test.c Videos
- cd 进入指定目录
~ 进入家目录(当前用户目录)
- 返回上一次所在路径
[user-xin@localhost ~]$ cd main.c
[user-xin@localhost main.c]$ cd ~
[user-xin@localhost ~]$ cd main.c
[user-xin@localhost main.c]$ cd ..
[user-xin@localhost ~]$
- halt 关机
文件相关命令:
-
man 手册(查看函数的用法)
touch 若文件存在则刷新文件属性(时间),不存在则创建文件
-d “2016-09-09 19:58:26”
-t use [[CC]YY]MMDDhhmm[.ss] instead of current time
(先把passwd复制过来:cp /etc/passwd ./)
cat cat passwd 打印文件内容到终端显示
-n 打印行号
tac tac passwd 按行逆序打印文件内容more 分页打印文件内容,命令:more 文件名
空格 向下翻页
b 向上翻页(不能翻到最上面的root)
回车 按行向下滚动(q退出more)
less 分页打印文件内容,命令:less 文件名
f pgdowm 向下翻页
b pgup 向上翻页
q 退出
/string 向下匹配字符串
?string 向上匹配字符串
n 匹配下一个
head 默认打印文件的前10行
-n 指定打印前n行数据,命令:head -n 1 [文件名]
tail 默认打印文件的后10行
-n 指定打印末尾n行数据,命令:tail -n 1 文件名
-f 一直动态刷新文件的末尾数据(现实应用:查看日志信息)
标准输出重定向:
标准输出:显示终端
把原本显示到终端的数据写入到另一个文件中
>> 标准输出重定向 ,新内容追加到文件末尾
> 标准输出重定向,清除原有内容,添加新数据
压缩命令:
压缩/解压缩
zip /unzip gzip/gunzip bzip2/bunzip2
打包/解包
tar -czvf
.tar.gz .tar.gz2
tar
-c 打包
-x 解包
-z gz ip格式压缩/解压缩
-j bzip2格式压缩/解压缩
-v 显示详细的打包/解包信息
-f 指定压缩包的名称,后边紧跟包名称
实例:
tar -czvf hello.tar.gz hello.txt
tar -xzvf hello.tar.gz
时间命令:
cal 日历命令
-3 显示最近三个月的日历
-y 显示这一年的日历
-j 显示当前这是一年中的第几天
date 时间命令
-s 以"2018-12-12 16:45:56"设置当前系统时间
+'%Y-%m-%d %H:%M:%S'
+'%F %T'
匹配查找命令:
grep 匹配查找包含字符串的行 例:grep 'root' passwd
* 模糊匹配 例:grep 'root*' passwd
-i 忽略大小写 例:grep -i 'root' passwd
-v 反向匹配,匹配不包含该字符串的文件行 例:grep -v 'root' passwd
-R 对指定目录下的所有文件递归进行匹配
find 文件查找
-name 按名称查找
-mtime -atime -ctime 按天查找最近修改时间
-amin -mmin -cmin 按分钟查找
按时间查找
-size 按大小查找 +/- n
其他命令
which 在PATH变量制定的路径中,搜索系统命令的位置
bc 浮点型计算器
halt 关机
shutdown -h now 关机 (ubuntu上面关机比较快)
sudo 暂时借用管理员权限(当前用户密码)
热键
ctrl+c 终止当前操作
ctrl+p 历史命令向上滚动
ctrl+n 历史命令向下滚动
ctrl+h 覆盖光标后的
ctrl+c 终止当前操作
tab 自动补全
df 查看磁盘分区
/dev/da 第一块分区
.....
/dev/dz 第二十六块分区
/dev/daa 第二十七块分区
shell的认识及运行原理:
操作系统=操作系统内核+外部应用
命令行解释器:
操作系统内核不允许用户直接操作,因此使用命令行解
释器来进行用户与内核之间的数据传递(双向解释命令)
权限:
用户: 普通用户,超级管理员用户(root)
文件的权限:
文件的所有者u 文件所属组g 其他用户o 所有用户a
文件的操作:
可读r 可写w 可执行x
目录的操作
可浏览 可创建/删除 可进入
rwx rwx r-x
111 111 101
7 7 5
文件可读可写可执行 所属组可读 其他用户可读
权限相关操作:
umask 设置/查看文件的创建权限掩码
777 &(~umask)
chmod 修改文件权限
chomd 0777 file
chomd u+x file
u-x(给文件所有者减去执行权限)
o+r (给其他用户增加读权限)
g-w(给文件所属组减去写权限)
a+x(给所有用户增加执行权限)
useradd userdel chown chgrp
sudo chown [所有者]:[所属组] 文件名称 //改变文件所属组和所有者
sudo chgrp [所属组] 文件名称 //改变文件所属组
沾滞位:所有人都可以在目录下创建文件可以删除文件,可以删除自己的文件
但是不能删除别人的文件
chmod -t 8848/
管道符:|
连接两个命令,将前边命令的输出结果当作后边命令的输入,做处理;
例:查看/etc/passwd文件的第二十行
head -n 20 /etc/passwd | tail -n 1