不要嫌弃父母对你的唠叨,这是他们和你仅剩的交流方式
父亲节快乐
linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。我们要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。
介绍:
[root@WangCaiChen ~]#
什么是linux命令
指在linux终端(命令行)中输入的内容就成为命令
一个完整的命令标准格式:linux通用格式
# 命令 [选项] [参数] 复制代码
注意:“[ ]”包裹的表示该项目为可选项
ls (list, 列出)
用法一:# ls
含义:列出当前工作路径下的文档名称
示例代码:
用法二:#ls 路径
关于路径:路径分为绝对路径和相对领 绝对路径:不管当前工作路径在哪,目标路径都会从"/"磁盘根下开始 相对路径:除绝对路径之外的路径称之为相对路径,相对路径得有一个相对物做参照。 ../:上级目录 ./:当前目录 总结:看到路径以"/"开头表示绝对路径, 其他相对路径 复制代码
示例代码:
用法三:# ls 选项 【路径】
含义:列出指定路径下文件/文件夹名称时,以指定格式进行显示
常见语法:
# ls -l 【路径】
# ls -la 【路径】 【linux命令语法中,多个选项可以合并为-abcd这种形式】
选项说明:
-l : 表示以详细列表的形式进行展示
详情说明:
-a: all, 表示显示所有文件/文件夹(包含了隐藏文件/文件夹)
说明: 在linux中隐藏文档的名称一般都是以"."开头, 上图中第一列的第一个字符,"d"表示目录,"-"表示文件 "."表示当前鲁宁,".." 表示上级路径(相对当前路径) 目录颜色一般是蓝色,文件一般是黑色(颜色指的是终端中默认的颜色) 复制代码
扩展命令:# ll,ll等价于“# ls -l”
用法四:# ls -lh 路径
含义:列出指定路径下的文档结构,以指定方式显示
选项说明:
-l : 表示以列表形式显示
-h: 表示以较高可读性(文档大小)的形式展示
注意:单位不一定是k,系统会获取其大小之后为文档找到一个合适的单位,因此单位可能是"K、M、G、T"或者是没有单位。 复制代码
文件属性
用法: # pwd (print working directory, 打印当前工作目录)
作用:打印当前所在的路径
命令:cd (change directory, 改变目录)
作用:切换当前德工作目录
语法:# cd [路径]
说明:路径可选,写路径表示切换到指定路径,不写表示切换到当前用户家目录
第一种用法:加路径
第二种用法:不加路径
含义:表示切换到当前用户的家目录
特殊用法:和不加路径效果相同
含义:表示切换到当前用户的家目录
说明: linux中有一个特殊的符号"~",表示当前用户的家目录,等价于直接cd 复制代码
命令:clear (清除)
作用:用于清除终端信息(清屏)
命令:whoami
作用:获取当前用户的用户名
命令:reboot
作用:重启操作系统
命令:shutdown
作用:关机
用法一:# shutdown -h 0 或 now 立即关机
扩展命令:halt
和用法一作用相同
用法二:#shutdown -h 10
含义:延迟关机,10分钟后关机
命令:mkdir(make directory, 创建目录)
作用:创建目录
语法:# mkdir 路径(需要包含文件夹名称)
用法一:创建目录
用法二:递归创建目录
语法:# mkdir -p 路径(需要包含目录名称)
作用:创建多层不存在的路径
用法三:同时创建多个目录
语法:# mkdir [-p] 路径1 路径2 ...
命令:rmdir
作用:删除空目录
语法:# rmdir 路径 (需要包含目录名称)
用法一:删除空目录
用法二:同时删除多个空目录
用法三:递归删除空目录
语法:# rmdir -p 路径
作用:首先删除子目录,删除成功后,删除上级目录,直至结束
命令:touch
语法:# touch 文件路径【文件路径2 文件路径3 ...】
用法一:创建readme.txt文件
方法二:同时创建多个文件
命令: rm
作用:删除文件或者文件夹
语法:rm [-rf] 文件或文件夹
选项:
-r:递归删除
-f:强制删除,不提示任何信息。操作前要慎重!
用法一:删除readme.txt 文件
用法二:递归删除目录
用法三:强制删除文件或目录命令:cp (copy, 复制操作)
作用:复制文件/文件夹到指定位置
语法:# cp [-r] 被复制的文档路径 文档被复制到的路径
选项:
-r:recursion,递归,表示将文件夹中所有的下属文件、文件夹都复制。复制文件夹-r必须加
示例代码1:复制/root/readme.txt 到 /tmp目录下
示例代码2:复制/root/nginx目录到/tmp目录下
命令:mv (move, 移动,剪切)
作用:剪切移动,重命名
语法:# mv 需要移动的文档路径 需要保存的位置路径
mv与cp的区别: mv与cp的命令不一样,mv不管是针对文件还是文件夹都不需要加-r选项 在移动的过程中文档名称是不变的,变得是路径 复制代码
示例代码:
在linux中重命名的命令也是mv,语法和移动语法一样。区别在于重命名一般是路径不变,名称改变。 也可以移动的时候重命名 复制代码
案例:移动并且重命名
对于一些大文件,不管是发送邮件附件,还是保存都会占用很大的空间。这个时候我们就需要对文件进行压缩
特点:压缩速度快,压缩率低,cpu开销比较低
语法一:gzip 需要压缩的文件
含义:压缩单个文件
语法二:gzip file1 file2 …
含义: 同时压缩多个文件
语法一:gunzip file1.gz
语法二:gzip -d file1.gz
压缩速度慢,压缩率高,cpu开销大
语法:bzip2 需要压缩的文件
语法:bzip2 -d 需要解压的文件
压缩率高,解压速度快,压缩时间较长,cpu消耗相对较大
语法:xz 需要压缩的文件
语法一:unxz 需要解压的文件
语法二:xz -d 需要解压的文件
gzip 、bzip2或xz命令带有多个⽂件作为参数时,执行的操作是将各个⽂件独立压缩,而不是将其放在一起进行压缩。这样就无法产⽣类似于Windows环境下的文件夹打包压缩的效果,为了实现打包压缩的效果,可以使⽤命令 tar 进行文件的打包操作(archive),再进行压缩。
tar命令可以将⽂件打包成文件档案(archive)存储在磁盘/磁带中,打包操作⼀般伴随压缩操作,也可以使用tar 命令对打包压缩后的⽂件解压。
语法:tar 选项 打包文件名 要打包的文件或目录
选项:
-c,create 创建打包文件,可搭配-v来查看打包过程中被打包的文档名
-x, 解包
-v,可视化的意思,即可以看查看创建的过程,可以省略此参数
-f,必填选项,使用档案名字,这个参数是最后一个参数,打包文件名
-r,向压缩归档文件末尾追加文件
示例代码1:创建mytar.tar压缩包
示例代码2:将readme.txt增加到mytar.tar包里。-r 表示增加文件的意思。
tar在打包的时候,是支持压缩的,之前讲过的gzip、bzip2、xz压缩工具都可以在tar打包文件中使用。
语法:tar 选项 打包文件名 压缩的文件或目录
选项:
-z,压缩为.gz格式
-j,压缩为.bz2格式
-J,压缩为.xz格式
示例代码1:把1.txt与2.txt压缩为mytar.tar.gz文件
示例代码2:把1.txt与2.txt压缩为mytar.tar.bz2
示例代码3:把1.txt与2.txt压缩为mytar.tar.xz
解压的时候,把压缩命令中的c换成x即可
示例代码1:解压mytar.tar.gz
示例代码2:解压mytar.tar.bz2
示例代码3:解压mytar.tar.xz
查看压缩文件内容,适用.tar.gz/.tar.bz2/.tar.xz三种压缩文件
语法:tar -tf 打包压缩文件名
选项:
-t,查看打包文件的内容还有那些文档名
示例代码:查看mytar.tar.gz还有那些文件
兼容windows和linux的压缩类型,可以压缩多个文件或目录
语法:zip [-r] 压缩后的文件 需要压缩的文件(多个文件)
注意:zip默认压缩后的格式就是.zip,也可以加后缀.zip,一般都加上 复制代码
用法一: 文件压缩
用法二:文件夹压缩
语法:unzip 要解压的文件名 [-d] 解压目录
用法一:解压到当前目录
用法二:解压到指定目录
场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果保存到文件中进行后续的分析/统计,这时候需要使用到输出重定向
>: 标准输出重定向,覆盖输出,会覆盖原始文件内容
>>:追加输出重定向,追加输出,会在原始文件内容末尾追加内容
语法:有输出的命令 输出重定向符号(>|>>) 输出到的文件路径
说明:文件路径中的文件可以是不存在文件(文件路径需要符号touch创建的要求) 复制代码
用法一:输出重定向
用法二:echo命令
作用:字符串输出
用法三:使用echo命令向文件中写入自定义内容
用法一: cat 文件名称
作用:正序查看文件内容
用法二:cat 待合并的文件路径1 待合并的文件路径2 … > 合并之后的文件路径
作用:文件内容合并
用法: tac 文件名称
作用:倒序查看文件内容
--help也可以换做-h
作用:查看命令用法
通常用在协助查询曾经用过的指令所具备的选项与参数
示例
作用,命令使用手册/系统文件说明
通常用在从来没有用过的命令
用法一:查看命令详细使用
用法二:查看配置文件详解
说明: 如何退出man 命令: 按【q】 复制代码
作用:查看磁盘空间
语法:df [-h]
选项:
-h, 以可读性较高的形式展示大小
作用:查看内存使用情况
语法:free [-选项]
选项:
-m, 表示以M为单位查看
-h, 以可读性较高的形式展示大小
作用:查看一个文件的前n行,如果不指定n, 默认显示前10行
语法:head [-n] 文件路径 【n是一个正整数】
示例代码:显示yum.conf的前3行
示例代码2:显示yum.conf的前10行,不指定-n
作用:查看一个文件的末n行,如果不指定默认显示后10行
语法:tail [-n] 文件路径 【n表示正整数】
示例代码1: 显示yum.conf文件最后5行
示例代码2:显示yum.conf文件最后10行
tail命令扩展:
作用:查看一个文件动态变化的内容(非用户手动增加,计算机写入)
语法:tail -f 文件路径
说明:tail -f 一般用于查看系统日志,退出tail -f卡屏状态,按下Ctrl + c键
作用:查看大文件,以较少的内容进行输出,按下辅助功能键查看更多,按q退出
功能键:空格向下翻页,"b"键向上翻页,上下键向上向下移动一行
语法:less 需要查看的文件路径
作用:查看文件,以较少的内容进行输出,按下辅助功能键查看更多文件内容。按q退出
功能键: Ctrl+f(或者空格)向下翻页,Ctrl+b向上翻页,回车向下一行查看
语法:more 需要查看的文件路径
解释:wc (word count)
作用:统计文件内容信息(包含行数、单词数、字节数)
语法:wc - [lwc] 需要统计的文件路径,不写选项,行数、单词数、字节数都显示
选项:
-l :表示lines, 行数(以回车/换行符为标准)
-w:表示words,单词数(以空格为标准)
-c: 表示bytes, 字节数
注意:wc命令选项可以混在一起搭配使用,但选项的顺序不影响结果
第一个是行数
第二个是单词数
第三个是字节数
作用:查看文件或目录(递归显示子目录)占用磁盘空间大小
语法:du [-sh] 文件或者目录
选项:
-s,summaries,显示汇总大小
-h,高可读性进行显示
示例代码1:
示例代码2:
作用:查找文档
语法:find 路径范围 选项1 选项1值 [选项2 选项2值]
选项:
-name, 按照文档名称进行搜索
-type,按照文档类型进行搜索
文档类型:“-”
表示文件(在使用find的时候使用f来替换),d
表示文件夹
示例代码1:
示例代码2:*表示通配符
示例代码3:表示查找/etc/yum/ 下的所有文件夹
概念:
在linux系统里有系统时间和硬件时间,系统在启动的时候会去读取硬件时间作为系统时间
作用:表示获取系统时间
语法1: date
输出形式:2019年 03月 06日 星期三 16:34:12 CST
语法2:date "+%F" 等价于 date “+%Y-%m-%d”
输出形式:2019-03-06
语法3:date "+%F %T" 等价于 date ”+%Y-%m-%d %H:%M:%S“
输出形式:2019-03-06 16:39:46
语法4:获取之前或者之后的某个时间(备份)
# date -d "-1 day" "+%Y-%m-%d %H:%M:%S"
符号的可选值:+(之后) 或者 - (之前) 单位的可选值:day(天)、month(⽉份)、year(年)
符号 | 格式符 | 说明 |
---|---|---|
1 | %F | 表示完整的年月日,形如2019-12-1 |
2 | %T | 表示完整的时分秒,形如08:10:11 |
3 | %Y | (year)表示四位年份 |
4 | %m | (month)表示两位月份 |
5 | %d | (day)表示日期 |
6 | %H | (hour)表示小时 |
7 | %M | (minute)表示分钟 |
8 | %S | (second)表示秒数 |
作用:表示设置系统时间
选项:
-s,设置系统时间
作用:管理计算机硬件RTC时间
选项:
-w, 将linux系统时间保存到硬件RTC中
-s, 将RTC中的时间保存到linux系统时间中
作用:同时设置系统时间和RTC硬件时间,还可以设置时区。
参数:
list-timezones : 列出系统上所有支持的时区名称
set-timezone :设定时区位置
set-time :设定时间(同时设置系统时间和RTC时间)
作用:手动网络校时
语法:ntpdate ntp服务器地址
ntp服务器地址: 1. 国家授时中心:ntp.ntsc.ac.cn 2. 阿里云:ntp.aliyun.com ntp1.aliyun.com 复制代码
作用:查看系统日历
语法一: cal
等价于 cal -1
输出当前月份日历
语法二:cal -3
输出上个月 + 本月 + 下个月的日历
语法三:cal -y 年份数字
表示输出某一个年份的日历(1-9999)
管道符:|
作用:管道一般用于”过滤“
语法:命令A | 命令B,命令A的正确输出作为命令B的操作对象
说明:管道符不能单独使用,必须配合其他命令来一起使用。
举例:想知道/etc/底下有哪些文档,那么可以利用ls /etc
来查阅,不过,因为/etc底下的文档太多,导致整个屏幕都塞满了,查看变得不方便,此时我们可以透过less指令协助查看.
[itcast@itcast ~]$ ls /etc | less 复制代码
grep: 取出含有搜寻字符串的内容行
[root@itcast itcast]# grep [-v] ‘搜寻字符串’ filename #选项: -v:反向选择,亦即显示出没有'搜寻字符串'内容行 #示例一:将ls中,出现readme的内容行取出 [root@itcast ~]# ls | grep 'readme' #示例二:与示例一相反,取出没有readme的内容行 [root@itcast ~]# ls | grep -v 'readme' 复制代码
问题一:使用学过的命令,统计某个目录下文档的总个数?
#示例:统计/下文档个数 [root@itcast ~]# ls / | wc -l 复制代码
问题二:统计系统中用户数量
#示例:linux系统中配置文件'/etc/passwd',一个用户会占用一个行配置,使用管道统计用户个数 [root@itcast ~]# cat /etc/passwd | wc -l 复制代码
作用:显示系统进程信息
[root@itcast ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.5 53804 5428 ? Ss 3月06 0:06 /usr/lib/syste root 2 0.0 0.0 0 0 ? S 3月06 0:00 [kthreadd] --省略-- # 列的含义: USER:该 process 属于哪个使用者账号 PID :该 process 的ID %CPU:该 process 使⽤掉的 CPU 资源百分⽐ %MEM:该 process 所占⽤的物理理内存百分⽐ VSZ :该 process 使⽤掉的虚拟内存量 (Kbytes) RSS :该 process 占⽤的固定的内存量 (Kbytes) TTY :该 process 是在那个终端机上⾯运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上⾯的登入者程序,若为 pts/0 等等的,则表示为由⽹络连接进主机的程序。 STAT:该程序目前的状态,主要的状态有 R :该程序⽬前正在运作,或者是可被运作 S :该程序⽬前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。 T :该程序⽬前正在侦测或者是停止了了 Z :该程序应该已经终止,但是其父程序却无法正常的终⽌他,造成 zombie (疆⼫尸) 程序的状态 START:该 process 被触发启动的时间 TIME :该 process 实际使用 CPU 运作的时间 COMMAND:该程序的实际指令 例子: [root@localhost ~]# ps aux | grep firefox 复制代码
作用:杀死进程,指定pid(进程id)
[root@itcast ~]# kill [选项] 进程id # 示例一 查看firefox进程,杀死该进程 [root@itcast ~]# ps aux | grep firefox root 60746 3.3 10.6 776008 107236 ? Sl 14:54 0:00 /usr/lib64/firefox/firefox root 60801 0.0 0.0 112656 996 pts/1 R+ 14:54 0:00 grep --color=auto firefox [root@itcast ~]# kill 60746 [root@itcast ~]# ps aux | grep firefox root 60846 0.0 0.0 112656 996 pts/1 R+ 14:55 0:00 grep --color=auto firefox # 示例二 [root@itcast ~]# kill -9 60746 #强制杀死进程 复制代码
作用:杀死进程,指出下达指令的名称
[root@itcast ~]# killall 指令名称 示例一: [root@itcast ~]# killall firefox 复制代码
作用:
[root@itcast ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.99.138 netmask 255.255.255.0 broadcast 172.16.99.255 inet6 fe80::20c:29ff:fe17:6e52 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:17:6e:52 txqueuelen 1000 (Ethernet) RX packets 850237 bytes 1207888409 (1.1 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 258583 bytes 17520886 (16.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 304 bytes 27622 (26.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 304 bytes 27622 (26.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 # 说明 eno16777736:网卡名 inet 172.16.99.138: IP地址 lo:回环网卡 复制代码
我们学习linux操作系统主要运行在服务器环境中,那么服务器一般都放在远程的机房中,这时候我们必须掌握远程连接linux服务器工具的使用
> ssh -p22 root@服务器ip地址 > 输入密码 复制代码
_____ _ _____ _ / ____| (_) / ____|| | | | __ _ _ | | | |__ ___ _ __ | | / _` || || | | '_ \ / _ \| '_ \ | |____| (_| || || |____ | | | || __/| | | | \_____|\__,_||_| \_____||_| |_| \___||_| |_| 复制代码
好了各位,以上就是这篇文章的全部内容了,能看到这里人啊,都是人才。
如果这个文章写得还不错,觉得「王采臣」我有点东西的话 求点赞👍求关注❤️求分享👥 对耿男我来说真的非常有用!!!
白嫖不好,创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
王采臣 | 文 【原创】 如果本篇博客有任何错误,请批评指教,不胜感激 !微信公众号: