Linux的命令笔者就老是记不住,一旦要用到的时候就各种找,所以这里列出学习过程中所遇到的,方便回看。列出的命令及其选项是笔者使用过的, 并不是完整的内容,详情可 Linxu命令大全
一. 常见快捷键
代码语言:javascript复制Tab:自动补全
^ S:停止
^ Q:恢复
^ C:中断
^ L:清屏
^ A:光标移到行头(输入命令中)
^ E:光标移到行尾(输入命令中)
^ Z:后台挂起任务
二. 命令的格式
命令名称 [命令参数] [命令对象]
三. 其他
1. 输出重定向
代码语言:javascript复制> 保存到文件
>> 追加到文件
2. 管道
代码语言:javascript复制命令1 | 命令2 |命令n:将前一条命令执行结果通过标准输出送给后一命令作为输入数据
3. 文件类型
代码语言:javascript复制- :普通文件
d :目录
l :连接文件
b :设备块
黑色背景命令行状态下
白色:普通文件
蓝色:目录
绿色:可执行文件
红色:压缩文件
黄色:设备文件
浅蓝色:链接文件
四. 工作目录切换
1. cd
代码语言:javascript复制cd 进入用户主目录
cd ~ 进入用户主目录
cd - 返回本次操作前的目录
cd .. 返回上级目录
cd / 进入根目录
2. ls
代码语言:javascript复制-C:多列显示文件及目录,默认
-a:显示所有文件及目录,包括隐藏文件
-l:详细显示文件及目录,简化命令 ll
3. pwd
代码语言:javascript复制显示当前目录的绝对目录
五. 文件目录管理
1. touch
代码语言:javascript复制不存在则创建文件,否则更新修改时间
2. mkdir
代码语言:javascript复制-p:递归创建目录
-m:创建目录赋予权限
名字用空格隔开表示创建多个同级目录
3. cp [选项] [源文件/目录] [目的目录]
代码语言:javascript复制# 最后一个一定是目的目录,前面的都是需要复制的
-r:递归处理
4. mv [选项] [源文件/目录] [目的目录]
代码语言:javascript复制-i:文件存在覆盖前询问
改名:mv file1 file2
移动:mv file1 /opt
5. rm
代码语言:javascript复制-r:递归处理
-f:强制删除文件或目录
-i:删除前询问
6. chmod
代码语言:javascript复制u:文件的拥有者
g:同组
o:其他以外的人
a:三者皆是
:增加权限
-:取消权限
=:唯一设定权限
-R:递归处理
# 更改权限
chmod x helloWorld.sh
六. 文本文件编辑命令
1. cat
代码语言:javascript复制-n:显示行号
cat file1 标准输出中显示
cat file1 file2 同时显示两个文件
cat file1 file2 > file3 将前二者合并到file3中
2. more
代码语言:javascript复制Space:翻屏
Enter:下一行
b:回退一行/一屏
=:当前行号
v:用vim打开当前内容
Q:退出more命令
H:显示帮助
3. head
代码语言:javascript复制显示文头
head 100 显示头部100行
4. tail
代码语言:javascript复制显示文末
tail 100 file1 从100行到文末
tail -50 file1 从文末开始算显示50行
5. wc
代码语言:javascript复制-l 统计行数
-w 统计字数
-c 统计字节数
wc -l file1 统计行数
6. stat
代码语言:javascript复制-t:简介输出
-f:显示文件系统状态
默认:显示文件状态
7. diff
代码语言:javascript复制显示结果中:a、b、c 分别表示添加、删除、修改
这些字母前后分别表示二者文件不同的行号
七. 打包压缩与搜索命令
1. find [搜索范围] [匹配条件]
代码语言:javascript复制find ./ -name file.txt
find ./ -size 100000K
2. grep [选项] [指定串] [文件]
代码语言:javascript复制-a 文本方式搜索
-n 输出行号
-v 反向搜索
3. tar
代码语言:javascript复制这里要说明一点:打包和压缩是不同的概念。打包是将多个文件变成一个文件,压缩则是将大文件压缩成小文件,通常只支持对一个文件压缩,所以我们得先将多个文件打包成一个总文件才能进行压缩
-c:建立新备份文件(类似于另存为)
-v:显示指令执行过程
-x:还原备份文件
-t:列出备份文件列表
-f:取名,一般自行取.tar结尾
-z:gzip压缩或ungzip,取名时应.tar.gz
tar -zcvf file.tar.gz file 打包后压缩
tar -zxvf file.tar.gz 解压缩解包
tar -ztvf file.tar.gz 显示内容列表
八. 系统工作命令
1. ps
代码语言:javascript复制-e:显示所有进程
-f:显示UID,PID,PPID
ps -f
UID PID PPID C STIME TTY TIME CMD
howl 22537 22527 0 14:49 pts/0 00:00:00 bash
howl 23720 22537 0 15:04 pts/0 00:00:00 ps -f
常配合grep使用
ps -ef | grep bash :找出带有bash行的进程
2. kill
代码语言:javascript复制杀死指定进程:指定PID
3. clear
代码语言:javascript复制清屏
4.jobs、bg、fg
代码语言:javascript复制jobs:显示当前暂停的进程
bg N:使第N个任务在后台运行
fg N:使第N个任务在前台运行
不带数字,默认最后一个任务
5. reboot、shutdown、who
代码语言:javascript复制reboot:重启
shutdown:关机
who:查看在线用户
# 关机操作
who:先查看哪些用户在线
shutdown 10 "十分钟后将关机":通知其他用户关机信息
6. wget
代码语言:javascript复制-b:后台运行
-P:下载到指定文件(大写)
# 后台运行指定目录file中
wget -bP file http://download.redis.io/releases/redis-5.0.5.tar.gz
7. rpm、yum
代码语言:javascript复制rpm:软件包管理,其包名以.rpm结尾,使用rpm可安装查询卸载软件,缺点与依赖关系复杂
yum:基于rpm包管理,自动下载依赖并安装rpm包
rpm:
-a:显示已经安装的软件包
-q:查询一个包是否已经安装
# 查询指定软件包是否安装
rpm -qa | grep screen
yum:
-y:所有提问回答yes
install:安装rpm软件包
update:更新rpm软件包
check-update:检查是否有可用的更新rpm软件包
remove:删除指定的rpm软件包
8. su、su - 、sudo
代码语言:javascript复制su:切换root,需要知道root密码
su - :切换root,连shell环境也切换了
sudo:运行已授权用户以超级用户或者其它用户的角色运行一个命令
9. netstat
代码语言:javascript复制n:不DNS轮询,显示IP
t:显示TCP端口
u:显示UDP端口
l:仅显示套接字
p:显示进程标识符和程序名称
# 查看80端口
netstat -ntp | grep 80
10. firewall-cmd
代码语言:javascript复制--query-port=<端口号>/<protocol>:查询指定端口
--add-port=<端口号>/<protocol>:开放端口
--remove-port=<端口号>/<protocol>:关闭端口
--zone=public:作用域
--permanent:永久生效
--reload:重启防火墙
# 查询是否开启
firewall-cmd --zone=public --query-port=80/tcp
# 开启防火墙端口
firewall-cmd --zone=public --add-port=80/tcp --permanent