一 grep find cut
1.grep 搜索一个字符串 -n 显示行号 -R 递归子目录 "^string" 以string开头的行 "string$" 以string结尾的行 "^string$" 只搜索string的行不包含其他字符 * 当前目录下所有的文件 常用用法: grep "string" * -n -R grep "string" * -nR 2.find 寻找一个文件 find -name 文件名字 (从当前目录开始,在所有的子目录寻找指定的文件) 例如: find -name file.c find -name *file* 3.cut 对子字符串进行分割 -d 指定分割符 -f 指定需要的区域 cut -d ":" -f 1 cut -d " " -f 1,2,4 二 cat , head ,tail , more ,less 功能:查看一个文件的内容 1.cat cat file => 将文件的内容输出到终端上显示 2.head head file => 从文件头开始显示10行 head -n file => 从文件头开始显示n行 2.tail tail file => 显示文件的倒数10行 tail -n file => 显示文件的倒数n行 问题:如何显示文件中指定行? 回答:head -line file | tail -1 3.more,less 局部显示,通过 回车键 向下显示 问题:从/etc/passwd文件中提取用户信息,向终端上输出用户的信息,name:uid:gid? head -34 /etc/passwd | tail -1 |cut -d ":" -f 1,3,4 问题:如何确定用户所在的行号? cat /etc/passwd | cut -d ":" -f 1 (提取用户名)| grep "^linux$" -n | cut -d ":" -f 1 三 对文件或目录打包压缩 gzip 和 bzip2 和 xz 对文件压缩 gzip file => file.gz bzip2 file => file.bz2 xz file => file.xz gunzip bunzip2 unxz 对文件解压 注意:只针对文件操作 -------------------------------------------------- 对目录操作 命令:tar c 创建 x 释放 z gz格式 j bz2格式 J xz格式 v 显示过程 f 指定文件名 1.对目录打包不压缩 tar -cvf dir.tar dir 2.对目录打包并且压缩 tar -czvf dir.tar.gz dir tar -cjvf dir.tar.bz2 dir tar -cJvf dir.tar.xz dir 3.解压操作 tar -xzvf dir.tar.gz tar -xjvf dir.tar.bz2 tar -xJvf dir.tar.xz 注意: <1>f必须在组合的最后面 <2>tar -xvf dir.tar.x 自动根据压缩包的格式选择对应的解压方式进行解压 四 文件权限,文件所有者,所在组修改 1.chmod 修改指定文件的权限 chmod u/g/o/a +/- r/w/x file chmod 666 file 2.chown 修改文件所有者或所在组 chown 用户名 file chown 用户名:组名 file 3.chgrp 修改文件所在的组 chgrp 组名 file 问题:如何修改所有文件的权限或所有者或所在组,包括子目录? 回答:chown root * -R (将所有文件的所有者名都修改成root,包括子目录) 五 文件的链接 (1)软链接 它是一种文件类型,类似windows快捷方式,用来记录目标文件的路径 ln -s 目标文件(普通文件或目录文件) 软连接文件 (2)硬链接 本质:给文件取一个别名,并没有创建一个新文件,不占用磁盘空间 ln 目标文件 硬连接文件 注意: (1)硬链接不能对目录操作 (2)硬链接不能跨文件系统 (3)在Linux操作系统中只有当一个文件的打开次数为0并且硬链接数为0,此时表示文件不存在被删除 问题:如何做到文件在关闭的时候,自动删除? 回答:打开文件一次,将这个文件硬件变成0 六 用户管理 (1)adduser 用户名 /etc/passwd 存放系统用户的信息 /etc/shadow 用户密码 /etc/group 存放系统组的信息 /etc/skel 创建新用户的时候,拷贝这个目录下的配置文件到用户主目录 (2)临时切换用户 su 用户名 (3)退出临时的用户 exit (4)将用户添加到指定的组 usermod -a -G 组名 用户名 (5)删除一个用户 deluser 用户名 --remove-home(删除用户的时候,删除这个用户的用户主目录) (6)修改用户密码 sudo passwd 用户名 七 硬盘管理 (1)查看系统中硬盘信息 sudo fdisk -l (2)查看分区的使用情况 sudo df -h (3)手动挂载自己的设备 挂载:将一个块设备的信息映射到一个指定的目录下 sudo mount /dev/设备文件名 挂载目录 (4)取消挂载的目录 sudo umount 挂载目录 八 网络管理 1.网络基础 (1)IP : 在网络中主机的唯一标示 (2)组成 : 网络号(主机所在的网络) + 主机号(网络中主机编号) (3)表示 : 点分十进制 (4)IPv4(32bit,4byte),IPv6(128bit,16byte) (5)分类 1000 0000 1011 1111 1100 0000 1101 1111 网络号 + 主机号 最高位规定 第一个字节范围 A 1 + 3 0 [0-127] B 2 + 2 10 [128-191] ---------------------------------------------------------- C 3 + 1 110 [192,223] 容纳的主机数:1byte [0-255] 192.168.0.0(表示网络) 192.168.0.255(广播地址) --------------------------------------------------------- D 组播 1110 [224,239] E 未使用 问题:局域网内,主机间通信,遵从什么呢? 回答:网络号一样,主机号不一样 (6)子网掩码 获取网络号 => submask & 目标IP获取网络号,来判定目标主机和当前主机是否在同一个网络 (7)网关 可以和外网通信的主机ip地址都可以作为网关,习惯用路由器的IP地址作为网关 如果当前的主机判别目标主机不在同一个网络中,向目标主机发送的数据将发送到网关,由网关将数据包转发外网 (8)DNS 域名解析,将域名转换成IP地址 www.baidu.com -> ip 免费使用的域名服务器: 8.8.8.8 114.114.114.114 2.查看IP地址 ipconfig(windows)/ifconfig(linux) 临时修改ip地址 sudo ifconfig eth0 ip地址 3.ping 测试网络是否连接 ping 目标主机IP地址 或 域名 ping 192.168.0.1 ping www.baidu.com ping 192.168.0.42 九 环境变量 1.查看系统中的环境变量 env 2.PATH环境变量 shell在执行一个命令的时候,会从PATH环境变量保存的路径中去搜索,如果搜索到则执行,否则提示命令没有找到 问题:如何让自己的应用程序可以在任何路径下执行? 回答: (1)将它拷贝到PATH环境变量保存的路径下 或 (2)将自己的路径添加到环境变量中 3.永久添加环境变量 shell程序在运行的时候,会自动执行如下文件: /etc/bash.bashrc 针对所有用户有效 用户主目录下的.bashrc文件 只针对当前用户有效 我们只需要将环境变量的修改,添加到这些配置文件中的任何一个中就可以了