Linux 基础命令:
一,查看文件:
1,cat
cat 查看文件内容 #主要用来查看小文件
-n 显示行号
-A 显示特殊符号 (如:从win拷贝上来的文件用Linux打开会有特殊符号,造成服务启动失败,使用-A即可查看)
#如有特殊符号使用工具转换即可:
yum install dos2unix
dos2unix filename
cat -A filename
2,less/more 分页查看文件内容
less/more 分页查看文件内容 #主要用来查看大文件
回车 # 下一行
空格 # 翻页
q # 退出
Ctrl + F #下翻页
Ctrl + B #上翻页
3,head/tail
head 显示文件前十行内容
-n 显示前n行内容
tail 显示后十行内容
-n 显示后n行内容
-f 实时更新
二,查找命令类指令:
1,which
Which filename 查找文件或者目录在哪里和Where is 等价
-b 只查看二进制文件
2,Where is
3, find
find 查看文件在哪里 默认是在当前目录下查找
find [搜索范围] [选项]
-name filename #按照文件名查找文件
-user username #查找指定用户名的所有文件
-size filesize #按照指定的文件大小查找文件
三,下载类命令:
1,wget /curl:从互联网上下载资源到本地Linux服务端
(1)wget:
-o 更改下载存放目录, 改名字
例如: wget -0 /tmp/centos.repo http://centos.cn/centos.repo
(2)curl: 获取文件内容
-o 下载
2, rz/sz:win 和 Linux 进行文件交互
(1)rz: 上传文件到Linux
(2)sz:下载文件到win
## 注意这俩玩意 只可以是文件,不可目录
## 不支持4G文件,不支持续传
四,字符处理类命令:
1,sort : 对一个无序的文本进行数据排序
sort [OPTION]...[FILE]...
-r 倒序
-n 按数字排序
-t 指定分隔符(默认为空格)
-k 指定第几列,指定几列几字符(指定1,1 3,1 3,3)
2,uniq:去重
#### 注意: 一定要先排序再去重
uniq
-C 计算重复行
练习题:
# 请统计分析如下日志,打印出访问最高前十的IP。
分析: 1,先从从文件中将IP提取出来, #awk '{print $1}' 文件名 > 文件
2,对IP进行排序
3,进行去重统计
4,对统计后的次数进行排序
5,使用head 提取前十。
3,wc:统计文件行数
wc
-l 文件行数
-c 字母数量
练习题1:
# 过滤出 /etc/passwd 文件中以 nologin 结尾的内容,并统计有多少行。
分析: 1,过滤出和关键字相关的行。
2,统计有多少行
4,awk:取列
awk '{print $2}' #打印出第二列
awk 'NR == 2' #取出第二行
-F':' #指定分隔符,默认分隔符为空格 :
练习题2:
# 取出网络中的IP地址
分析: 1,拿到IP地址 ifconfig
2,过滤出所需数据的这一行, awk 'NR==2'
3,然后掐头去尾,取所需数据 awk 'NR==2 {print $2}'
练习题3:
# 打印/etc/passwd 中用户名称及 用户的UID;
第一列和第三列需以:为分隔符;
默认awk是以空格为分隔符
如何自行指定字段分隔符
[root@local ~]# awk -F : '{print $1,$3}' /etc/passwd
练习题4:
#分析如下日志,统计每个域名被访问次数
cat web.log
http://www.xueliangwei.com/index.html
http://www.xueliangwei.com/1.html
http://www.xueliangwei.com/index.html
http://www.xueliangwei.com/2.html
http://www.xueliangwei.com/2.html
http://www.xueliangwei.com/index.html
分析: 先排序再去重统计。
[root@local ~]# sort -rt '/' web.log | uniq -c
练习题5:
#将/etc/passwd 文件中第一行的第一列和最后一列进行位置交换
[root@local ~]# awk -F : '{a=$1;$1=$NF;$NF=a;print}' /etc/passwd | tr " " ":"
#NF 为最后一列
练习题6:
# 将/etc/sysconfig/selinux 文件中的SELINUX=enforcing 替换成 SELINUX=disabled
[root@local ~]# sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
五,文件目录操作命令
1,ls
ls : list 显示目录下的内容和相关属性信息
-l long详细信息
-a 所有文件,包含隐藏文件
-r 逆序排序
-t 按照文件修改时间排序
-d 显示目录本身信息,而不是目录内容
-h 带单位显示文件大小
-Sh 按文件大小进行排序
2,cd
Change directory 改变目录
3,pwd
pwd : Print Working Directory 显示当前工作目录
-P 显示真实目录 (非软链接)
4,tree 树
以目录结构显示目录下内容,和 ls 的参数一样。
5,mkdir
mkdir : Make directory 创建目录
-P partents 递归创建目录。
6,touch
touch : 创建空文件 或 改变文件的时间戳属性
touch {1..100} #批量创建100个文件
{} #生成序列{1..100}, {a..z}
7,cp
cp : Copy 复制
-r 递归复制
-v 显示复制详细信息
-f 强制覆盖
-p 复制文件或目录保持属性不变
-a 与-r类似
#使用cp -a 相当于将原数据原封不动的拷贝过来,不改变里面的任何信息
#使用cp -r 拷贝数据,拷贝的结果是生成新的时间戳等信息
8,mv
移动或重命名文件
9,rm
rm 删除文件或目录
-r 递归
-f 强制
10,vim
vim : 编辑工具 和 Notepad++ 无异
#普通模式
复制 yy
粘贴 P 或 p
删除 d 或 D x
撤销 u
替换 r 或 R
进入编辑模式: i ,a ,o ,s
#编辑模式
编辑内容,看业务需要
#末行模式
保存 w
退出 q
搜索 /
替换 :%s///g
#视图模式
可视行: 行
Shift + v 进入行模式(批量操作)
d 删除
y 复制
可视块: 列
Ctrl + v 进入块模式
插入内容: 选中第一列,Shift + i,输入内容,按下ESC。
删除内容: 选中对应内容,按下 x/d 删除即可。
11, > 和 >>
> 输出重定向 和 >> 追加
#基本语法:
ls -l > 文件 #ls -l 查看到的内容 写入到 文件中,覆盖写
ls -l >> 文件 #ls -l 查看的内容追加到文件的末尾
#介绍:
> 输出重定向: 会将原来的文件内容覆盖
>> 追加: 不会覆盖源文件内容,而是追加到文件尾部
12,ln 创建链接
ln : 创建硬链接
-s 创建软链接
六,系统命令
1,history
history : 查看历史记录
-w 保存历史命令到历史文件 #历史文件 .bash_history
-c 清空命令历史记录 #只是伪清空,真实清空需要删除历史文件内容
-d 删除历史命令的第N条
!n 调用之前执行编号为N的指令
2,系统别名:
#alias : 建立别名
例如: alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens32'
输入net 即可查看
#unalias : 取消别名
unalias net
#别名只能再当前bash使用,其他窗口不可使用,关闭窗口即没,临时生效
#如果要永久使用需要写入配置文件 .bashrc
3,日期
#date : 显示当前日期
-S 修改日期
例如: date -S "2020-10-21 11:22:14"
#cal : calendar 查看本月日历
cal 年份 #显示这一年的日历
4,free
### free命令可以显示当前系统内存信息
· total : 总计物理内存的大小
· used : 已使用多少
· free : 可用内存
· Shared : 进程共享内存总额
· Buffers/Cached : 磁盘缓存的大小
free
-h 以人类可读的方式显示内存信息
-l 显示高低内存的利用率
-t 显示linux的全部内存
-s N 表示每隔N秒打印一次内存信息,直到Ctrl + C结束
-c 4 表示重复打印内存信息4次
-s 2 -c 4 表示每隔2秒打印一次内存信息,共打印4次