# more,less翻页显示文件内容
more 只能向下翻页
less 可以上下翻页
空格键翻页
上下键移动
q退出
tail # 用于显示文件末尾几行
-n 指定显示的行数
-f 追踪显示文件更新(一般用于查看实时日志)
- head用于显示文件的头几行
-n 指定显示的行数
cat # 显示文件内容
# tar用于归档文件
# 将dir文件压缩包归档
tar -cvzf newtar.tar.gz /dir
# 参数解析:
-c 创建
-x 释放
-z 将归档后的归档文件进行gzip压缩以减少大小
-zip,gzip用于压缩文件
# unzip 用于解压缩zip文件,举例
zip zipfile.zip myfile
find # 用于高级查找文件,文件夹
# find 查找位置 查找参数
-name 根据文件名查找
-type d 查找目录类型的文件
-size 根据大小查找
-ctime 根据最近修改的时间查找
-perm 777 查找777权限的文件
# 查看当前目录“.conf”后缀的文件
find . -name "*.conf"
### 文件编辑
- o 在当前行的下面插入新行
- dd 删除整行
- yy 复制当前行
- p 粘贴
- u 撤回
- r 替换当前字符
- / 查找关键字,n是跳转到下一个
:w 保存
:q 退出
:wq! 强制保存并退出
:set number 显示行号
:sh 切换命令行, ctrl+d 切回vim
- 命令grep基于关键字搜索文本:
-i 在搜索是忽略大小写;
-n 显示结果所在行数;
-v 输出不带关键字的行;
-Ax 在输出时,包含结果所在行之后的制定行数;
-Bx 在输出时,包含结果所在行之前的指定行数;
举例:
grep “linux” /etc/passwd 查找文件里面包含“Linux”关键字的文本;
find / -user paas | grep test 查找根目录写下paas用户包含“test”关键字的文件;
- 命令cut基于列处理文本内容;
-d 指定分隔符(默认是tab);
-f 指定输出的列号;
-c 基于字符串进行切割;
# 举例
cut -d: -f1 /etc/passwd 通过“:”分割,只返回第一列的数据;
cut -c2-6 /etc/paaswd
- 命令wc用于统计文本信息;
-l 只统计行数;
-w 只统计单词;
-c 只统计字节数;
-m 只统计字符数;
- 命令sort用于对文本内容排序;
-r 进行倒序排序;
-n 基于数字进行排序;
-f 忽略大小写;
-u 删除重复行;
-t c 使用c作为分隔符分割为列进行排序;
-k x 当进行基于指定字符分割为列的排序时,指定基于那个列的排序;
- 命令diff用于比较两个文件的区别;
-i 忽略大小写;
-b 忽略空格数量的改变;
-u 统一显示比较信息(一般用以生成patch文件);
# 举例
diff -u test.conf test2.conf > final.patch
- 命令tr用以处理文本内容;
# -d 删除关键字:
tr -d "tmd" test
# 转换大小写:
tr “a-z” “A-Z” test
- 命令sed用于搜索并替换文本;
-e 添加多个替换条件;
-i 替换改变文件;
双引号可以传入变量;
单引号可以匹配特殊字符;
-h |--help # 几乎所有命令都可以通过这两个参数获取使用方法,参数信息等
man 命令 #获取改命令的帮助文档
man -k 关键字 # 用来查询包含改关键字的文档
# info与man类似,提供的信息更为详细
# man和info都可以通过"/+关键字"方式进行搜索
/user/share/doc # 目录中存放很多程序,命令的详细文档
shutdown # 用于关闭,重启
shutdown [关机,重启] 时间
# h关闭计算机
# r 重新启动
shutdown -h now立即关机
shutdown -h 23:30 23:30分钟后关机
shutdown -r +10 10分钟后开机
poweroff 用于立即关机
reboot 用于立即重启计算机
# 查看IP
ifconfig
# 查看网关
route -n
# 用于将格式化好的磁盘或分区挂载到一个目录上
mount /dev/sda3(要挂载的分区) /home/paas(挂载点)
# 常见参数:
mount # 命令显示所有已挂载的文件系统
-t # 指定文件系统的类型
-o # 指定挂载选项
ro,rw # 以只读或者读写形式挂载,默认rw
sync # 代表不使用缓存,将所有操作写入磁盘;
async # 代表使用缓存(默认);
atime # 每次访问时更新文件的访问时间;
noatime # 每次访问时不更新文件的访问时间;
remont # 重新挂载文件系统;
umount # 文件系统/挂载点 #用于卸载已经挂载的文件系统
fuser -m /home/pass # 查看使用文件系统的进程
losf /home/paas # 查看正在被使用的文件
自动挂载:
配置文件/etc/fstab 用来定义需要自动挂载的文件系统,每一行代表一个挂载配置,
格式如下:
挂载设备 挂载点 系统文件 挂在配置 选项:
/dev/sda3 /home/paas ext4 defaults 0 0
mount -a 命令会自动挂载fstab中定义的自动挂载项
# 用于查看PCI硬件设备
lspci
# 用于查看usb设备
lsusb
# 用于查看加载的模块(驱动)
lsmod
STDIN 标准输入,编号为0;
STDOUT 标准输出,编号为1;
STDERR 标准错误,编号为2;
l 将一个命令的STDOUT作为另一个命令的STDIN;
# 将STDOUT重定向到文件(覆盖);
> 将STDOUT重定向到文件(追加);
2> & 1 将STDERR与STDOUT结合;
< 重定向STDIN;
用户现在使用者或者进程可以操作哪些资源;
组用来方便组织管理用户;
每个用户使用userID操作系统;
每个用户是一个主组,属于一个或者多个副属组;
每个组拥有一个人groupID;
每个可登录用户拥有一个指定的shell
# 保存用户信息
/etc/passwd
# 保存用户密码(加密的
/etc/shadow
# 保存组信息
/etc/group
查看用户登录信息
whoami #显示当前用户信息
who #显示有哪些用户已经登录系统
w #显示有哪些用户已经登陆,并且在干什么
ID为32为,从零开始,但为了与老式系统兼容,用户ID限制在60000以下。
用户分为三种:
root用户:ID=0
系统用户:1-499
普通用户:500以上
系统中的文档都有一个所属用户及属组;
id命令 可以显示当前用户信息;
passwd命令 可以修改当前用户密码;
useradd user_name # 创建一个新用户;
上面这个命令会执行一下操作:
1、在/etc/passwd目录中添加用户信息;
2、如果使用passwd命令创建密码,则将密码加密保存在/tec/shadow中;
3、为用户建立一个新的家目录/home/user_name;
4、将/etc/shell中的文件复制到家目录中;
5、建立一个与用户名相同的组,新用户默认属于这个组;
useradd命令支持以下参数:
-d 家目录;
-s 登陆shell;
-u serId;
-g 主组;
-G 附属组(最多31个,用“,”分割);
usermod 参数 username # 用来修改用户信息;
支持一下参数:
-l 新用户名;
-u 新userID;
-d 用户家目录位置;
-g 用户所属主组;
-G 用户所属附属组;
-L 锁定用户使其不能登陆;
-U 解除锁定;
userdel 用于删除指定用户;
userdel username (保留用户的家目录)
userdel -r username (同时删除用户的家目录)
一般我们使用部门,职能或者地理区域的分类方式创建适应组。
每个组有一个组ID;
组信息保存在/etc/group中;
每个用户拥有一个主组,同时还可以拥有最多31个附属组;
groupadd groupname #创建组;
groupmod -n newname oldname # 修改组名;
groupmod -g newgID oldgID # 修改组ID;
groupdel groupname # 删除组;
每个文件有三种权限:读r,写w,执行x;
Linux权限基于UGO模型控制:
u代表user,G代表group,O代表other;
chown username 文件 # 修改文件所属用户
-R 参数递归修改目录下的所有文件的所属组
chgrp groupname 文件 #修改文件的所属组
-R 参数递归修改目录下所有文件的所属组
也可以同时修改:chown 用户:组 文件
举例:
chown paas:paas text.conf # 将text.conf文件所属用户改成paas,所属组改成paas
chmod 模式 文件 # 修改文件的权限;
模式为如下格式:
u,g,o分别代表用户,组,其他;
a 可以指ugo:
+,- 代表加入或删除对应权限;
r,w,x 代表三种权限;
举例:chmod a-x filename
chmod也支持数字方式修改权限,分别由三个数字表示:
r = 4 (2^2);
w = 2 (2^1);
x = 1 (2^0);
举例:chmod 775 test.conf == rwxrwxr-x
每个终端都有一个umask属性,来确认新建文件,文件夹的默认权限;
查看umask值命令:umask
修改umask值命令:umask 值
普通用户的默认umask是002,root用户的默认umask是022;
umask使用数字权限方式:
目录的默认权限是:777-umask;
文件的默认权限是:666-umask;
suid 以文件的所属用户身份运行,而非执行文件的用户,一般用于/user/bin/passwd 修改密码;
设置方式:chmod u+s 文件
sgid 以文件所属组身份执行,在该目录中创建的任意新文件的所属组与该目录的所属组相同;
设置方式:chmod g+s 目录
sticky 对目录拥有写入权限的用户可以删除其拥有的文件,无法删除其他用户所拥有的文件;
设置方式:chmod o+t 文件
与普通用户一样,特殊权限也可以使用数字方式表示:
suid = 4;
sgid = 2;
sticky = 1;
举例:chmod 4755 dir
分为ipv4和ipv6,ipv4地址为32位长,ipv6地址为128为长;
ipv4地址分为两部分:网络部分和主机部分;
网络部分用来标识所属区域,主机部分用来表述该区域中的哪个主机;
ipv4通常使用点分十十进制方式表示,整个IP地址分为4部分,每个部分8位;
通过子网掩码来确认IP地址中,网络部分的分位;
IP地址中对应子网掩码中为1的部分是网络部分;
要配置一个局域网通信的计算机:
IP地址 + 子网掩码
局域网通过IP查询到MAC地址,然后通过通过MAC地址定位传输数据;
MAC是物理地址,IP是网络地址;
要配置一个跨局域网通信的计算机:
IP地址 + 子网掩码 + 网关/路由器
网关/路由器:用于不同网络之间传输数据
要配置一个可上网的计算机:
IP地址 + 子网掩码 + 网关 + DNS
DSN是用来IP与域名之间装换,一般有电信系统提供;
域名是为了解决IP难记问题,分为三部分:
主机名.域名.类型,比如:www.baidu.com
# 在Linux中,以太网接口被命名为:eth0,eth1等;
# 通过lspci 查看网卡硬件信息(如果是USB网卡,可以使用lausb);
# 查看接口信息命令:ifconfig
ifconfig -a # 查看所有接口;
ifconfig eth0 查看特定接口;
# 使用ifup,ifdown命令启用,禁用一个接口;
ifup eth0
ifdown eth0
# 查看网关命令:route -n
# 网卡配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
# DNS配置文件:
/etc/resolv.conf
# 主机名配置文件:
/etc/sysconfig/network
# 静态主机名配置文件:
/etc/hosts
# 测试网络连接:
ping IP(或域名)
# 测试DNS解析:
host 域名
dig 域名
# 显示路由表:
ip route
# 追踪到达目标地址的网络路径:
traceroute 域名
# 故障排查遵循顺序:
# 从底层到高层,从自身到外部
# 先查看网络配置信息是否正确:
# IP地址,子网掩码,网关,DNS;
# 查看到达网关是否联通:
ping 网关IP地址
# 查看DNS解析是否正常:
host 域名