Linux 常用命令一览
本篇博文讲述系统内核、Bash解释器的关系与作用,如何正确的执行Linux命令以及常见排错方法。
经验丰富的运维人员可以恰当的组合命令与参数,使Linux字符命令更加的灵活且相对减少消耗系统资源。
强大好用的SHELL
计算机硬件是由运算器、控制器、存储器、输入/输出设备等设备组成的,而能够让机箱内各种设备各司其职东西就叫做——系统内核。内核负责驱动硬件、管理活动和分配/管理硬件资源,如此说来系统内核对计算机来讲可真的是太重要了,所以它不能直接让用户操作。
因为用户不能直接控制硬件也不能直接操作内核,于是便需要基于“系统调用接口”开发出的程序/服务来满足用户日常工作了。
这里写图片描述
首先承认在红帽RHEL7中有些诸如逻辑卷管理器(LVM)的图形化工具非常好用,也减少了运维人员操作出错的几率,值得称赞,但一直以来Linux运维人员更多的倾向于用命令写脚本程序,因为图形化的工具不灵活而且相比来说更加消耗系统资源。
其实很多图形工具也是调用脚本来工作的,但功能却被“阉割”了,更缺乏了灵活性,所以有些运维人员甚至都不会给Linux系统安装图形界面,需要工作了直接远程连接过去,不得不说这样做真的挺高效的。
这里写图片描述
“Shell“——也可称为“壳”,充当的是人与内核(硬件)的翻译官,用户将一些命令“告诉”Shell,它就会调用相应的程序服务执行工作啦~~现在包括红帽系统在内的许多热门Linux系统主流默认字符Shell是Bash(Bourne-Again SHell)。
bash作为大多数linux系统的默认字符解释器,必须得学好!Bash的优势:
1.默认保存历史命令(可用上下键翻看)
2.命令仅需输入前几位就可以用tab键补全(RHEL7更牛的是参数补全)
3.强大的批处理脚本
4.实用的环境变量
执行命令与查看帮助 man
既然有了如此好用的“翻译官”,那么接下来就有必要好好学习下如何更高效的和它沟通了~
要想准确的、高效的完成工作,不能够光靠命令本身,还应该根据实际情况来组合各种命令选择和命令参数:
命令名称 [命令参数] [命令对象]
1
1
注意:命令名称、命令参数、命令对象之间请用空格键分隔。
比较好理解的是命令对象,命令对象一般是指要处理的目标(普通文件/目录文件/用户等等),而命令参数对于新手来讲比较麻烦,因为这个值会随命令的不同和环境情况的不同而异,所以在参数选择搭配上需要长时间的经验积累才可以。
命令的参数可以选用长格式(完整的选项名称)也可选用短格式(单个字母的缩写),分别用”—“与”–“做前缀。
长格式如:man —help
短格式如:man -h
1
2
1
2
当遇到了一个陌生命令后如何知道它有那些可用的参数?这时就可以用man命令了。
man命令的可用帮助文档分类有:
这里写图片描述
一般来讲帮助文件都很长很多,如果你想翻看的话,就要理解帮助文档的目录结构与操作方法:
这里写图片描述
常用系统工作命令
echo
echo命令用于在终端显示字符串或变量,
格式为:echo [字符串 | 变量]
将echo命令的字符串输出到终端:
[root@xgj~]# echo xgj
xgj
1
2
1
2
用echo命令查看SHELL变量的值(前面有$符号):
[root@xgj~]# echo $SHELL
/bin/bash
1
2
1
2
查看本机主机名:
[root@xgj~]# echo $HOSTNAME
xgj
date
date命令用于显示/设置系统的时间或日期,
格式为:date [选项] [+指定的格式]
强大的date命令能够按照指定格式显示系统的时间或日期,只需键入”+”号开头的字符串指定其格式.
详细格式如下:
这里写图片描述
查看当前的系统时间:
[root@xgj ~]# date
Mon Aug 24 16:11:23 CST 2016
按照”年-月-日 小时:分钟:秒”的格式:
[root@xgj ~]# date "+%Y-%m-%d %H:%M:%S"
2017-05-04 16:29:12
设置系统时间为2017年5月1日8点半:
[root@xgj ~]# date -s "20170501 8:30:00"
Mon May 1 08:30:00 CST 2015
1
2
查看本地系统时区:
[root@xgj ~]# date "+%Z"
CST
查看星期几:
[root@xgj ~]# date "+%A"
Tuesday
1
2
1
2
输入当前是上午还是下午:
[root@xgj Desktop]# date "+%p"
AM
2
判断今天是一年中的第几天:
[root@xgj ~]# date "+%j"
244
1
2
1
2
reboot
reboot命令用于重启系统(仅root用户可以使用),格式为:”reboot”。
重启计算机:
[root@xgj ~]# reboot
wget
wget命令用于使用命令行下载网络文件,
格式为:wget [参数] 下载地址
这里写图片描述
系统状态检测命令
合格的运维人员必需具备快速查看系统状态的能力.
ifconfig
ifconfig用于获取网卡配置与网络状态等信息:格式为ifconfig [网络设备] [参数]
查看本机当前的网卡配置与网络状态等信息:
[root@xgj ~]# ifconfig
......
......
1
2
3
1
2
3
uname
uname命令用于查看系统内核版本等信息,格式为:“uname [-a]”。
查看系统的内核名称、内核发行版、内核版本、节点名、硬件名称、硬件平台、处理器类型、操作系统等信息:
[root@xgj ~]# uname -a
1
1
顺便说下,如果您想查看系统详细版本信息就看www.22yigouyule.cn/ redhat-release文件:
[root@xgj ~]# cat /etc/redhat-release
1
1
uptime 查看系统的负载情况
uptime命令用于查看系统的负载情况,格式为:“uptime”。
我也经常用”watch -n 1 uptime“来每秒刷新一次获得当前的系统负载情况,输出内容分别为系统当前时间、系统已运行时间、当前在线用户以及平均负载值。
而平均负载分为最近1分钟、5分钟、15分钟的系统负载情况,负载值越低越好(小于1是正常)。
获取当前系统状态信息:
[root@xgj ~]# uptime
22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18
1
2
1
2
free
free命令用于显示当前系统中内存的使用量情况,格式为:free [www.xyseo.net -m/-g]
以m为单位显示当前系统中内存的使用量情况:
[root@xgj ~]# free -m
1
1
这里写图片描述
who
[root@xgj ~]# who
1
1
这里写图片描述
last
last命令用于查看所有系统的登入记录,格式为:”last [参数]”。
[root@xgj ~]# last
root pts/0 :0 Mon Aug 24 17:52 still logged in
root :0 :0 Mon Aug 24 17:52 still logged in
(unknown :0 :0 Mon Aug 24 17:50 - 17:52 (http://xucaizxyl.com/:02)
reboot system boot 3.10.0-123.el7.x Tue Aug 25 01:49 - 18:17 (-7:-32)
root pts/0 :0 Mon Aug 24 15:40 - 08:54 (7+17:14)
root pts/0 :0 Fri Jul 10 10:49 - 15:37 (45+04:47)
history
history命令用于显示历史执行过的命令,格式为:“history [-c]”。
历史命令会被保存到用户家目录中的”.bash_history“文件中。Linux系统中以点(.)开头的文件均代表隐藏文件,一般会是系统文件。
清空该用户在本机中执行过命令的历史记录:
[root@xgj ~]# history -c
1
1
history默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值。
sosreport
sosreport命令用于收集系统系统配置并诊断信息后输出结论文档,格式为:“sosreport”。
当我们的红帽系统出现故障需要联系红帽厂商或其他技术支持时,大多数情况都需要提供使用到这个命令。
收集系统本地配置信息并诊断:
[root@xgj ~http://027yeshenghuowang.com/]# sosreport
1
1
工作目录切换命令
pwd
pwd命令用于显示当前的工作目录,格式为:“pwd [选项]”。
这里写图片描述
cd
cd命令用于切换工作路径,格式为:“cd [目录名称]”
这里写图片描述
切换进/etc目录中:
[root@xgj ~]# cd /etc
1
1
切换进/bin目录中:
[root@xgj etc]# cd /bin
1
1
返回上级目录(即/etc目录):
[root@xgj bin]# cd -
/etc
1
2
1
2
返回用户自己的家目录:
[root@xgj etc]# cd ~
[root@xgj ~]#
1
2
1
2
ls
ls命令用于查看目录中有那些文件,格式为:ls [选项] [文件]
查看当前目录下有那些文件(长格式):
这里写图片描述
查看/etc目录中有那些文件:
[root@xgj ~]# ls /etc
………省略部分文件………
1
2
1
2
查看/etc目录的权限与属性:
[root@xgj ~]# ls -ld /etc
drwxr-xr-x. 132 root root 8192 Jul 10 10:48 /etc
1
2
1
2
追加-h参数,以K/M/G为单位显示容量:
[root@xgj ~]# ls -ldh /etc
drwxr-xr-x. 132 root root 8.0K Jul 10 10:48 /etc
1
2
3
1
2
3
文本文件编辑命令
cat
cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”。
查看文本文件:
[root@xgj ~]# cat 文件名
1
1
这里写图片描述
more
more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”。
查看文本文件:
[root@xgj ~]# more 文件名
1
1
这里写图片描述
head
head命令用于查看纯文本文档的前N行,格式为:“head [选项] [文件]”。
查看文本文件前20行:
[root@xgj ~]# head -n 20 文件名
1
1
这里写图片描述
tail
tail命令用于查看纯文本文档的后N行,格式为:“tail [选项] [文件]”
查看文本文件后20行:
[root@xgj ~]# tail -n 20 文件名
1
1
这里写图片描述
od
od命令用于对查看特殊格式的文件,格式为:“od [选项] [文件]”
这里写图片描述
tr
tr命令用于转换文本文件中的字符,格式为:“tr [原始字符] [目标字符]”。
将tr.txt文件的内容转换成大写
| —管道命令符
[root@xgj ~]# cat tr.txt | tr [a-z] [A-Z]
RED HAT CERTIFIED
FREE LINUX LESSONS
PROFESSIONAL GUIDANCE
LINUX COURSE
1
2
3
4
5
1
2
3
4
5
wc
wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。
这里写图片描述
统计当前系统中的用户个数:
[root@xgj ~]# wc -l /etc/passwd
38 /etc/passwd
1
2
1
2
cut
cut命令用于通过列来提取文本字符,格式为:“cut [参数] 文本”。
这里写图片描述
获取当前系统中所有用户的名称:
参数作用:-d以”:”来做分隔符,-f参数代表只看第一列的内容。
[root@xgj ~]# cut -d: -f1 /etc/passwd
1
1
获取root用户的默认SHELL解释器:
[root@xgj ~]# grep ^root /etc/passwd | cut -d: -f 7
/bin/bash
1
2
1
2
diff
diff命令用于比较多个文本文件的差异,格式为:”diff [参数] 文件”。
这里写图片描述
比较两个文件的差异:
[root@xgj ~]# diff diff_A.txt diff_B.txt
1c1,2
> Welcome to xgj.com
---
> Welcome tooo xgj.com
>
3c4,5
> Free Linux Lessons
---
> Free Linux LeSSonS
> ////////.....////////
1
仅显示比较后的结果,即相同或不相同:
[root@xgj ~]# diff --brief diff_A.txt diff_B.txt
Files diff_A.txt and diff_B.txt differ
1
2
1
2
使用上下文输出的格式:
[root@xgj ~]# diff -c diff_A.txt diff_B.txt
*** diff_A.txt 2015-08-30 18:07:45.230864626 +0800
--- diff_B.txt 2015-08-30 18:08:52.203860389 +0800
***************
*** 1,5 ****
! Welcome to xgj.com
Red Hat certified
! Free Linux Lessons
Professional guidance
Linux Course
--- 1,7 ----
! Welcome tooo xgj.com
!
Red Hat certified
! Free Linux LeSSonS
! ////////.....////////
Professional guidance
Linux Course
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
文件目录管理命令
touch
touch命令用于创建空白文件与修改文件时间,格式为:“touch [选项] [文件]”。
我们可以用“touch test”轻松的创建出一个名字为test的空白文档,所以这个功能无须介绍。
对于在Linux中的文件有三种时间:
- 更改时间(mtime):内容修改时间(不包括权限的)
- 更改权限(ctime):更改权限与属性的时间
- 读取时间(atime):读取文件内容的时间
如果黑客执行了touch -d “2 days ago” test,便将访问与修改时间修改为了2天前(伪造了自己没有动过该文件的假象)。
这里写图片描述
mkdir
mkdir用于创建空白的文件夹,格式为:“mkdir [选项] 目录”。
创建文件夹:
[root@xgj ~]# mkdir 文件夹名
1
1
这里写图片描述
创建一个名字叫xgj的目录:
[root@xgj ~]# mkdir xgj
1
1
使用ls命令查看该目录的权限属性等信息:
[root@xgj ~]# ls -ld xgj/
drwxr-xr-x. 2 root root 6 Aug 24 19:25 xgj/
1
2
1
2
还记得刚刚用cd命令进入xgj目录吗?这里是个小技巧,变量!$或(键盘按键)代表上一条命令的参数。
[root@xgj ~]# cd !$
cd xgj
1
2
1
2
pwd命令用于显示当前的工作路径。
[root@xgj xgj]# pwd
/root/Desktop/xgj
1
2
1
2
一次创建5个目录a/b/c/d/e:
[root@xgj xgj]# mkdir -p a/b/c/d/e
1
1
查看目录的属性,验证是否成功:
[root@xgj xgj]# ls -ld a/b/c/d/e/
drwxr-xr-x. 2 root root 6 Aug 29 10:16 a/b/c/d/e/
1
2
1
2
cp
cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。
复制命令的三种情况:
- 目标文件是一个目录,会将源文件复制到该目录中。
- 目标文件是一个文件,会将源文件覆盖该文件。
- 目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)
这里写图片描述
创建一个名为install.log的文件:
[root@xgj ~]# touch install.log
1
1
将install.log复制为x.log:
[root@xgj ~]# cp install.log x.log
1
1
查看到确实出现了文件x.log
[root@xgj ~]# ls
install.log x.log
1
2
1
2
mv
mv命令用于移动文件或改名,格式为:“mv [选项] 文件名 [目标路径|目标文件名]”。
将文件aaa重命名为bbb:
[root@xgj ~]# mv aaa bbb
1
1
rm
rm命令用于删除文件或目录,格式为:“rm [选项] 文件”。
删除普通文件并提示确认信息:“rm 文件名”
删除普通文件或目录文件,不提示:“rm -rf 文件或目录名”
这里写图片描述
查看当前目录下的文件:
[root@xgj ~]# ls
install.log x.log
1
2
1
2
删除install.log文件,输入”y”即确认:
[root@xgj ~]# rm install.log
rm: remove regular empty file ‘install.log’? y
1
2
1
2
删除x.log文件而无需确认:
[root@xgj ~]# rm -rf x.log
1
1
Linux系统中还有一个rmdir命令,它不同于rm -rf命令会删除一切,而是仅删除空目录,遇到目录内有文件时则报错。
dd
dd命令用于指定大小的拷贝的文件或指定转换文件,格式为:“dd [参数]”。
这里写图片描述
将光驱设备拷贝成镜像文件:
[root@xgj ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-xgj.Com.iso
7311360+0 records in
7311360+0 records out
生成一个560m的空白文件:
[root@xgj ~]# dd if=/dev/zero of=560_file count=1 bs=560M
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s
将硬盘的MBR信息拷贝出来:
[root@xgj ~]# dd if=/dev/sda of=sda_image count=1 bs=512K
1+0 records in
1+0 records out
524288 bytes (524 kB) copied, 0.0449481 s, 11.7 MB/s
Linux 常用命令一览的更多相关文章
- Linux常用命令(一)
Linux常用命令 1. pwd查看当前路径(Print Working Directory) [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...
- linux常用命令的介绍
本文主要介绍Linux常用命令工具,比如用户创建,删除,文件管理,常见的网络命令等 如何创建账号: 1. 创建用户 useradd -m username -m 表示会在/home 路径下添加创建用户 ...
- linux——常用命令与脚本
linux常用命令 --文件管理pwd --查看当前目录cd --切换当前目录ls --列出当前目录下的所有文件touch --创建文件mkdir --建立目录rmdir --删除空目录rm --删除 ...
- DOS 和 Linux 常用命令的对比
DOS 和 Linux 常用命令的对比 许多在 shell 提示下键入的 Linux命令都与你在 DOS 下键入的命令相似.事实上,某些命令完全相同. 本附录提供了 Windows的 DOS 提示下的 ...
- 第一章,Linux常用命令
20161124 Linux常用命令1.find find /etc/ -size +50k -lsfind /etc/ -size +50k -ls 2> /dev/null查看目录下大于50 ...
- linux 常用命令大全
linux 常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统 ...
- Linux 常用命令行
Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作
- [工作需求]linux常用命令以及vim常用命令
一. Linux 常用命令 mkdir dirname新建文件夹 cd ~ 进入自己的家目录 cd dirname 进入名字为dirname的目录: l 显示当前文件夹下的文件 ...
- 对于我的linux常用命令的说明
我所列出的linux常用命令中的选项并不是全部的选项,是一些我们经常用到的linux命令及选项
随机推荐
- cookie的默认有效目录
php的setcookie是设置cookie操作的函数. 基本参数百度就有一堆答案.其中第四个参数是cookie的有效目录.这个参数是可选的,如果没有设置这个参数.默认 的有效范围是当前目录及其子目录 ...
- Abp模块分析
1.什么是模块? 模块化是一种处理复杂系统分解为更好的可管理模块的方式.模块化用来分割,组织和打包软件.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功 ...
- web前端绘制0.5像素的几种方法
最近完成了公司安排的移动web触屏开发,期间涉及到在移动设备上显示线条,最开始采用PC常用的css board属性来显示1个像素的线条,但是发现在移动设备上并不美观,参考淘宝.京东的触屏发现它们均是采 ...
- Linux-安装ssh服务
问题描述: 有些版本的linux系统,如Ubuntn 16 ,安装完成后缺少ssh服务, 所以putty链接会出现访问失败的情况. 解决办法: 在linux中安装ssh服务,并启动 1.安装 sudo ...
- myod中遇到的问题
一.准备工作 首先在编程之前遇到的第一个问题就是要了解需要编出一个怎样的代码,了解od -tx -tc的具体意思,并观察其输出结果. -tc代表着输出ASCII字符,而-tx则是代表着输出ASCII字 ...
- BZOJ5362: [Lydsy1805月赛]quailty 算法
BZOJ5362: [Lydsy1805月赛]quailty 算法 https://lydsy.com/JudgeOnline/problem.php?id=5362 分析: 题意即求一个最小基环树森 ...
- C/C++面试题总结(2)
C++部分: 1.static(静态)变量有什么作用? 2.virtual关键字用法 3.const有哪些作用 或<王道程序员求职宝典>P95 4.new/delete与malloc/fr ...
- cmake opencv,dlib 编译静态库 1
无论windows,linux 所有的库 ,dlib,opencv 通过cmake-gui 设置好静态库, 动态库,和其他各个选项 Tips: cmake 优先级用cmake-gui,因为命令太多,容 ...
- Spring MVC配置详解(3)
一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.ja ...
- jquery插件开发常用总结一
由于使用jquery插件后当form表单提交的时候,若发生错误,同时有验证错误文本时,即使用rules和message后,会自动生成一个label标签里面装有错误文件值. 我们可以替换它: 方式为:v ...