基本命令
ping 格式
ping IP
用于测试网络连通性
telnet
telnet IP
这是一个工具 也是用远程连接的 不过较小
date
显示当前日期时间
-s //指定时间/日期
20100521 //2010年5月21
12:12:12 //12点12分12秒
(以上的单独设置)
“20100521 12:12:12” //中间用空格分隔
-d //按照你描述的格式显示日期
-10day 十天前
1year 一年后
-5month 五个月前
+ //指定格式使用
+%Y:%m:%d 年:月:日 (+%F 直接显示年月日)
+%H:%M:%S 时:分:秒 (+%T 直接显示时分秒)
+%w 周几
date -d -1month +%Y-%m-%d_%w
显示一个月前的时间,并按照 年-月-日_周几 的格式输出
ntpdate
根据目标服务器,更改时间日期
ntpdate ntp1.aliyun.com
根据阿里云服务器同步时间(前提联网)
mkdir
mkdir (路径)目录名
创建文件夹
-p 一次性创建多个目录
-m 对新建目录设置权限(同chmod)
touch
touch (路径)文件名
在当前目录或指定目录下创建文件
ls
ls 路径(没有路径就是当前目录)
显示当前目录或指定目录的信息
-a 列出所有文件,包括隐藏的
-c 输出文件的i节点的修正时刻
-R 列出一切子目录下的文件
-l 列出文件的具体信息
-i 输出文件的i节点的索引信息
-d 查看目录本身的属性,把目录当作文件处理
-F 给不同类型的文件 加上不同的标记/尾巴
-t 显示文件/目录创建的时间
-r 让显示的时间变成逆序
file
查看文件类型
1.纯文本文件 2.二进制文件(命令) 3.数据文件(data)
ln
ln [选项] 文件源 目标链接点
创建硬链接(不能对目录创建)
-s //创建软链接文件(如不加,则是硬连接)(可对目录创建)
echo
echo (想要显示输出的东西)
把所输入的东西输出在屏幕上,如果中间有空格 需要加上“ ”
-n 取消输出结尾的回车
-e 支持转义符号系列
\n 回车
\t tab的八个空格
read
从键盘读取变量的值,通常用在shell脚本与用户进行交互的场合,可一次性指定多个变量
-p //指定输出名称,必须放在名称前
-t //指定读取时等待时间,默认为秒
-s //实现密文输入变量值
{ }
echo qwe{1..10}
生成序列
cat
cat (路径)文件名
打开/显示文件里的内容
-n 显示行号
-A 显示每行的结尾 在结尾放一个$
pwd
pwd
显示当前所在的位置路径
cd
cd (目标)目录
切入/进入 目标目录
vi
vi (路径)文件
文本编辑器,(同vim)
①输出模式:a / i / o
②命令模式:/(输入指定名称,查找字符串)
③末行模式: :q(退出)/w(保存)/wq!(强制保存并退出)/h (帮助)
x (等于wq)
C //删除光标到行尾
u //撤销操作
G //直接到末行
gg //直接到首行
dd //删除整行
yy(数字) //复制几行
p //粘贴
> 格式
echo 123321 > /qwe
把要输出的内容输入到指定文件中,覆盖。输出从定向
>>
echo 123321 >> /qwe
把要输出的内容输入到指定文件中,追加。追加输出从定向
<
123 < qwe
输入目标文件内容(输入从定向)
注:
错误从定向:将执命令过程中出现的报错保存到指定文件,而不显示在屏幕
2>
其中“2”是文件编号。
&>
可将两类输出信息保存到一个文件
|
netstat -anpt | grep 22 (查看已开启服务和端口 | 过滤出带有22端口的字段)
就是将前面命令输出的结果作为后面命令的参数(管道符)
| xargs
find / -type f -name “qwe.sh” | xargs cat
把前面的命令的结果作为后面的参数(输出的是文件名)(这个命令后面不识别别名)
!
大多的意思为取反(值),可应用在很多的命令里
install
安装/复制,这个命令用在复制时可指定目标文件的属性。
-m //指定文件/目录权限(655)
-d //将所有参数都作为目录处理
-v //处理每个文件/目录时印出名称
cp
cp (路径)文件/文件夹 目标路径
将文件/目录复制到目标目录里
-r 递归
-f 强制
-t 把参数的位置反过来(但命令含义不变)
cp 目标路径 (路径)文件/目录
# 1.把 3.复制 4.到这个路径 2.文件/目录
mv
mv (路径)文件/目录 目标路径
将文件/目录移动到目标目录里
-r 递归
-f 强制
rename
rename from to file
可以对文件或目录批量重命名
rename log txt log*
命令字 把原有的 改成 哪些文件
(以上rename这个命令是C语言版本的,Perl语言的与其语法不同)
rm
rm (路径)文件/目录
将文件/目录删除
-r 递归
-f 强制
tree 命令
以树形显示目录结构,需要安装
-d //只显示目录
-L //--level 显示最多几层目录
find
fing 范围(如 / 下) 选项
查找此名/此类/此大小/此属性的文件/目录
-name 查找此名
-iname 查找文件名的时候忽略大小写
-size 查找此大小(大+1M/等=100k/小-10M)
-type 查找此类型
-user 查找此属性
-exec 把前面命令的结果 放到后面命令后面的{}里,以\;结尾
find /etc -type f -name “*.txt” -exec rm -f {} \;
-maxdepth 查找深度(几层目录)(用数代表几层)
-mtime 查看关于时间(天)的文件或目录
-5 //前五天的(最近五天)
+5 //五天之前的
whereis
查找特定的文件/目录
-m //只查找帮助文件
-u //查找不包含指定类型的文件
-B //在指定目录下查找二进制文件
-M //在指定目录下查找帮助文件
-S //在指定目录下查找原始代码文件
-f //在使用-B -S -M 选项指定要查找的目录时,以-f选项终止最后一个目录
-b //只查找二进制文件
-s //只查找原始代码文件
-m //只查找帮助文件
-u //查找不包含指定类型的文件
-B //在指定目录下查找二进制文件
-M //在指定目录下查找帮助文件
-S //在指定目录下查找原始代码文件
-f //在使用-B -S -M 选项指定要查找的目录时,以-f选项终止最后一个目录
-b //只查找二进制文件
-s //只查找原始代码文件
w
显示远程登陆的用户信息
-f //开启/关闭显示用户从何处登陆系统,默认为开启
-h //不显示各栏目的标题信息列
-s //将信息用较简洁的格式显示
which
which mkdir(命令字)
用于查找命令源
grep
grep 目标字段 目标文件或数据
在次文件或数据中过滤出你想要的目标字段
-v //过滤掉(不要这个,显示其他)
-n //显示行号(grep -n . 文件)(“.”代表任意字符 正则表达式)
-o //显示grep命令的执行过程(每次找到了什么)
-i //忽略大小写
sed
sed [-n] ‘20,30p’ 文件
过滤目标文件的20到30行
一个替换工具,可以简单的过滤行
-n //把文件原有的输出去掉,只显示想要的行数
-i //替换文件内容(后面加.XX 就可以先把源文件备份,在对源文件进行 修改)
-r //用这个选项可以使用扩展正则表达式
命令:
a\ //在当前行下面插入文本
i\ //在当前行上面插入文本
c\ //把选定的行改为新的文本
d //删除所选择的行
D //删除板块的第一行
s //替换指定字符
h //复制模块的内容到内存中的缓冲区
H //追加模块的内容到内存中的缓冲区
g //获得内存缓冲区的内容,并代替当前模板中的文本
G //获得内存缓冲区的内容,并追加当前模板中的文本的后面
n //读取下一个输入行,用下一个命令处理新的行而不是用第一个命令
p //打印模块版的行
P //打印模块版的第一行
! //表示后面的命令对没被选定的行发生作用
= //打印当前行号码
# //把注释扩展到下一个换行符以前
替换标记:
g //表示全局替换
p //表示打印行
w //表示把行写入一个文件
x //表示互换模板块中的文本和缓冲区的文本
y //表示把一个字符翻译为林外的字符
\1 //子串匹配标记
& //已匹配字符串标记
元字符集:
^ //匹配行开始
$ //匹配行结束
. //匹配一个非换行的任意字符
* //匹配0个或多个字符
[ ] //匹配一个指定范配内的字符
[^] //匹配一个不在指定范围内的字符
awk
awk [选项] ‘(位置变量)’ 文件
或(‘{pritn (位置变量)}’)
过滤目标文件的列
-F //指定分隔符,如不加 则默认是用空格作为分隔符
//加上 “[ ]” ,可以在双引号中括号里使用多个分隔符
-v //赋值一个用户定义变量,将外部变量传递给awk
-f //从脚本文件读取awk命令
逻辑运算符:
|| //逻辑或(或者)
&& //逻辑与(而且)
! //逻辑否(不)
位置变量:
$1/$2/…/$9 //数字几就代表第几列,$NF 代表位权的最后一列
awk ‘{print NR,$0}’ 文件
显示内容的同时显示行号,NR代表行号
cut
阉割版的awk
-d “ ” //指定分隔符 (只能指定一个分隔符)
-f数字 //取第几列(2,5 二列和五列)(2-5 二到五列)
head
head -2 文件
查看目标文件的前两行,如果不加选项 默认查看前十行
tail
tail -4 文件
查看目标文件后四行。如不加选项 默认查看后十行
-f //选项后面加上日志文件,可动态跟踪(等同tailf命令)
tar
归档和释放工具(打包)
-C //解压时指定释放的目标位置
-c //创建.tar格式的包文件
-f //表示使用归档文件(必须使用的)
-j //调用bzip2程序进行压缩或解压
-p //打包时保留文件及目录的绝对路径
-v //输出详细信息
-t //列表查看包内文件
-x //解压.tar格式的包文件
-z //调用gzip程序进行压缩或解压
--exclude= //排除指定文件
zip
zip qwe.zip qwe.txt (压缩)
unzip qwe.ziip (解压)
windows与linux都支持的压缩格式
rpm
与tar工具类似,也是安装软件的工具
-q//查看rpm软件包的信息
-l//list,列出内容
-a//all,显示所有
-i //安装新的rpm软件包
-e //卸载
-U //检查并升级软件包
-v //显示详细信息
-h //把显示的信息变成百分比
-F --force //强制安装
--nodeps //在升级,卸载,安装时不依赖其他软件包
yum
yum 选项 软件包名(可简写)
安装编译软件的一款工具,可以直接安装编译rpm包,但更方便
-y //自动回应yes-------可与安装/卸载一起使用
list //显示yum仓库的列表
info //查看软件包的描述信息
grouplist //列出软件组包
groupinfo //查看软件组包的信息
install //安装
remove //卸载
useradd
useradd 用户名
添加用户
-M //不创建用户家目录
usermod
修改用户属性
-g //基本组
-G //附加组
-d //指定登陆时的启始目录
-L //锁定账号
-U //解锁账号
-c //添加注释
-s //指定用户的登陆shell
userdel
删除用户
-r //把与此账户相关的所有信息都删除
passwd
pwsswd 用户名
(改密码)
修改用户密码(如果是root用户改其他用户的话则不需要输入旧密码)
-S //查看账号状态
--stdin //从管道前获取密码(非交互式)
echo ‘密码’ | passwd --stdin 用户
groupadd
添加组账号
groupwd
设置组成员
-a //添加
-d //删除
-M //添加多用户
groupdel
删除组账号
groups
查询用户所属组
id
查看用户的UID,GID,属组
last
哪个用户 在什么时候 从哪里 远程登陆你的系统,用户登陆的信息
lastlog
显示linux中所有用户最近一次远程登陆的信息
chmod
chmod (选项) 文件/目录
给文件/目录设置权限
r //查看 4
w //写入 2
x //执行 1
-R //递归
u //属主
a //所有用户
g //属组
o //其他用户
+ //增加
- //减少
= //对应(并刷新原来的权值)
chown
chown 用户:属组 文件/目录
改改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组
umask
设置文件默认的权限掩码
-S //以文字方式显示权限掩码,方便用户阅读
sync
将内存的东西写回到硬盘
mount
mount /dev/cdrom /mnt
把/dev/cdrom 的光盘挂载到/mnt上
-t //指定文件系统(nfs,nfts)
-o loop //把一个文件当成硬盘分区挂接上系统
ro //采用只读的方式挂载
rw //采用读写的方式挂载
iocharset //指定访问文件系统所用字符集,如 iocharset=utf8
remount //重新挂载
umount
umount /dev/cdrom
把/dev/cdrom 上的光盘卸载
-l //懒惰卸载(普通卸载不了的时候一起用)
-f //强制卸载(普通卸载不了的时候一起用)
eject
弹出设备,如光驱
-c //选择光驱,编号依次为0.1.2.3..........
-d //仅显示预设的设备,不实际执行动作
-r //退出光盘
-t //关闭光盘托盘,即回收光盘
-v //显示详细信息
fdisk
fdisk 磁盘分区
管理磁盘
-l //查看硬盘信息
交互式:
p //列出磁盘使用情况(83ext4 8e逻辑卷 82swap bFAT)
n //新建分区
d //删除分区
t //变更分区类型
w //保存退出
q //不保存退出
parted
这个工具可以在里面使用linux快捷键,工具创建分区大小默认是MB,不用保存,工具创建删除时的实时生效的.创建分区时,给需要手动计算从哪到哪,0 100M,100 1000.也可以直接在命令行使用
mklabel //创建磁盘分区表(gpt mbr)
mkpart //创建分区
print //显示分区信息
quit //退出不保存
rm 数字 //删除一个分区
mksf
给分区建立文件系统(格式化分区)
fs //指定简历文件系统时的参数
-t //指定嗯我那件系统类型
-c //制作档案系统前,检查改分区是否由坏轨
mkfs -t ext4 /dev/sdb1 将sdb1分区格式化为ext4格式的文件系统
mkfs.ext4 /dev/sdb1
mkswap /dev/sdb2 将sdb2分区而格式化为swap文件系统
partprobe
partprobe /dev/sda
识别分区(有时候刚建立的分区,格式化时找不到,需要更新一下)
df
df
查看磁盘使用情况(默认可查看block情况)
-i //查看inode使用情况
-h //以单位G/M/K显示
-T //查看文件系统类型
du
统计目录及文件大小
-s //显示总计,列出最后加总的值
-h //以K M G 为单位,提高可读性
-a //显示目录中个别文件的大小
-b //以byte为单位
lsof
查看进程打开的文件,打开文件的进程,进程打开的端口(TCP,UDP)
-a //列出打开文件存在的进程
-c //列出制定进程所有打开的文件
-g //列出GID号进程详情
+d //列出目录下被打开的文件
+D //递归列出目录下被打开的文件
-n //列出使用NFS的文件
free
显示系统内存的使用情况
-h //以GB/MB为单位显示
ps
查看静态进程信息
a //显示所有终端下的程序
u //以用户为主的格式显示程序状况
x //显示所有程序,不易终端机来区分
-ef //显示所有正在运行的进程
top
查看动态进程信息
jobs
jobs -l
查看后台进程
sort
排序(默认是按照字母的方式排)
-n //按照数字的方式排序
-r //倒序
-h //以大小单位的方式排序
-k //指定某一列进行排序
ps aux | sort -nrk3 查看CPU使用率高的
kill
kill PID
杀死进程(结束进程)
-9 //强制
crontab
计划任务
-e //编辑
-l //列出任务列表
-r //删除任务
service
service 系统服务 选项
控制系统服务
start //开启
stop //关闭
restart //重启
status //查看状态
reload //重载
chkconfig
chkconfig [选项] 服务 [状态]
检查,设置系统的各种服务
选项:
--add //添加为系统服务
--del //从系统服务中删除(降级)
--level //指定系统服务要在哪一个执行等级中开启或关闭(等级:0-6)
状态:
on //添加为开机自启
off //设置为开机不自启
chattr
chattr 选项 文件
对文件进行特殊权限的操作
+i //锁定
+a //只能对文件进行追加
lsattr
lsattr 文件
查看文件状态(属性)
-a //显示所有文件和目录,包括隐藏文件
-d //显示目录本身的属性信息
-R //递归处理
lsmod
显示linux内核已载入的系统模块
history
查看历史命令
-c //清空
su
su - 用户
切换用户是同时切换目标的shell环境
sudo
sudo 命令字
执行命令同时提升权限
-l //用户 可以看到自己提升了哪些权限
! //感叹号 取反,排除,如 我想让他使用/bin 除了vi 以外的所有命令
visudo //可直接进入配置文件/etc/sudoers 编写给普通用户提升的权限
用户名 ALL=ALL 命令的绝对路径(每个命令之间用 逗号空格 分隔 , )
netstat
用来打开系统的状态信息,可得知整个linux系统的网络情况
-a //显示所有
-n //直接使用ip地址,而不通过域名服务器
-p //显示进程信息
-t //仅显示tcp相关的选项
-u //仅显示udp相关的选项
-r //显示路由信息,路由表
-e //显示扩展信息,如UID等
route
查看或设置路由
add //添加一个新的路由
del //删除一个
gw //通过网关发送数据包
net mask //添加网络路由时,用XXXX作为子网掩码
reject //设置堵塞的路由
-net //指定目录网络
-host //指定目标主机
tr
可以对来自标准输入的字符进行替换,压缩和删除(美化单行命令)
-c //取代所有不属于第一字符集的字符
-d //删除所有属于第一字符集的字符
-s //把联系重复的字符以单独一个字符表示
-t //先删除第一字符集比第二字符集多出的字符
用tr压缩字符,可以压缩输入中重复的字符:
echo "thissss is a text linnnnnnne." | tr -s ' sn'
this is a text line.
字符集补集,从输入文本中将不在补集中的所有字符删除:
echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'
1 2 3 4
iptables
iptables [-t 表名] 选项 链名 [匹配条件] -J 控制类型
防火墙工具(匹配规则是,按顺序,遵循“匹配即停止”,如没有匹配到规则,则按默认规则处理)
如不加表名,则默认是filter表
表:
filter:对数据包进行过滤(入/出/转)
nat:网络地址转换(前/后/转)
mangle:修改数据包的TOS.(服务类型)(入/出/转/前/后)
raw:决定是否对数据包进行状态跟踪(出/前)
选项:
-A //链的末尾添加一条新规则
-I //链的首行添加一条新规则
-D //删除某一条规则
-F //清空
-P //设置默认策略
-n //以数字形式显示输出结果
-v //显示详细信息
链:
INPUT //入站
OUTPUT //出站
FORWARD //转发
PREROUTING //路由选择前
POSTROUTING //路由选择后
匹配条件:
通用匹配:
-p 协议名 //协议匹配
-s 源地址 / -d 目标地址 //地址匹配
-i 接口名(入) / -o 接口名(出) //接口匹配
隐含匹配:
--sport 源端口 / --dport 目标端口 //端口匹配
--icmp-type ICMP类型 //ICMP匹配
8 //请求
0 //回显
3 //不可达
控制类型:
ACCEPT //允许
DROP //丢弃
REJECT //拒绝(会有拒绝访问的回馈信息)
LOG //在 /var/log/messages 文件中记录日子信息,然后传给下一条规则
关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
halt关闭系统(4)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
命令替换
$(命令字 [选项] 参数)
`命令字 [选项] 参数` (反撇号)
优先执行这里的命令,把结果留下来当作其他命令的参数
快捷键
ctrl
ctrl + l //清屏(clear)
ctrl + d //退出当前用户(logout)
ctrl + c //取消命令
ctrl + r //查找你使用过的命令(可以查询参数) (类与history)
ctrl + s //锁定屏幕
ctrl + q //解锁
ctrl + k //删除光标到行尾的字符(剪切)
ctrl + u //删除光标到行首的字符(剪切)
ctrl + y //粘贴
ctrl + a //把光标移动到命令行开头
ctrl + e //把光标移动到命令行结尾
ctrl + ←/→ //把光标向左/右移动一个单词
esc + . //使用上一个命令的最后一个参数/选项/命令
!$ //上一个命令最后一个参数
tab //自动补齐命令