最近搭建 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)就在这里 |
参考链接: