Fork me on GitHub

Centos7 常用命令

最近搭建 node 服务开始接触到云服务器,使用的是 CentOS 7 ,于是整理一下常用的命令。

这里约定的以 # 开头为一个命令,服务器操作时,去掉 # 。

常用命令:

文件和目录:

命令 描述
# cd /home 进入 ‘/home’ 目录
# cd .. 返回上两级目录
# cd ../.. 返回上两级目录
# cd - 返回上次所在目录
# cp file1 file2 将file1复制为file2
# cp -a /tmp/dir1 . 复制一个目录到当前工作目录(.代表当前目录)
# ls 查看目录中的文件
# ls -a 显示隐藏文件
# ls -l 显示详细信息
# ls -lrt 按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序)
# pwd 显示工作路径
# mkdir dir1 创建 ‘dir1’ 目录
# mkdir dir1 dir2 同时创建两个目录
# mkdir -p /tmp/dir1/dir2 创建一个目录树
# rm -f file1 删除 ‘file1’
# rm -rf dir1 删除 ‘dir1’ 目录及其子目录内容
# touch test.txt 在当前目录创建 test.txt 文件
# touch test1.txt test2.txt 创建多个文件
# stat test.txt 查看访问修改文件的时间
# touch -a test.txt 修改访问时间
# touch -d ‘18-May-2017’ test.txt 更改为自定义格式、自定义时间戳(更改访问时间、修改时间)
# touch -m test.txt 更改修改时间
# touch -r test1.txt test2.txt 修改 test1.txt 为 test2.txt 文件的时间戳。
# touch -t 201703031558.28 test.txt 更改为自定义时间戳
# mv test1 test2 将目录 test1 改为 test2
# mv /test1 /home/test2 将 /test1 目录移动到 /home/ 下,并重命名为 test2
# mv test1.txt test2.txt 将文件 test1.txt 改为 test2.txt

查看文件内容:

命令 描述
# cat file1 从第一个字节开始正向查看文件的内容
# head -2 file1 查看一个文件的前两行
# more file1 查看一个长文件的内容
# tac file1 从最后一行开始反向查看一个文件的内容
# tail -3 file1 查看一个文件的最后三行

文本处理:

命令 描述
# grep str /home/test.js 在文件 ‘/home/test.js’ 中查找 “str”(区分大小写)
# grep ^str /home/test.js 在文件 ‘/home/test.js’ 中查找以 “str” 开始的行
# grep [0-9] /home/test.js 查找 ‘/home/test.js’ 文件中所有包含数字的行
# grep str -r /home/* 在目录 ‘/home’ 及其子目录中查找 “str”
# diff file1 file2 找出两个文件的不同处
# sdiff file1 file2 以对比的方式显示两个文件的不同

查找:

命令 描述
# find / -name file1 从 ‘/‘ 开始进入根文件系统查找文件和目录
# find / -user user1 查找属于用户 ‘user1’ 的文件和目录
# find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的文件
# find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
# find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
# locate *.ps 寻找以 ‘.ps’ 结尾的文件,先运行 ‘updatedb’ 命令
# find -name ‘*.[ch]’ | xargs grep -E ‘expr’ 在当前目录及其子目录所有.c和.h文件中查找 ‘expr’
# find -type f -print0 | xargs -r0 grep -F ‘expr’ 在当前目录及其子目录的常规文件中查找 ‘expr’
# find -maxdepth 1 -type f | xargs grep -F ‘expr’ 在当前目录中查找 ‘expr’

注意whereis:

  • whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man 说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
  • 命令格式:whereis [-bmsu] [BMS 目录名 -f ] 文件名
    -和 find 相比,whereis 查找的速度非常快,这是因为 linux 系统会将 系统内的所有文件都记录在一个数据库文件中,当使用 whereis 和 locate 时,会从数据库中查找数据,而不是像 find 命令那样,通过遍历硬盘来查找,效率自然会很高。
  • 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用 whereis 和 locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

压缩和解压:

