用户注册与注销
用户使用向管理员申请的账号登录系统中:Login:用户注册名,Password:用户登录口令
超级用户的口令:#passwd;普通用户口令:$passwd。
用户离开系统应注销,注销命令:#logout、#exit、#ctrl-d
用户信息文件
存放用户账号管理有关信息的四个文件:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow
/etc/passwd:存放用户账号基本信息,所有用户都可以打开
内容格式:username:*:uid:gid:comment:homedir:loginshell
stu3:x:1007:1007::/home/stu3:/bin/bash
/etc/shadow:存放用户加密后的口令及口令管理信息,并且只有管理员才能打开这个文件
内容格式:
username:password:lastchy:min:max:wam:inachive:expire
stu2:$1$zEYAbe69$WBbRyRdi.VXGZMqzxGxcf/:19627:0:99999:7:::
/etc/group:存放用户组信息。所有用户都可以打开
内容格式:
groupname:password : gid: user-list
classmate:x:1011:stu2,kangyt,tina,tom,mystu1
/etc/gshadow:存放用户组口令信息,只有管理员可以打开
内容格式:
组名称:组密码:组管理员账号:组用户列表
classmate:$1$NqJysjXt$VPYcjzKwQ746DZqdvOE6B1:kangyt:stu2,kangyt,tina,tom,mystu1
linux命令类型
1.内部命令:一些比较精简的系统命令,这些命令由shell程序识别并且·在shell程序内部运行。
2.外部命令:系统实用程序的部分内容。功能强大,程序内容也强大。通常不包含在shell中。
可以使用type命令来查看命令类型。
linux启动过程
系统加电后PROM启动→PROM自检→装入系统引导块程序bootblk,引导块装入完成后开始操作系统的启动工作→从指定的系统盘中加载操作系统核心程序→bootblk将核心程序运行的起始地址装入程序计数器中→由系统文件/sbin/init完成核心操作系统初始化
查看当前系统运行级别:who -r
改变系统运行级别:
init 0:系统退出;init 5:系统进入单用户状态;init 6:系统进入reboot过程,重新进入多用户状态。
目前linux系统初始化采用systemd。systemd是一套自由软件,是linux的系统已到期和服务管理器。1.systemd是c语言编写的经过编译的二进制程序。2.减少了对shell脚本的依赖3.提供框架。
systemctl用于控制systemd管理的系统服务和状态。
显示当前已激活的目标:systemctl -t target;显示当前已加载的所有目标:systemctl -at target。显示默认目标:systemctl get-defualt;查看系统服务启用状态:systemctl list-unit-files --type service;列出所有处于激活状态的服务:systemctl list-units --type service --all
service服务状态控制:启动、停止或者重启某个服务:service 服务名 {status|start|stop|retart};例如:service http start
linux常用命令
linux命令使用格式:
command [option] [arguement]
例如用长列表方式列出当前目录下所有后缀名为py的文件名:ls -l *.py
有时要将多个命令写在同一个命令行中,命令之间用分号隔开。当一行写不下一条命令时,使用 \ 来进行换行。
显示日期:date
显示当前路径:pwd
切换工作路径:cd
显示日历:cal
显示系统在线人数:who
统计文件字符:wc 如[root@localhost ~]# wc -lwc test.c
显示操作系统信息:uname 如:[root@localhost ~]# uname -a
对外部命令获得联机帮助:man 命令名;如:man cp
查看历史命令:history
文件操作命令:
ls显示文件列表:
常用option:
- -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
- -d 只列出目录(不递归列出目录内的文件)。
- -l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。
- -r 倒序显示文件和目录。
- -t 将按照修改时间排序,最新的文件在最前面。
ls-l显示了文件访问权限,链接数,文件属主,文件属组,长度,修改日期,文件名称
cat 在标准输出上显示文件或者链接 格式:cat [option][filenamelist]
常用option:
- -n:在每行前面加上行号。
- -b:忽略空白行,但对于非空白行前面加上行号。
- -s:连续的多个空白行只显示一个。
- -E:在每行末尾加上 $ 符号,
cat >filename.c 建立filename.c文件 ;cat file.c bb.c先显示aa.c再显示bb.c;cat file.c bb.c>aa.c将file.c和bb.c的内容输入到aa.c
more分页显示文件内容;
head显示文件开头几行(默认10行);格式head [option] filename
tail显示文件末尾几行 tail -n(默认10行);格式 tail [option] filename
拷贝命令:cp [option] origin target 可以用来复制文件或者目录
搬移文件:mv [option] origin taget 可以用来搬移文件或者目录
修改文件名称:sudo mv oldname newname
创建空文件:touch filename
删除文件
rm filename
file 显示文件类型:file 文件或文件列表
find 查找文件,在目录结构中搜索文件:find [dir] [文件匹配标准]
找出在/home/tom路径下的以my开头的文件并且打印出来
文本处理工具(重要)
先来看看正则表达式:
linux正则表达式包括:基本正则表达式和扩展正则表达式
符号 | 作用 |
^ | 用于匹配模式开头,如"^kk",匹配以kk开头的行 |
$ | 用于匹配模式结尾,如“yy$”,匹配以yy结尾的行 |
^$ | 用于匹配空行 |
. | 用于匹配任意一个字符,不能匹配空行 |
\ | 转义字符,还原字符本来的含义 |
* | 匹配前一个字符0次或者多次以上 |
.* | 匹配所有内容 |
^.* | 匹配任意多个字符开头的内容 |
[abc] | 匹配集合内任意一个字符,匹配结果为a,b,c中一个 |
[^abc] | 匹配除了集合内的任意字符 |
.*$ | 匹配任意多个字符结尾的内容 |
扩展正则表达式(在egrep或者grep -E中使用),在基本正则表达式上增加了:
字符 | 作用 |
+ | 匹配前一个字符1次或者多次 |
[:/]+ | 匹配括号内的“:"或者"/"一次或者多次 |
? | 匹配一个字符0次或者1次 |
\ | 表示或者 |
() | 分组过滤,括号内的内容表示一个整体 |
x{a,m} | 匹配前一个字符x,至少n次,最多m次 |
x{n,} | 匹配前一个字符x,至少n次 |
x{n} | 匹配前一个字符n次 |
x{,m} | 匹配前一个字符最多m次 |
文本处理工具,均支持正则表达式
1. grep:文本过滤工具,按照给定的正则表达式搜索文件内容(这个匹配普通的正则表达式,扩展正则表达式要在egrep中使用)格式:grep [option] pattern file
在linux中awk就是gawk,如图可以看到awk是软连接到了gawk
相关参数:
举例:查找kai.c文件中以k开头的行,并且显示行号
查找/etc/passwd中root相关内容,并且显示对应行号
统计/ect/passwd中有多少行与tom相关的内容
查找文件f.txt中的空行,并且输出非空行的内容
查找t.txt中并且输出没有空号和注释的内容
2.sed 流编辑器
sed [option] [sed内置命令字符] file
option:
参数选项 | 解释 |
-n | 取消sed的默认输出,常与p命令一起使用 |
-i | 将修改结果写入文件,不用-i的话,sed修改的是内存数据 |
-e | 多次编辑 |
-r | 扩展正则表达式 |
内置命令:(就是进行文件的增删改查)
内置命令 | 解释 |
a | 对文本内容进行追加,与p命令一起使用 |
d | 删除匹配行 |
i | 插入文本,在指定行前添加一行或者多行文本 |
p | 打印匹配行的内容 |
s/正则/替换内容/g | 匹配正则内容,替换对应的内容,g表示全局替换 |
匹配范围:
范围 | 解释 |
空地址 | 全文处理 |
单地址 | 指定文件某一行 |
/pattern/ | 被模式匹配的每一行 |
范围区间 | 10,20表示十到二十;2,+3第2行向下3行 |
步长 | 1~2,表示1,3,5,7,9行 |
如打印f.txt文件的2-3行内容,一定要加上-n来取消默认输出,否则如下:
加上-n就可以得到无名想要的内容效果
模式匹配
删除up!up!up!行,若使用-i选项则一同修改文件内容
替换内容,将sunny替换成raining
文件追加内容
匹配空模式
练习:查找设备ip地址
使用到的命令:ifconfig,sed(替换)
3.awk:格式化文本,linux上就是gawk
awk [option] 'pattern[action]' file ...
常用action就是print
相关参数选项:
参数 | 解释 |
-F | 指定分隔符 |
-v | 定义或者修改一个awk内部变量 |
-f | 从脚本文件中读取awk命令 |
awk的默认分割符是空格,多个空格也被识别为一个空格,$0表示所有内容,$1表示第一列的数据,以此类推。$NF表示当前分割的最后一列。比如倒数第二列表示$(NF-1);$NR表示行号
NR==5表示第5行
内置变量 | 解释 |
$n | 指定分隔符后,当前记录的第n个字段 |
$0 | 完整的输入记录 |
FS | 字段分隔符,默认是空格 |
NF | 分割后当前行一共有多少个字段 |
NR | 当前记录数,行数 |
更多内置变量查看man手册 | man awk |
输出第一列内容
输出倒数第二列的内容
自定义格式输出,给自定义的特殊格式内容加上双引号
打印第3行第4列的内容
实现显示行号的效果
输入分隔符 :以”:“为分隔符,输出/etc/passwd文件中的第3列的第5行到第7行的1内容
修改默认输出符
-v OSF=输出符