一 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文件 只针对当前用户有效
我们只需要将环境变量的修改,添加到这些配置文件中的任何一个中就可以了