linux命令帮助手册:https://man.linuxde.net/
一、LINUX目录
bin: 二进制文件
dev: 外接设备(盘,光盘)
etc: 配置文件
home: 用户的家目录(除root)
proc: Linux运行时的进程
root: root用户的家目录
sbin: super binary 可执行的二进制文件(须有super权限[超管]才能执行)
tmp: 临时文件
usr: 用户自己安装的软件
var: 程序、系统日志文件
mnt: 外界设备需要挂载,挂载在该目录
二、指令
1. 文件、文件夹 操作指令
ls
ls 列出当前工作目录文件及文件夹
-l 详细列表
-a 对隐藏文件进行显示
-lh 在l基础上,对文件大小的展示更友好
【显示结果】
第一列的第一个字母(文件类型):
- 文件
d 文件夹
l 软连接
s 套接字
第一列的其他9个字符表示权限:
2-4位:文件所有者读、写和执行权限
5-7位:文件所有者同组人读、写和执行权限
8-10位:文其他人读、写和执行权限
其中:rwx分别表示读、写、执行。例如:r--表示只有读权限,rw-表示只有读写权限,--x表示只有执行权限。
pwd
print working directory
打印当前工作绝对路径
cd
切换当前工作目录
mkdir
make directory
创建目录
mkdir 路径([目录/]文件夹名)
touch
创建文件
touch [路径/]文件
cp
copy 复制。可以给文件改名。
-r 递归复制
cp 被复制的文档 新路径+文件名
cp -r 被复制的文件夹 新路径
mv
move 移动(剪切)文件或文件夹。
重命名。
mv 需要移动的文件或文件夹路径 新位置
rm
移动/删除
-f force,无需提示(直接删除时会提示是否删除)。
-r 递归删除
#可同时删除多个命令
rm -rf 文件名1 文件名2 文件名3
chmod
给文档赋权限。只有root或文档所有者才能赋权。
-------------------
1.字母模式
给谁设置:
u 所有者身份
g 同组用户
o 其他人
a 所有人(默认)
权限字母:
r 读
w 写
x 执行
权限分配方式
+ 给用户新增权限
- 删除权限
= 将权限设置成什么(覆盖)
chmod u+x,g+rx,o+r a.txt
-------------------
2.数字形式
r: 4 100(二进制)
w: 2 010(二进制)
x: 1 001(二进制)
chmod 777 a.txt
chown
更改文档所有者(文件属主)。
chown 用户名 文档
chown test oo/
chown -R username:groupname 文档
chgrp
更改文档的所属用户组。
chgrp -R groupname 文档
chgrp test oo/
2.文件内容 指令
vim
vim 打开文件
{vim编辑器 相关在 "第二部分-指令" 最底下}
输出重定向 > 和
> 覆盖输出,会覆盖原先的文件内容
>> 追加输出,原文件末尾追加
#将ls -la输出写入ls.txt文件里(ls.txt可以自动新建)
ls -la > ls.txt
cat
查看文件(将文件打印在控制台)。
合并文件。
#合并文件,舍弃待合并文件
cat 待合并文件1 待合并文件2 ... > 合并之后的文件路径
#合并文件,保留原文件
cat 待合并文件1 待合并文件2 ... >> 合并之后的文件路径
head
查看文件的前n行,不指定默认前10行
#查看文件前五行
head -5 文件路径
tail
查看文件末尾n行,默认10行
-f 查看文件动态变化
#查看文件末尾10行
tail -10 文件路径
## 查看文件的动态变化
tail -f 文件路径
less
查看文件,以较少的内容进行输出,按下辅助功能键查看更多
【辅助键】
数字+回车 从输入的数字行开始展示
空格 翻页
上下方向键 行移动
wc
统计文件内容信息(行数l、单词数w、字节数c)
-l line行数
-w words单词数
-c 字节数
3.其他
df
df 查看磁盘
-h 大小展示包含k,M,更友好
free
查看内容使用情况
-m 内存大小单位为mb
【展示结果】
buffers已经占用内存但未使用的输出内存
cacheds已经占用内存但未使用的输人内存
free真实的剩余可用内存
date
操作时间日期(读取,设置)
#直接输出时间日期
date
#输出当前‘年-月-日’ 2099-12-31
date +%F
date %Y-%m-%d
#输出当前“年-月-日 时:分:秒” 2099-12-31 00:00:00
date +%F%T
date "+%F %T"
date "%Y-%m-%d %H:%M:%S"
#一年前的日期时间
date -y "-1 year" "%Y-%m-%d %H:%M:%S"
#一天后的日期时间
date -d "+1 day" "%Y-%m-%d %H:%M:%S"
#十月后的日期时间
date -m "+10 month" "%Y-%m-%d %H:%M:%S"
%F:表示完成的年月日
%T:表示完成的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
cal
操作日历。
#输出当前月份的日历
cal
cal -1
#输出上月,本月,上月日历
cal -3
#输出一年的日历
cal -y
clear 或 ctrl+L
清除控制台。(其实是以前的命令隐藏到最上边)
管道符 |
配合其他命令使用,辅助作用。
管道符前的输出是其后一个命令的输入。
#根目录下含y的文件或文件夹(grep命令用于过滤)
ls / | grep y
#统计路径下的文件及文件夹数
ls / |wc -l
ls / |wc -w
ps
查看服务器进程信息
-e 列出全部进程
-f 显示全部的列(全字段)
#查看进程名的进程信息
ps -ef|grep 进程名
【显示结果】
UID:该进程执行的用户id
PID:进程id
PPID:父进程id。如果一个程序父进程找不到,其为僵尸进程。
C:cpu的占用百分比
SYTIME:该进程启动时间
TTY:终端设备,发起该设备的设备识别符号。?为不为终端发出。
TIME:进程的执行时间
CMD:该进程的名称或对应路径
top
服务器进程占的资源(动态显示)。
在top展示结果可输入以下字母进行操作:
q 退出按q。
m 将结果按照内存从高到底降序排列
P 将结果按cpu使用率从高到低降序排列
1 切换是否显示。展示各个cpu信息
【显示结果】
up 开机时长
load average 分别对应1分钟,5分钟,15分钟负载情况
Mem 内存使用信息
Swap 交换分区信息
PID 进程id
PR 优先级(越大越高)
NI 用户进程空间内改变过优先级的进程占用cpu百分比
VIRT 虚拟内存
RES 常驻内存
SHR 共享内存。
S 进程状态(S睡眠,R运行)
%CPU cpu使用百分比
%MEM 内存使用百分比
TIME+ 进程的执行时间
COMMAND 进程的名称或路径
du
查看目录真实大小
-s summaries。只显示霍总大小
-h 以高可读形式显示
#统计root目录真实大小
du -sh /root
find
查找文件
-name 根据文件名搜索
-type 根据类型搜索。f表示文件,d表示文件夹
#在路径下搜索文件(自支持模糊搜索)
find 搜索路径 -name 文件名
#根目录下搜索.conf后缀名文件
find / -name *.conf
#搜索/etc下所有文件
find /etc -type f
service
控制一些软件的服务的启动start,停止stop,重启restart
#启动httpd服务
service httpd服务 start
kill
杀死进程
-9 强制
kill 9999
killall 进程名
sudo
输入visudo可以修改sudo配置文件。
第二列的ALL:表示 。
第二列的(ALL):谁的身份执行,all表示root
第三列表示可执行的命令,逗号分隔。
test ALL=(ALL) /usr/sbin/useradd,!/usr/bin/passwd root
4.网络命令
ping
查看当前主机与目标主机之间的连通性
ping www.baidu.com
netstat
查看网络的连接信息
netstat -tnlp
-t tcp协议
-n 将字母转化为数字
-l 列出状态为监听的
-p 显示进程相关信息
netstat -an
-a 全部协议
-n 将字母转化为数字
traceroute
查找当前主机与目标主机之间所有的网关(路由器,会给沿途各个路由器发送icmp数据包)
traceroute 主机地址
#可以通过网页版的‘站长工具’可视化网页实现该功能(tool.chinaz.com)
arp
根据ip地址获取MAC物理地址
arp -a 查看本地缓存mac表
-a 全部
tcpdump
抓包,抓取数据包
tcpdump port 22
tcpdump port 22 host 192.168.1.130
5.一些不常用的指令:
su 切换用户。su test 切换到test用户
passwd 修改用户密码。#passwd root
hostname 操作主机名
id 查看用户基本信息
whoani “我是谁”。显示当前用户名
ifconfig 网卡信息
reboot 重启计算机
shutdown 关机
uptime 输出计算机的持续在线时间(计算机从开机到现在运行时长)
uname 获取操作系统相关信息。uname -a 获取全部信息。
netstat -tnlp 查看网络连接状态。-t表示只列出tcp协议的连接。-n转化成ip:端口号。-l过滤出state(状态)列值为LISTEN(监听)的连接。-p显示进程pid、进程名。
man manual。linux命令帮助手册。q退出。
6.给指令起别名
Linux是使用别名映射文件进行映射
使用`~/.bashrc`文件
添加别名
格式为:
alias cls='clear'
之后注销系统,在终端输入cls就相当于clear命令
other: vim三种模式操作
打开编辑文件
#打开文件,进入命令模式
vim 文件路径名
#打开指定文件,并高亮显示关键词
vim +/关键词 文件路径
例如:vim +/login passwd
------------------------------------
:q 退出
:q! 强制退出,不做保存
:w 存储所写内容
:w 新路径 将当前文档另存到新路径下
:wq 保存并退出
:x 文件没修改相当于:q,不更新文件的修改时间。文件修改了相当于:wq。
:X 文件进行加密
-------------------------------
三种模式:
1. 命令模式(打开文件默认进入的模式):只可以输入快捷键进行操作(删除行,复制行,移动光标,粘贴)
?```
光标移动的直接键盘按键(相当于快捷键)
光标移动到首行 gg
光标移动到末行 G
向上翻屏 ctrl+b 或pgUp
向下翻屏 ctrl+f 或pgDown
光标快速移动到指定第3行 3G
光标快速向上/向下移动3行 3? 3?
光标快速向左/向右移动3行 3? 3?
复制光标所在行 yy
复制当前光标及往下总共7行 7yy
粘贴在光标位置 p
ctrl+v 进入可视块,可使用方向键进行选择,然后yy进行复制
剪切/删除 光标所在行 dd
剪切/删除 光标所在行及下几行 6dd
撤销上次操作内容(相当于ctrl+z) u
恢复撤销操作(相当于ctrl+y) ctrl+r
?```
:1 光标移动到第一行
:u 撤销上次操作内容(相当于ctrl+z)
--------------
2. 编辑模式:对文件内容进行编辑
可按i或a或insert等键从从命令模式进入编辑模式。
i就表示在光标前插入
a表示在光标后插入
????移动光标
------------
3. 末行模式:在末行输入命令对文件进行操作(搜索,替换,保存,退出,撤销,高亮)。
输入英文冒号:即可从命令模式进入末行模式。按esc退出该模式到命令模式。
:q 退出
:q! 强制退出,不做保存
:w 存储所写内容
:w 新路径 将当前文档另存到新路径下
:wq 保存并退出
:x 文件没修改相当于:q,不更新文件的修改时间。文件修改了相当于:wq。
:X 文件进行加密
#调用外部命令
:!外部命令
:!ls 临时查看ls结果
:!which useradd 在vim里临时查看useradd命令的文件在哪
#查找
/关键词
/sbin 文件里sbin进行高亮
#在搜索结果切换上/下一个高亮结果
N/n
#取消高亮显示(no hightlight)
:nohl
#替换
:s/搜索关键词/新内容 替换光标所在行第一个符合条件内容
:s/搜索关键词/新内容/g 替换光标所在行全部符合的
:%s/搜索关键词/新内容 替换所有行第一个符合的
:%s/搜索关键词/新内容/g 替换所有行符合的
#显示行号
:set nu
#取消显示行号
:set nonu
#使用vim打开多个文件时
#查看已经打开的文件列表
:files
其中%a表示当前活跃文件,#表示上一个打开的文件
#切换文件,打开另一个文件
:open 文件名
#切换上一个文件
:bp
#切换下一个文件
:bn
------------------------
%表示整个文档
g表全局
#vim
#代码着色 开启
:syntax on
#代码着色 关闭
:syntax off
#vim自身计算器
a. 进入编辑模式
b. 按下ctrl+R ,输入=。光标会移动到最后一行
c.输入需要计算的内容,回车 (输入=1+1,回车)
vim配置文件
1. 在~文件夹下创建自己的个人配置文件 ~/.vimrc
2. 全局配置文件 /etc/vimrc
vim异常退出(未使用:wq退出,直接关闭终端)
在同目录下直接删除交换文件即可。交换文件命名为 “.文件名.swap”,其中文件名为异常退出的文件名。
三、服务、防火墙、rpm、计划任务
1. 服务
##开机启动服务查询
chkconfig --list
##添加开机启动服务(服务必须得能正常运行)
chkconfig --add 服务名
##设置某个服务在某个级别下启动、不启动
chkconfig --level 3 服务名 开chkconfig --level 5 服务名 关
2. 防火墙iptables
chkconfig --list | grep iptables
service iptables status
service iptable start
etc/init.d/iptables start
service iptable stop
/etc/init.d/iptables stop
service iptable restart
/etc/init.d/iptables restart
iptables -L -n
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
3. rpm
对Linux服务器上的软件包进行管理
rpm -qa|grep 关键词
rpm -e firefox
rpm -e 软件名 --nodeps
rpm -ivh 软件名
4. cron/crontab 计划任务
0 0 * * * reboot
45 4 1,10,22 * * service network restart
*/30 18-23 * * * service network restart
*/2 * * * * date+"%F %T" >> RT.txt
? 管理员用户可以在’/etc/cron.deny’文件里配置不允许哪些用户来添加计划任务(黑名单)。可以在’/etc/cron.allow’文件允许哪些用户进行创建(白名单)。白名单优先级高于黑名单,都不在黑白名单则为允许。
四、shell脚本
1. 脚本注释
? 脚本的第一行一般为
#!/bin/bash
指定当前脚本要使用的shell解释器。
#在shell中表示注释
2.变量
变量定义
class="yw"
- 变量名后的等号左右不能有空格
- 命名只能使用字母、数字和下划线,中间不能有空格和其他符号
- 不能是关键字
使用变量
echo $class
echo "$class"
dt=`date +'%F %T'`
echo dt
删除变量
unset 变量名
只读变量
a=10
readonly a
a=5
echo $a
接受用户输出
read -p 提示信息 变量名
read -p '请输入:' in
echo $in
3.判断、条件
if
if condition
then
command1
elif conditon2
then
command2
else
command3
fi
4.运算符
数学运算符
加+,减-,乘*,除/,取余%,赋值=,相等==,不等!=
expr是表示计算工具,使用它完成表达式求值
val=`expr2 + 2`
echo `expr $a + $b`
echo `expr $a \* $b`
关系运算符
只支持数字,不支持字符,除非字符是数字
-eq 是否相等,相等为true
-ne 是否相等,不相等为true
-gt 左数是否大于右数,是为true
-lt 左数是否小于右数,是为true
-ge 左数是否>=右数,是为true
-le 左数是否<=右数,是为true
[10 -lt 20] 返回true
逻辑运算符
! 非
-o 或
-a 与
[!false] 返回true
[10 -lt 20 -a 20 -gt 100] 返回false
字符串运算符
= 检测两个字符串是否相等,相等为true
[$a = $b] 返回false
!= 检测两个字符串是否不相等
[$a != $b]
-z 字符串长度是否为0,为0返回true
[-z $a]
-n 字符串长度是否为0,不为0返回true
[-n $a]
str (直接写字符串)检测字符串是否为空,不为空为true
[$a]
文件测试运算符
-b file 检测文件是否为块设备文件,是为true
-c file 检测文件是否为字符设备文件
-d file 是否为目录
-f file 是否为普通文件(非目录和设备文件)
-r file 是否刻度
-w file 是否可写
-x file 是否可执行
-s file 文件是否为空(文件大小是否大于0)
-e file 文件是否存在
#!/bash/bin
filepath='/sss.txt'
if [ -d $filepath]
then
echo '是目录'
else
echo '不是目录
fi
5.传递参数给shell脚本
./test.sh a b c
echo $1 $2 $3
? 传入的a被赋值给$1,b赋值给$2,c赋值给$3
if [ $1 -eq '-add' ]
then
command1
else
command2
fi
|