linux常用命令总结
linux常用命令
查看文件:
1、cat
cat 文件名 --查看显示文件内容
cat 查看文件内容
cat -n 文件名:显示行号
2、tac: 倒叙查看文件内容
3、head
head -n 数字 文件名 ——显示文件的前n行
或者直接head -10 文件名 ----显示文件的前10行
例:head -n 3 123.log 或 head -3 123.log
4、tail
tail -n 数字 文件名 ——显示文件的末尾n行
或者直接tail -10 文件名——显示文件的末尾10行
tail -f 文件名 ——动态更新显示文件 ctrl+c退出
tail -fn 500 文件名 --显示末尾500行,并实时更新
显示日志的前100行
head -100 123.log
显示日志的后20行
tail -20 123.log
显示日志的第100行
head -100 123.log | tail -1
显示日志的第10行-20行
head -20 123.log | tail -11
显示日志的3-6行
head -6 123.log | tail -4
5、more
more 文件名 ——分页查看大文件内容,直接加载整篇文件,消耗多余的缓存
空格显示下一页 回车显示下,不能向上翻页,只有less能向上翻页 q退出
例:more /etc/services
6、less
less 文件名 ——分页查看大文件内容,阅读到内容才加载,节约缓存
空格显示下一页 回车显示下一行 q退出
w后退一页 方向键↑后退一行
/关键字 搜索关键字 按n下一个
g 文件第一行
G 文件末尾行
7、wc:word count:统计指定文件中的字节数、字数、行数。
date 显示当前连接linux服务器系统日期时间
date -s 12/31/2021 设定日期 月/日/年
date -s 10:30:59 设定时间 小时:分钟:秒
date -s "10:35:00 03/11/2021" 同时设置日期时间
也可以:date -s "2021-07-25 21:36:00"
cal 查看日历
8、vi
vi 文件名 ——新建文件并编辑/编辑已存在文件指令
输入i 进入输入模式 --insert--
按Esc键 退出输入模式 进入一般模式
按q 退出recording模式
一般模式:
:q 退出 quit --未修改内容可以直接退出
:w 保存 write
:wq 保存并退出
:q! 强制退出 --放弃修改,直接退出
Y 复制整行
p 黏贴到光标下方
P 黏贴到光标上方
dd 删除一行
x 删除光标字
X 删除光标前一个字
:set nu 显示序号
:n 跳转到第n行
:$ 跳转到末行
/关键字 向下搜索关键字 按n下一个
?关键字 向上搜索 按n下一个
路径相关命令:
路径
1.绝对路径 /home/fanmao/error.log 从根目录到该文件的地址,路径不会变
2.相对路径 从参照路径到该文件的地址,路径会变
cd /etc 切换到/etc 绝对路径 change directory
cd aa 下一层目录aa 相对路径
cd .. 上一层目录 相对路径
cd - 切换到上一次路径.
cd / 切换到顶层根路径
cd ~ 切换到~路径 /root
/a 绝对路径 根目录下的a目录
a/ 相对路径 当前目录下的a目录下
pwd 显示当前完整路径 print work directory
ls 列出当前路径下的内容
ls /etc 列出etc目录下的内容
ls -lt 按文件修改时间降序查看
ls -lrt 按文件修改时间升序查看
ls -dl 只看当前目录的信息 如/home/user,表示只看user的信息
cp 源文件 目的地
cp 源文件 目标文件/新文件名 ,后面一定要接新的文件名,如果不想改名,也一定要加上/ ——复制文件指令 copy
cp -r 源目录 目标目录/新文件名,后面一定要接新的文件名,如果不想改名,也一定要加上/ ——复制目录
cp cc cc2 把本地的cc文件复制到本地,新名cc2
cp -r abc abc2 把本地的abc目录复制到本地,新名abc2
cp cc /etc/cc2 将本地的cc复制到/etc下,新名cc2
cp cc /etc/cc2/ 将本地的cc复制到/etc/cc2下,文件名不变
cp cc a1copy/cc2 把本地的cc 复制到本地a1copy目录下 并改名
cp cc /a1copy/cc2 把本地的cc 复制到根目录下的a1copy目录下 并改名
cp cc ../cc2 将本地的cc复制到上一层路径
cp cc abc/cc2 将本地的cc复制到当前目录的abc路径下
cp /etc/cc2 cc 将etc下的cc2复制到本地,新名cc
cp ../cc2 ./cc2 将上层路径的cc2文件复制到本地
cp /etc/passwd ./ 将/etc/passwd 复制到本地
cp ../error.log ./log
将上一层路径的error.log复制到本地并改名叫log
cp -r /home/abc /
将/home/abc目录复制到根目录下,不改名
cp -r test ../testing/
将当前目录下的test目录复制到上一层目录的testing目录内,不改名
scp 远程复制 加密复制
//从远程其他linux系统拷贝文件过来
scp 远程用户名@ip地址:文件的绝对路径 本地保存路径
例: scp root@192.168.60.133:/etc/passwd /home 保存到本地的home目录下
scp root@212.129.242.150:/etc/passwd /home/aa/passwdsun
//从本地拷贝文件到远程其他linux系统
scp 本地文件绝对路径 远程用户名@ip地址:远程保存路径
例: scp /etc/passwd root@192.168.60.133:/home 复制文件
scp /xyj.sh root@106.54.189.170:/home/
scp -r 复制目录
mv 源对象 目标对象 ——剪切/重命名指令 move
mv a1 a2 重命名对象。如果本地本来就有一个a2,那这个指令就是把a1剪切到a2里面了,等同于mv a1 a2/a1(最后一个a1可加可不加)
mv a1 b1/a1 最后一个a1可加可不加 将本地的a1 剪切到本地的b1目录下 文件名不变
mv a1 /b1/a2 剪切并改名
mv ../a a2 从上一层路径剪切a到本地 新名a2
rz 从本地上传文件到linux系统,直接rz就可以,就是上传到当前路径下
sz +文件路径 -- 从linux系统下载文件到本地
例:sz /home/abc.log
ln 源文件 硬链接文件名 ——创建硬链接
ln -s 源文件 软连接文件名 ——创建软连接
文件内容 硬链接和软连接都和源文件相同,修改源文件随之更改,修改硬链接源文件也更改。
删除源文件 硬链接独立 软连接失效
文件解压缩:
gzip 文件名 ——压缩为文件名.gz
gzip 文件1 文件2 ——分别压缩多个文件
gunzip 压缩包.gz ——解压缩文件
gunzip 压缩包1.gz 压缩包2.gz --同时解压文件
注意:只可以针对文件压缩,不可以目录。
压缩和解压缩后原文件消失
tar ——打包压缩目录指令 xx.tar.gz
tar -zcf 压缩包.tar.gz 目录 ——打包压缩指定目录
tar -xf 压缩包.tar.gz ——解包解压缩
注意:用于目录的压缩,压缩解压缩后源文件不消失
zip 压缩包.zip 被压缩文件/目录 ——压缩文件或目录
zip 压缩包.zip 文件1 文件2 目录1 ——将多个文件或目录压缩到一起
unzip 压缩包.zip ——解压到本地
注意:可以压缩文件和目录,可以压缩多个文件在一个压缩包内。压缩和解压缩后源文件不消失
创建、删除、写入、追加文件:
mkdir 目录名 --在本地创建一个目录(同级下目录不可重复)
mkdir 目录1 目录2 目录3 ——同时创建多个目录
mkdir -p 目录1/目录2/目录3 ——同时创建多个递归目录
touch 文件名 ——创建文件(不存在的文件)/更新最近修改时间(已存在文件)
touch abc.txt
在其他路径创建文件:touch 路径+文件名。如touch /root/fanmao/123,表示在根目录下的root下的fanmao里面创建一个名字是123的文件
rmdir 目录名 ——删除空目录 remove
rmdir 绝对路径 ——删除指定绝对路径空目录
rmdir 目录1 目录2 目录3 ——同时删除多个空目录
rm ——只能删除空文件命令
rm 文件名 ——删除文件,提示确认“yes”是否删除
rm -r 目录 ——删除目录,提示
rm -f 文件 ——强制删除文件,不提示
rm -rf 目录或文件 ——强制删除目录或文件
rm -rf 路径,如rm -rf shanghai/pudong/wanggang,表示删除当前目录下shanghai目录下pudong目录下的wanggang,道理同在其他路径创建新的目录或文件
rm -rf * 删除当前路径下所有文件和目录
> 重定向,写入 (将当前文档全部覆盖更新)
date > aa.log
>> 追加 (在原有文档基础追加写入,不会覆盖原文件)
date >> aa.log 将日期追加到该文件
追加自定义字符到指定文件:echo 新内容 >> 文件名
当文件不存在时,echo “123” >> haha,相当于创建一个名为haha的文件,内容是123,等同于echo “123” > haha
文件权限:
14024749 drwxr--r-- 1 root root 0 10-31 11:22 aanew
节点ID号 权限 里面的内容数 所属主 所属组 大小 最近修改时间 名
不同颜色的文件:
普通文件 黑色/白色 权限首位-
目录 蓝色 权限首位d
压缩包 红色
绿色 可执行文件
浅蓝色 链接文件 权限首位l
红色底色 出错的链接文件
第一位:文件类型 d或 l或 -
第2-4位:所属主的权限 u(user)
第5-7位:所属组的权限 g(group)
第8-10位:其他用户的权限 o(other)
r:read-4 查看内容cat 查看目录内容ls
w:write 修改内容vi 创建删除文件touch rm
x:excute-1 运行sh 进入cd
u所属主 g所属组 o其他
chmod 修改文件/目录权限 文件名 +给是与权限 -是去除权限
chmod ugo+w b2
chmod u-x,g-rw b2
chmod u+wx,ugo-r b
所属主去掉x权限 所属组去掉wx权限 其他用户去掉所有权限
chmod u-x,g-wx,o-rwx 文件名
所属组去掉r权限 给与w权限 其他用户给rx权限
chmod g-r,g+w,o+rx 文件名
可以chmod 766 文件名,直接用8进制数字改权限,更方便!
chown 用户名 文件/目录 ——修改文件或目录的所属主 owner
chgrp 组名 文件/目录 ——修改文件或目录的所属组
查找命令:
精确查找 完全和关键字等同于的查询
模糊查找 在关键字基础上符合格式的查询
locate 文件名 ——快速文件名查找文件(模糊查询)也可以查找目录,也可以加路径查找
(基于文件库全盘查找,文件库非实时更新)
updatedb ——locate之前先要更新文件库
find 查找指令
find 路径 -name 关键字 —— 通过文件名查找文件 区分大小写
find 路径 -iname 关键字 —— 通过文件名查找文件 不区分大小写
find 路径 -size +5M-------查找路径下大于5M的文件,+号不能少
查询本地 路径可以不填或用./表示
通配符:以什么开头 以什么结尾 包含什么关键字
* 代表任意个字符 init*=》init,init1,init333
? 代表单个字符 ?init=》xinit ??init=》xyinit
find /etc -name init 在etc目录下查找名字为init的文件
find /etc -name init* 在etc目录下查找名字init开头的文件
find /etc -name *init* 在etc目录下查找名字包含init的文件
当前目录下查找文件内容中包含hello字段的所有文件名,并输出行号:grep -rn hello -r表示递归查找 -n是显示行号
-amin 在几分钟内被访问过 cat/tac/more... find -amin +5 查找本地5分钟前被访问过 a代表access
-mmin 在几分钟内被编辑过内容 find / -mmin -3 vi/ m代表modify
-cmin 在几分钟内被修改过属性 vi/chmod/chgrp/chown c代表change
find -cmin -5 查找本地5分钟内被修改过属性
文本过滤:
| 管道符 在前段指令的基础上继续执行后半段,可结合前面的head、tail一起使用
grep
grep ,在文本中查询有关键字的内容
语法:grep 搜索字符串 文件名
如一个文件 Hello.java 中含有Lemon 关键字,可以使用grep 命令进行查找:
Grep -n Lemon Hello.java
其中的-n 表示在第n行,直接输入-n就行,运行后会自动显示多少行
例:cat abc.log | grep error 显示abc.log中有error字样的行
more abc.log | grep error 显示abc.log中有error字样的行
less abc.log | grep error 显示abc.log中有error字样的行
进程相关:
ifconfig 查看网卡信息(IP 子网掩码...)
ifconfig eth0 IP地址 ——给指定网卡配置IP
ping IP地址/域名(网址) ——查看本地和指定IP地址互通性
hostname 显示主机名
who 显示用户信息
whoami 显示当前登陆的用户名
tab键 补全操作
键盘上键 调出之前的指令
clear 清屏
ps -ef 查看所有进程 (进程ID 进程名)
kill -9 进程ID 结束指定进程
w 查看登陆详细信息 (用户名 主机IP 连接时间 空闲时间 最近执行指令)
netstat 查看连接端口信息
free:内存使用率
top:CPU使用率
查看磁盘:du 或df
reboot 重启
poweroff 关机
用户管理:
useradd 用户名 ——创建普通用户
userdel 用户名 ——删除用户 (注意:使用中的账号不可以删,退出重新连接)
groupadd 组名 ——创建用户组
groupdel 组名 ——删除指定用户组
cat /etc/passwd ——查看/etc/passwd文件 passwd是专门用来保存用户相关信息的文件
passwd 用户名 ——创建/重置密码
fanmao3:x:506:507::/home/fanmao3:/bin/bash
用户名:密码:用户ID:组ID::家目录路径:shell脚本编译器bash
su 切换用户名
su zhangsan 切换到zhangsan用户登陆
su 切换到root 等同于su root
注意:root切换到普通用户不需要输入密码,普通用户切换到超级用户或其他普通用户需要密码。
cat /etc/group ——查看用户组信息
gpasswd -M 用户1,用户2 用户组 ——向用户组设置用户1,用户2
gpasswd -d 用户 用户组 ——从用户组移出用户(每次移出一个)
执行脚本 sh EndDayBatch.sh
1.cd 到脚本的路径
2.ls 查看脚本是否在 查看权限
3.su root / chmod 给权限。查看当前用户,输入w,如果有很多用户,看最近的时间谁在使用就可以了,USER:登录的用户名
TTY:登录终端
FROM:哪个IP地址登录的
LOGIN@:登录时间
IDLE:用户闲置时间
JCPU:指的是和该终端连接的所有进程占有的时间,这个时间里并不包括过去的后台作用时间,但却包括当前正在运行的后台作用所占用的时间
PCPU:是指当前进程所占用的时间
WHAT:当前正在运行的命令
shell脚本======================
【编写第一个脚本】
cd / 到根目录
touch abc.sh 创建一个脚本文件 abc.sh
vi abc.sh 编写
=============
#!/bin/bash --#代表单行注释 注释该脚本用什么解释器
echo "hello test1120!" echo(输出) 显示hello test1120!可自定义
=============
:wq 保存退出
bash abc.sh 通过解释器执行脚本文件 sh abc.sh也可以
chmod +x ./abc.sh 也可以通过将文件变成可执行来执行
./abc.sh 执行abc.sh 通过这种方式运行,第一行要写对,方便系统查找适合的解释器
【read】 接受用户输入值,如read name:运行的时候就要输入name是什么,如name=zhangsan,赋予name这个变量的值是zhangsan,那运行的时候直接显示出张三,$name,调用这个变量值,如echo $name,就是输出name这个值
========================
#!/bin/bash
echo "what's your name?"
read name 定义一个变量name放输入值
echo "my name is ${name}aaa" {}定义变量的位置结尾
【分支语句】
if [表达式]
then
语句1
else
语句2
fi
-eq 两边相等 p19
-ne 两边不相等
-gt 左边大于右边
-lt 左边小于右边
-ge 左边大等于右边
-le 左边小等于右边
==================
#!/bin/bash
echo "num1:"
read num1
echo "num2:"
read num2
if [ $num1 -gt $num2 ]
then
echo "${num1}>${num2}"
elif [ $num1 -lt $num2 ]
then
echo "${num1}<${num2}"
else
echo "${num1}=${num2}"
fi
=========================
【while循环】 循环5次
==================
#!/bin/bash
i=1
while [ $i -le 5 ] //i<=5
do
echo $i
i=`expr $i + 1` //对变量的定义 不需要$i= i=i+1
done
==========================
原文地址:https://www.cnblogs.com/huxiaoguang1991/p/15045233.html
- Java枚举类型的原理
- 厚土Go学习笔记 | 27. 斐波纳契闭包
- 代码审计| APPCMS SQL-XSS-CSRF-SHELL
- 厚土Go学习笔记 | 33. 利用数据流实现密码代换功能
- 厚土Go学习笔记 | 32. Readers读取数据流
- GoStub框架二次开发实践
- 厚土Go学习笔记 | 31. 错误 通常函数会返回一个error值来判断是否出错
- 厚土Go学习笔记 | 30. Stringers的一个练习
- 黑客游戏| Owasp juice shop (一)
- 厚土Go学习笔记 | 29. 接口
- Golang中Interface类型详解
- 反序列化| 我欲修仙,法力无边。
- Go语言的网络编程简介
- golang基于redis lua封装的优先级去重队列
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PyTorch 60分钟入门系列之训练分类器
- Jmeter 常用函数(20)- 详解 __counter
- Jmeter 常用函数(21)- 详解 __char
- Jmeter 常用函数(22)- 详解 __intSum
- Jmeter 常用函数(23)- 详解 __longSum
- Jmeter 常用函数(24)- 详解 __digest
- you-dont-know-websocket
- Cent os 7之KVM虚拟化基础管理
- 常用 Maven 命令介绍
- Linux下diff命令用法详解
- 详解Numpy中的数组拼接、合并操作
- 批量更改图像尺寸到统一大小
- 张东升,我知道是你!如何使用GAN做一个秃头生产器
- Roslyn 在 NuGet 包中放注释 xml 文件的方法
- OpenCV3 图像的加载、修改、显示与保存