1.权限掩码
满权限,一个文件的满权限是666, 一个文件夹的满权限是777
公式: 创建文件默认权限 = 满权限 - 权限掩码
格式: umask 权限掩码
练习: 把权限掩码修改成022后,创建文件和目录的权限是多少,umask 022,创建文件的默认权限变成644,创建目录的权限变成755
2. find查找文件 (重)
格式: find 目标目录(哪里查) 查找规律(怎么查)
格式: find . -name 关键字
练习: 请查找整个linux系统中 的所有passwd文件。 sudo find / -name passwd
格式:find -size 大小 ;用c,k,M,G,T单位使用
注意: 如果需要多个条件连接,-and 并且关系。 -or 或者关系
练习: 请查找出 linux系统中,所有大于100k并且小于10m的文件 find -size +100c -and -size -10M
格式: find -user 属主; 按照属主查找文件 ; sudo find ~ -user danny
格式: find -atime 时间; 在多少天内访问过的文件
格式:find -mtime 时间; 多少天内修改 ???
3.tar 打包和解包(不做压缩)(重)
格式:tar -cvf 目标包(*.tar) 源文件/目录 ; 给文件打包
格式:tar -tvf 目标包 ; 查看包中的内容
格式:tar -xvf 目标包 -C 目标地址; 解包到指定位置
格式:tar -Avf 包1 包2; 把包2中的内容追加到包1中
格式:tar -rvf 目标包 源文件 ; 请把danny文件追加到刚才的danny.tar
4.解压缩 工具
格式:tar -zcvf 目标包( *.tar.gz) 源文件 ;压缩文件 ,gzip压缩
格式: tar -zxvf 目标包( *.tar.gz) -C 位置 ;解压缩
格式:tar -jcvf 目标包( *.tar.gz) 源文件 ;压缩文件 bzip2压缩
格式:tar -jxvf 目标包( *.tar.gz) ;解压缩文件 bzip2压缩
5.shutdown 关机命令 (重)
格式:shutdown -t 时间 ;在多少分钟后关机
格式:shutdown -r 时间; 重启
格式:shutdown -f 强制关机
格式: shutdown -c 取消关机;
6.clear 清空屏幕
7.who 当前用户是谁
显示名称 登录时间 使用的串口 全部显示
8.whoami 只显示用户名称
9. date 时间日期(重)
作用:用命令显示和设置系统时间
格式: date ; day当前的日期 时间
格式: date '+%c' ;显示时间和日期,但时间用中文表示
格式: date ‘+%x’ ; 只中文显示年月日
格式: date ‘+%X’ ;中文显示时间
格式: date ‘+%T’;只显示时间,用冒号24小时格式显示
格式: date ‘+%D’; 用斜杠的格式表示日期
10.info 网页的形式查看帮助信息
格式: info + 命令 (man 命令;命令 --help)
11.ps 查看进程(process)
格式: ps -aux ; 查看所有进程
ps -au ; 打印进程
信息: USER ----进程拥有者
PID-------进程id
CPU-------cpu使用率
MEM------内存使用率
VSZ -------虚拟内存
STAT-------进程状态 (R 表示在运行,T表示暂停 S堵塞)
START------进程开始时间
TIME-------执行时间
COMMAND 用哪个命令执行的
12 kill 杀死进程(发送信号)
格式: kill -9 PID;
13 pstree
作用:讲所有进程以树状图形式显示,树状图会以pid或者init为基本进程的根来展现。
14网络命令
1> ifconfig 打印网卡的信息 (linux下)
ipconfig 在windows打印网卡信息
2>.Link encap:本地环回 --表示自己的ip地址,用127.0.0.1表示
3> 硬件地址:也叫mac地址:网卡地址,例如 00:0c:29:94:12:b1 共48位(6个字节),前24位和后24位,前24位给厂商。后24位给个人。mac是全世界唯一。
4>逻辑地址:ip地址,点分十进制:例如 192.168.5.4,ip地址的每个10进制最大是255.
5> 网关:不同局域网之间通信的中间设备。例如:192.168.5.1 最后一位是1.这个ip地址就是网关地址。
----------------------------------------------------------------------------------------------
1.网络命令(重)
6>子网掩码:用来区分网络地址和主机地址部分,基于子网掩码,网络管理员可以 将网络划分为若干个子网
每个ip地址分为主机地址部分 网络地址部分。子网掩码中,1对应ip地址中的网络地址部分,0表示主机地址部分。
案例:子网掩码为255.255.255.0而ip地址为192.168.125.10;
ip转换成2进制: 11000000 .10101000.11111101.00001010
子网掩码的2进制 11111111. 11111111.11111111.00000000
7>地址分类
A类地址:第一个字段是网络地址(最高位是0),剩下三个字段是主机地址,子网掩码255.0.0.0
B 类地址:网络地址和主机地址分别2字段(最高两位是10)子网掩码:255.255.0.0
C 类地址:三个字段的网络地址,1个字段主机地址,最高三位是110. 255.255.255.0 (192.168.5.1)
D 类地址:可以用来做组播地址
E 类地址:用来做测试,实际生活中不使用
8>动态地址DHCP
ip地址分为ipv4和ipv6;因为ipv4不够用,所以开发出ipv6地址。
ipv4只有32位。ipv6地址128
DHCP:动态主机配置协议,实现动态分配ip地址资源。
9> DNS: 域名解析协议,把域名(网址)解析成ip地址或者反解析。
二、shell脚本
1、shell:贝壳,是用户空间和内核空间交互的中间件,shell脚本是shell命令的集合,他解释型语言。c是编译型语言。
2.为什么学shell
1>服务器管理或者系统配置
2> 新的系统安装后,需要软件的配置和安装
3>为了提高效率,是维护更方便快捷。
3.shell脚本的编程步骤(解释执行)
1>使用vim编写shell脚本,shell脚本时*.sh后缀
2>修改脚本的执行权限; chmod 777 *.sh 或者 chmod a+x *.sh
3> 执行 ./脚本名。 例子:./goog.sh
4.定义变量(可以修改的量)
1>定义变量:在shell中变量定义不需要类型 name=123
使用变量:$变量名 或者 ${变量名}
打印内容: echo
2>输入 read
格式: read 变量名,如果没有输入则会一直堵塞(等待)
注意:已经定义好的变量可以重新定义,并且可以使用变量赋值
3>unset 变量名 取消变量的定义,取消定义后变量不可以重新使用,除非重新定义。
4>readonly 不允许变量修改
格式: readonly 变量=值
注意:readonly变量不可以unset
练习: 请定义三个变量,年龄,性别,姓名 用echo打印
5>变量命名规则
命名中只可以是字母下划线数字,不可以是其他特殊符号
变量名中间不可以用空格 ac dd 是两个变量
不能使用标点符号
不能使用shell中的关键字
不可以数字开头,只可以是下划线和字母开头
6>字符串:一串字符连接起来
两种表示方式:用单引号 ‘adsfad${name}’ 双引号“adasd${name}”
注意:如果是单引号,会照常输出,变量也会当次字符串内容
如果是双引号,会把变量替换,打印变量的值。
字符串拼接: name='danny'${age}' good'
字符串的长度:echo ${#string} 例如 name='danny' echo ${#name}结果是5
截取字符串: echo ${string:2:5} ;其中2表示从第三个字符开始,5表示总共打印5个字符
内容注释:可以用#做单行注释。(注释对电脑来说就是空白,给人看的)
7> 预定义变量
定义:预先在shell脚本中定义好的,具有特殊意义,可以直接使用的变量。
$0: 表示当前sh的文件名和路径
$1: 第一个参数的内容 比如在终端执行shell的时候 ./good.sh abc def 则$1表示abc
$@:表示所有的参数内容
$# :表示参数的个数
$* :表示所有参数
$? :表示上一个指令是否成功 如果成功则为0 如果失败 为非0
$$ : 当前进程的id
8>系统环境变量(域名)
9> 数组
10>功能性
1> 输入 语句
read:从键盘输入的内存存入到 变量中
多个读取: read 变量1 变量2 变量3
练习:请从键盘输入3个值,连接到一起后打印出来。
read name age sex
echo $name$age$sex
2>expr 算数语句
expr:用来做加减乘除的整数运算。
使用: expr 变量 运算符 变量
使用: `expr $a + $b`
`expr $a \* $b` 表示乘法
`expr $a / $b`
`expr $a % $b`
注意: 乘号运算符需要用\* ,(转义字符)
反单引号在esc下面
作业1:自学linux系统是怎么启动的?先启动什么进程,再启动什么进程。 (
第一步:加载内核
当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。
操作系统接管硬件以后,首先读入 /boot 目录下的内核文件
第二步:启动初始化进程
内核文件加载以后,就开始运行第一个程序 /sbin/init,它的作用是初始化系统环境
第三步:确定运行级别
许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
init进程的一大任务,就是去运行这些开机启动的程序。但是,不同的场合需要启动不同的程序,比如用作服务器时,
需要启动Apache,用作桌面就不需要。Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。
也就是说,启动时根据"运行级别",确定要运行哪些程序
第四步:加载开机启动程序(系统初始化)
前面提到,七种预设的"运行级别"各自有一个目录,存放需要开机启动的程序。不难想到,如果多个"运行级别"需要启动同一个程序
,那么这个程序的启动脚本,就会在每一个目录里都有一个拷贝。这样会造成管理上的困扰:如果要修改启动脚本,岂不是每个目录都要改一遍?
第五步:用户登录
开机启动程序加载完毕以后,就要让用户登录了。
1)命令行登录
(2)ssh登录
(3)图形界面登录
第六步:进入login shell
所谓shell,简单说就是命令行界面,让用户可以直接与操作系统对话。用户登录时打开的shell,就叫做login shell。
作业2:用三个变量保存姓名年龄和性别,然后拼接成一个字符串后,打印出字符串的长度以及第二个字母到第7个字母的内容。
作业3:输入三个参数 对输入的内容做计算,例如 ./good.sh 1 + 2 的在屏幕上打印3 只计算加和减。
预习: shell的 系统环境变量 数组定义 关系运算符使用 if 语句 for循环 while循环 和函数。