命令 描述
# bzip2 file1 压缩 file1
# bunzip2 file1.bz2 解压 file1.bz2
# gzip file1 压缩 file1
# gzip -9 file1 最大程度压缩 file1
# gunzip file1.gz 解压 file1.gz
# tar -cvf archive.tar file1 把 file1 打包成 archive.tar(-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数)
# tar -cvf archive.tar file1 dir1 把 file1,dir1 打包成 archive.tar
# tar -tf archive.tar 显示一个包中的内容
# tar -xvf archive.tar 释放一个包
# tar -xvf archive.tar -C /tmp 把压缩包释放到 /tmp目录下
# zip file1.zip file1 创建一个zip格式的压缩包
# zip -r file1.zip file1 dir1 把文件和目录压缩成一个zip格式的压缩包
# unzip file1.zip 解压一个zip格式的压缩包到当前目录
# unzip test.zip -d /tmp/ 解压一个zip格式的压缩包到 /tmp 目录

yum工具:

命令 描述
# yum -y install [package] 下载并安装一个rpm包
# yum localinstall [package.rpm] 安装一个rpm包,使用你自己的软件仓库解决所有依赖关系
# yum -y update 更新当前系统中安装的所有rpm包
# yum update [package] 更新一个rpm包
# yum remove [package] 删除一个rpm包
# yum list 列出当前系统中安装的所有包
# yum search [package] 在rpm仓库中搜寻软件包
# yum clean [package] 清除缓存目录(/var/cache/yum)下的软件包
# yum clean headers 删除所有头文件
# yum clean all 删除所有缓存的包和头文件

网络:

命令 描述
# ifconfig eth0 显示一个以太网卡的配置
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 配置网卡的IP地址
# ifdown eth0 禁用 ‘eth0’ 网络设备
# ifup eth0 启用 ‘eth0’ 网络设备
# iwconfig eth1 显示一个无线网卡的配置
# iwlist scan 显示无线网络
# ip addr show 显示网卡的IP地址

其他:

命令 描述
# su - 切换到root权限(与su有区别)
# shutdown -h now 关机
# shutdown -r now 重启
# top 罗列使用 CPU 资源最多的 linux 任务 (输入 q 退出)
# pstree 以树状图显示程序
# man ping 查看参考手册(例如 ping 命令)
# passwd 修改密码
# df -h 显示磁盘的使用情况
# cal -3 显示前一个月,当前月以及下一个月的月历
# cal 10 1988 显示指定月,年的月历
# date –date ‘1970-01-01 UTC 1427888888 seconds’ 把一相对于1970-01-01 00:00的秒数转换成时间
# ps -ef | grep nginx 查看 nginx 安装路径

操作:

按键 描述
Ctrl + u 删除光标之前到行首的字符
Ctrl + k 删除光标之前到行尾的字符
Ctrl + c 取消当前行输入的命令,相当于 Ctrl + Break
Ctrl + a 光标移动到行首(ahead of line),相当于通常的 Home 键
Ctrl + e 光标移动到行尾(end of line)
Ctrl + f 光标向前(forward)移动一个字符位置
Ctrl + b 光标往回(backward)移动一个字符位置
Ctrl + l 清屏,相当于执行clear命令
Ctrl + r 显示:号提示,根据用户输入查找相关历史命令(reverse-i-search)
Ctrl + w 删除从光标位置前到当前所处单词(word)的开头
Ctrl + t 交换光标位置前的两个字符
Ctrl + y 粘贴最后一次被删除的单词
Ctrl + Alt + d 显示桌面
Alt + b 光标往回(backward)移动到前一个单词
Alt + d 删除从光标位置到当前所处单词的末尾
Alt + F2 运行
Alt + F4 关闭当前窗口
Alt + F9 最小化当前窗口
Alt + F10 最大化当前窗口
Alt + Tab 切换窗口
[鼠标中间键] 粘贴突出显示的文本。使用鼠标左键来选择文本。把光标指向想粘贴文本的地方。点击鼠标中间键来粘贴。
[Tab] 命令行自动补全。

systemctl 命令:

命令 描述
# systemctl enable *.service 开机运行服务
# systemctl disable *.service 取消开机运行
# systemctl start *.service 启动服务
# systemctl stop *.service 停止服务
# systemctl restart *.service 重启服务
# systemctl reload *.service 重新加载服务配置文件
# systemctl status *.service 查询服务运行状态
# systemctl –failed 显示启动失败的服务

防火墙命令:

