Linux常用命令
一套非常实用的Linux命令(基于CentOS 7.6)
系统服务管理
systemctl
systemctl
命令是service
和chkconfig
命令的组合体,可用于管理系统。
- 输出系统中各个服务的状态:
systemctl list-units --type=service
- 查看服务的运行状态:
systemctl status firewalld
- 关闭服务:
systemctl stop firewalld
- 启动服务:
systemctl start firewalld
- 重新启动服务(不管当前服务是启动还是关闭):
systemctl restart firewalld
- 重新载入配置信息而不中断服务:
systemctl reload firewalld
- 禁止服务开机自启动:
systemctl disable firewalld
- 设置服务开机自启动:
systemctl enable firewalld
文件管理
ls
列出指定目录下的所有文件,列出/
目录下的文件:
ls -l /
pwd
获取目前所在工作目录的绝对路径:
cd
改变当前工作目录:
cd /usr/local
#date
显示或修改系统时间与日期;
date '+%Y-%m-%d %H:%M:%S'
#passwd
用于设置用户密码:
passwd root
su
改变用户身份(切换到超级用户):
su -
clear
用于清除屏幕信息
man
显示指定命令的帮助信息:
man ls
who
- 查询系统处于什么运行级别:
who -r
- 显示目前登录到系统的用户:
who -buT
free
显示系统内存状态(单位MB):
free -m
1
ps
- 显示系统进程运行动态:
ps -ef
- 查看
sshd
进程的运行动态:
ps -ef | grep sshd
#top
查看即时活跃的进程,类似Windows的任务管理器。
#mkdir
创建目录:
#more
用于分页查看文件,例如每页10行查看boot.log
文件:
more -c -10 /var/log/boot.log
1
#cat
用于查看文件,例如查看Linux启动日志文件文件,并标明行号:
cat -Ab /var/log/boot.log
1
#touch
用于创建文件,例如创建text.txt
文件:
touch text.txt
1
#rm
- 删除文件:
rm text.txt
1
- 强制删除某个目录及其子目录:
rm -rf testdir/
1
#cp
用于拷贝文件,例如将test1
目录复制到test2
目录
cp -r /mydata/tes1 /mydata/test2
1
#mv
用于移动或覆盖文件:
mv text.txt text2.txt
压缩与解压
tar
- 将
/etc
文件夹中的文件归档到文件etc.tar
(并不会进行压缩):
tar -cvf /mydata/etc.tar /etc
- 用
gzip
压缩文件夹/etc
中的文件到文件etc.tar.gz
:
tar -zcvf /mydata/etc.tar.gz /etc
- 用
bzip2
压缩文件夹/etc
到文件/etc.tar.bz2
:
tar -jcvf /mydata/etc.tar.bz2 /etc
- 分页查看压缩包中内容(gzip):
tar -ztvf /mydata/etc.tar.gz |more -c -10
- 解压文件到当前目录(gzip):
tar -zxvf /mydata/etc.tar.gz
- 解压文件到指定目录(gzip):
tar -zxvf /mydata/etc.tar.gz -C /mydata/etc
磁盘和网络管理
df
查看磁盘空间占用情况:
df -hT
dh
查看当前目录下的文件及文件夹所占大小:
du -h --max-depth=1 ./*
ifconfig
显示当前网络接口状态:
netstat
- 查看当前路由信息:
netstat -rn
- 查看所有有效TCP连接:
netstat -an
- 查看系统中启动的监听服务:
netstat -tulnp1
- 查看处于连接状态的系统资源信息:
netstat -atunp
wget
从网络上下载文件
文件上传下载
- 安装上传下载工具
lrzsz
;
yum install -y lrzsz
- 上传文件,输入以下命令
XShell
会弹出文件上传框;
rz
- 下载文件,输入以下命令
XShell
会弹出文件保存框;
sz fileName
软件的安装与管理
rpm
RPM是
Red-Hat Package Manager
的缩写,一种Linux下通用的软件包管理方式,可用于安装和管理.rpm
结尾的软件包。
- 安装软件包:
rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm
- 模糊搜索软件包:
rpm -qa | grep nginx
- 精确查找软件包:
rpm -qa nginx
- 查询软件包的安装路径:
rpm -ql nginx-1.12.2-2.el7.x86_64
- 查看软件包的概要信息:
rpm -qi nginx-1.12.2-2.el7.x86_64
- 验证软件包内容和安装文件是否一致:
rpm -V nginx-1.12.2-2.el7.x86_64
- 更新软件包:
rpm -Uvh nginx-1.12.2-2.el7.x86_64
- 删除软件包:
rpm -e nginx-1.12.2-2.el7.x86_64
1
yum
Yum是
Yellow dog Updater, Modified
的缩写,能够在线自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,非常方便!
- 安装软件包:
yum install nginx
- 检查可以更新的软件包:
yum check-update
- 更新指定的软件包:
yum update nginx
- 在资源库中查找软件包信息:
yum info nginx*
- 列出已经安装的所有软件包:
yum info installed
- 列出软件包名称:
yum list nginx*
- 模糊搜索软件包:
yum search nginx
用户管理
用户信息查看
- 查看用户信息:
cat /etc/passwd
- 用户信息格式如下(密码已过滤):
# 用户名:密码:用户标识号:组标识号:组注释性描述:主目录:默认shell
root:x:0:0:root:/root:/bin/bash
macro:x:1000:982:macro:/home/macro:/bin/bash
- 查看用户组信息:
cat /etc/group
- 用户组信息格式如下:
# 组名:密码:组标识号:组内用户列表
root:x:0:
docker:x:982:macro,andy
passwd
用于设置用户密码:
passwd root
su
改变用户身份(切换到超级用户):
# 切换到root用户
su -
# 切换到macro用户
su macro
groupadd
添加用户组,使用-g
可以设置用户组的标志号:
groupadd -g 1024 macrozheng
1
groupdel
删除用户组:
groupdel macrozheng
1
useradd
添加用户,-u
设置标志号,-g
设置主用户组:
useradd -u 1024 -g macrozheng macro
usermod
修改用户所属用户组:
usermod -g docker macro
userdel
删除用户,使用-r
可以删除用户主目录:
userdel macro -r
Linux vi/vim
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
什么是 vim?
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (https://www.vim.org/) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
vim 键盘图:
vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
vi/vim 使用实例
使用 vi/vim 进入一般模式
如果你想要使用 vi 来建立一个名为 runoob.txt 的文件时,你可以这样做:
$ vim runoob.txt
直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!
按下 i 进入输入模式(也称为编辑模式),开始编辑文字
在一般模式之中,只要按下 i, o, a 等字符就可以进入输入模式了!
在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。
这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
按下 ESC 按钮回到一般模式
好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!
在一般模式中按下 :wq 储存后离开 vi
OK,我们要存档了,存盘并离开的指令很简单,输入 :wq 即可保存离开!
OK! 这样我们就成功创建了一个 runoob.txt 的文件。