命令 描述
# firewall-cmd –version 查看版本
# firewall-cmd –help 查看帮助
# firewall-cmd –state 显示状态
# firewall-cmd –list-port 查看端口
# firewall-cmd –add-port=80/tcp –permanent 开放端口
# firewall-cmd –add-port=20000-20010/tcp –permanent 开放端口(参数 –permanent,表示永久生效)
# firewall-cmd –remove-port=80/tcp –permanent 禁用端口
# firewall-cmd –remove-port=20000-20010/tcp –permanent 禁用端口(参数 –permanent,表示永久生效)
# firewall-cmd –reload 重新加载防火墙规则
# firewall-cmd –add-service=ftp –permanent 打开FTP服务
# firewall-cmd –remove-service=ftp –permanent 关闭FTP服务(参数 –permanent,表示永久生效)

vi 编辑命令:

  • # vi /home/test.txt 用 vi 打开一个 test.txt 文件
  • 按 i 键后 进入insert模式(进入 insert 模式后才能进行修改)
  • # 修改完成后,按 esc 键进入 command 模式,然后 :wq 保存文件并退出 vi(注意先冒号)
  • 保存命令(按 ESC 键 跳到命令模式,然后:)
    • :w ———– 保存文件但不退出 vi
    • :w file ——— 将修改另外保存到 file 中,不退出vi
    • :w! ——– 强制保存,不推出vi
    • :wq ——– 保存文件并退出vi
    • :wq! ——- 强制保存文件,并退出vi
    • q: ——— 不保存文件,退出vi
    • :q! ———- 不保存文件,强制退出vi
    • :e! ———- 放弃所有修改,从上次保存文件开始再编辑

vi具体可参考: http://www.mamicode.com/info-detail-2037716.html

Centos 、Ubuntu、Debian 三个 Linux 介绍

Centos 、Ubuntu、Debian 三个Linux都是非常优秀的系统,开源的系统,也分付费的商业版和免费版,下面简单比较这三种系统。

  • Centos 系统

非常多的商业公司部署在生产环境上的服务器都是使用 CentOS 系统,Centos 是从 Redhat 源代码编译重新发布版,Centos 去除很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持。

  • Ubuntu 系统

Ubuntu 系统有着靓丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且 Ubuntu 对计算机硬件的支持优于 centos 和 Debian ,兼容性强,Ubuntu 应用非常多,但是对于服务器操作系统来说,并不需要太多的应用程序,需要的是稳定,操作方便,维护简单的系统。如果你需要在服务器端使用图形界面,Ubuntu是一个不错的选择,你需要注意的是,图形界面占用的内存非常大,而内存越大的 vps 价格也越高。

  • Debian 系统

Debian 系统也非常适合做服务器操作系统,与 Ubuntu 比较,它没有太多的花哨,稳定压倒一切,对于服务器操作系统来说是一条不变的真理,Debian 这个Linux 系统,底层非常稳定,内核和内存的占用都非常小,在小内存的 vps 就可以顺畅运行 Debian ,比如 128M 的内存,但 Debian 的帮助文档和技术资料比较少,对于小内存,首选 Debian,对于非常熟悉 Linux 系统的 vps 高手,首选Debian。

centos 目录介绍

目录 描述
/bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。
/etc 存放系统管理和配置文件
/home 存放所有用户文件的根目录,是用户主目录的基点,比如用户 user 的主目录就是 /home/user,可以用 ~user 表示
/usr 用于存放系统应用程序,比较重要的目录
- /usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
- /usr/x11r6 存放 x window 的目录
- /usr/bin 众多的应用程序
- /usr/sbin 超级用户的一些管理程序
- /usr/doc linux 文档
- /usr/include linux下开发和编译应用程序所需要的头文件
- /usr/lib 常用的动态链接库和软件包的配置文件
- /usr/man 帮助文档
- /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
- /usr/local/bin 本地增加的命令
- /usr/local/lib 本地增加的库
/opt 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/proc 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root 超级用户(系统管理员)的主目录(特权阶级^o^)
/sbin 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/dev 用于存放设备文件。
/mnt 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/boot 存放用于系统引导时使用的各种文件
/lib 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/tmp 用于存放各种临时文件,是公用的临时文件存储点。
/var 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

参考链接:

-------------本文结束感谢您的阅读-------------