Linux的基本指令
基础指令(重点)
1.ls指令:
含义:ls(list)
用法1:#ls
含义:列出当前工作目录下的所有文件/文件夹的名称
用法2:#ls 路径
含义:列出指定路径下的所有文件/文件夹的名称
用法3:#ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
#ls-l 路径
#ls-la 路径
选项解释:
-l:表示list,表示以详细列表的形式进行展示
-a:显示所有的文件/文件夹(包含了隐藏文件/文件夹)
在Linux中隐藏文件一般都是以“.”开头
用法4:#ls -lh 路径
含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示。
2.pwd指令
用法:#pwd (print working directory,打印当前工作目录)
3.cd命令
命令:#cd (change directory ,改变目录)
作用:用于切换当前的工作目录的
语法:#cd 路径
补充:在Linux中有一个特殊的符号“~”,表示当前用户的家目录。
用法:#cd ~ ##切换到当前用户的家目录
4.mkdir指令
指令:mkdir (make directory,创建目录)
语法1:#mkdir 路径 【路径,可以是文件夹名称也可以是包含名称的一个完整路径】
语法2:#mkdir -p 路径
含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错
语法3:#mkdir 路径1 路径2 路径3….
含义:同时创建多个目录
5.touch指令
指令:touch
作用:创建文件
做法:#touch 文件路径 【路径可以是直接的文件名也可以是路径】
案例:使用touch来创建一个文件,命名Linux.txt
#touch linux.txt
案例:使用touch同时来创建多个文件
#touch linux01.txt linux02.txt
6.cp指令
指令:cp (copy,复制)
作用:复制文件/文件夹到指定的位置
语法:#cp 被复制的文档路径 文档复制到的路径
案例:使用cp命令来复制一个文件
#cp linux01 /root/linux01 [可以对新位置的文件改名字]
案例:使用cp命令来复制一个文件夹
注意:当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,否则目录将被忽略:
7.mv指令
指令:mv (move ,移动,剪切)
作用:移动文档到新的位置
语法:#mv 需要移动的文档路径 需要保存的位置路径
确定:移动之后原始的文件不在原位置。
案例:使用mv命令移动一个文件
#mv linux1.txt /linux1.txt
补充:在Linux中重命名的命令也是mv .语法和移动语法一样。
#mv yunwei /henniux
8.rm命令
指令:rm(remove ,移除,删除)
作用:移除/删除文档
语法:#rm 选项 需要移除的文档路径
选项:
-f :force,强制删除,不提示是否删除
-r :表示递归
案例:删除一个文件
#rm /新文件
注意:如果在删除的时候不想频繁的确认,则可以在指令中添加选项“-f”,表示force(强制)。 //tab 补全键
案例:删除一个文件夹
Super(win)+空格 (切换输入法)
注意:删除一个目录的时候需要做递归删除,并且一般也不需要进行删除确认询问,所以移除目录的时候一般需要使用-rf选项。
案例:删除多个文档
#rm -rf linux.txt linux01.txt
案例:要删除一个目录下有公共特性的文档,例如都以Linux开头
其中*称之为通配符,意思就是表示任意的字符,Linux*,则表示只要文件以Linux开头,后续字符则不管。
9.vim命令
指令:vim (vim是一款文本编辑器,)
语法:#vim 文件的路径
作用:打开一个文件(文件可以有,也可以没有)
Next(i:进入编辑模式; esc退出编辑模式; shift+: 然后输入wq(保存并退出))
退出打开的文件:在没有按下其它命令的时候,按下shift+英文冒号,输入q,按下回车即可
10.输出重定向
一般命令的输出都会显示在终端中,有些是时候需要将一些命令的执行结果想要保存到文件中进行后续分析/统计,则则这时候需要用到的输出重定向技术。
命令说明:
> |
会覆盖掉原先的文件内容 |
>> |
追加输出,不会覆盖原先文件内容,会在原始内容末尾继续添加 |
语法:#正常执行的指令 > (或>>) 文件路径
注意:文件可以不存在,不存在则新建
案例:使用覆盖重定向,保存ls-la 的结果,保存到当前目录下的ls.txt
#ls -la > ./ls.txt
// 46L :46行 2492C :2492字节
案例:使用追加重定向,保存ls -la 的执行结果到ls.txt中
#ls -la >> ls.txt
11.cat指令
作用1:cat有直接打开一个文件的功能
语法:#cat 文件的路径
作用2:cat还可以对文件进行合并
语法2:#cat待合并的文件路径1 待合并的文件路径2…… 文件路径n > 合并之后的文件路径
例如:合并2个文件,并存在到一个文件中【配合输出重定向使用】
#cat linux01.txt linux02.txt > linux03.txt
进阶指令(重点)
1.df指令
作用:查看磁盘空间
语法:#df -h (-h 已较高可读性进行展示)
2.free指令
作用:查看内存使用情况
语法:#free -m -m表示以mb为单位查看。
剩余的真实可以用的内存为:1665mb
Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
Shared:指共享内存
3.head指令
作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
语法:#head -n 文件路径 【n表示数字】
#man head //查看手册
例子:查看文件install.log前5行
#head -5 install.log
4.tail指令
作用1:查看一个文件的末n行,如果n不确定默认显示后10行
语法: #tail -n 文件的路径 // n同样表示数字
作用2:可以通过tail指令来查看一个文件的动态变化内容【变化的内容不能是用户手动增加的】
语法:#tail -f 文件路径
该命令一般用于查看系统的日志比较多
5.less指令
作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车,空格键+上下方向键)查看更多
语法:#less 需要查看的文件路径
退出的时候只需按下q键就ok。
6.wc指令
作用:统计文件内容信息(包含行数,单词数,字节数)
语法:#wc -lwc 需要统计的文件路径
-l :表示lines , 行数
-w:表示words ,单词数
-c:表示bytes ,字节数
7.date指令(重点**)
作用:表示操作时间日期(读取,设置)
语法1:#date 输出的形式:2018 年 3月 24日 星期六 15:54:28 CST (当地时间)
语法2:#date +%F (等价于#date "%+Y-%m-%d") 输出形式:2018-03-24
语法3:#date "+%F %T" 引号表示让“年月日与时分秒”成为一个不可分割的整体
等价操作:#date "+%Y-%m-%d %H:%M:%S"
输出的形式:2018-03-24 16:01:00
语法4:获取之前或者之后的某个时间(备份)
#date -d "-1 day" "+%Y-%m-%d %H:%M:%S"
符号的可选值:+(之后) 后者 - (之前)
单位的可选值:day(天),month(月份),year(年)
%F |
表示完整的年月日 |
%T |
表示完整的时分秒 |
%Y |
表示四位年份 |
%m |
表示两位月份(带前导0) |
%H |
表示小时(带前导0) |
%M |
表示分钟(带前导0) |
%S |
表示秒(带前导0) |
8.cal指令
作用:用来操作日历
语法1:#cal 等价于 #cal -1
/// 直接输出当前月份的日历
语法2:#cal -3
///表示输出上一个月+本月+下个月的日历
语法3:#cal -y 年份
///表示输出某一个年份的日历
9.clear /ctrl +L 指令
作用:清除终端中已经存在的命令和结果(信息)。
语法:#clear 或者 快捷键 : ctrl +L
需要注意的是:该命令并不是真的清除了之前的信息,而是把之前的信息隐藏到了最上面,通过滚动条继续查看以前的信息。
10.管道(重要)
管道符:|
作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,起作用主要是辅助作用。
1.过滤案例:(100%使用)需要通过管道查询出根目录下包含“y" 字母的文档名称。
# ls / | grep y
针对上面这个命令说明:
1.以管道作为分界线,前面的命令有个输出,后面需要先输入,然后在过滤,最后再输出。
通俗的讲就是管道前面的输出就是后面指令的输入。
2.grep 指令:主要用于过滤
2.特殊用法案例:通过管道的操作方法来实现less的等价效果(了解)
之前通过less查看一个文件,可以#less 路径
现在通过管道还可以这么:#cat 路径|less
3.扩展处理:请使用学过的命令,来统计某个目录下的文档的总个数?
答案:#ls / | wc -l
高级指令(重点)
1.hostname 指令
作用:操作服务器的主机名(读取,设置)
语法1:#hostname //含义:表示输出完整的主机名
语法2:#hostname -f //含义:表示输出当前主机名中的FQDN(权限定域名)
2.id指令
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id….),该指令如果不指定用户默认当前用户。
语法:#id //默认显示当前执行该命令的用户的基本信息。
注释:uid :user id (用户名) gid:group id (用户名),组:附件组id(用户名)
语法2:#id 用户名 //显示指定用户的基本信息
验证上述信息是否正确?
验证用户信息:通过文件#cat /etc/passwd
验证用户组信息: 通过文件#cat /etc/group
3.whoami指令
作用:“我是谁”显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志 //日志:记录系统运行的情况
语法:#whoami
4.ps-ef指令(重点)
指令:ps
作用:主要是查看服务器的进程信息
选项含义:
-e:等价于“-A”,表示列出全部的进程
-f:显示全部的列(显示全字段)
执行结果:
#ps -ef
列的含义:
UID:user id 该进程执行的用户id
PID:process id (进程id)
PPID:parent(父级) pid 该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);
C:表示cpu占用率,其形式是百分比;
STIME :该进程的启动时间;
TIY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径;
案例:(100%使用的命令)在ps的结果中过滤出想要查看的进程状态
#ps-ef | grep 进程名称
再例如查看火狐浏览器的进程:
5.top指令(重点)
作用:查看服务器的进程占的资源
语法:
进入命令:#top (动态显示)
退出命令:按下q键
输出结果:
表头含义:
PID:进程id;
USER:该进程对应的用户
PR:优先级;
VIRT:虚拟内存;
RES:常驻内存
SHR:共享内存;
计算一个进程实际使用的内存=常驻内存(RES)-共享内存(SHR)
S:表示进程的状态(sleeping,其中S表示睡眠,R表示运行);
%CPU:表示CPU的占用百分比;
%MEM:表示内存的占用百分比;
TIME+:执行的时间;
COMMAND:进程的名称或者路径
在运行top的时候,可以按下方便地快捷键:
M:表示将结果按照内存(MEM)从高到低进行排序;(大写的M)
P:表示将结果按照CPU使用率从高到底进行降序排列;(大写的P)
1:当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否显示各个cpu的详情信息;
6.du -sh指令
作用:查看目录的真实大小
语法:#du -sh 目录路径
选项含义:
-s:summaries,只显示汇总的大小
-h:表示以高可读性的形式进行显示
案例:统计“/root/yunweihengniu”的大小
案例:统计"/etc”目录实际大小
7.find指令
作用:用于查找文件(其参数有55个之多)
语法:#find 路径范围 选项 选项的值
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索
文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹
案例:使用find来搜索http.conf
#find / -name http.conf
案例:搜索etc目录下所有的conf后缀文件
#find /etc -name *.conf
案例:使用find来搜索/etc/sane.d/目录下所有的文件
#find /etc/sane.d/ -type f
8.service指令(重点)
作用:用于控制一些软件的服务启动/停止/重启
语法:#service 服务名 start/stop/restart
例如:需要启动本机安装Apache(网站服务器软件),其服务名 httpd
#service httpd start
通过ps命令来检查httpd服务是否启动:
9.kil指令(***重点***)
作用:表示杀死进程 (当遇到僵尸进程或者出于某些需要关闭进程的时候)
语法:#kill 进程PID (语法需要配合ps一起使用)
案例:需要kill Apache 的进程
{#ps -ef |grep httpd
#kill 29867
#ps -ef |grep httpd //(检查进程是否杀死 方法1 )
#kill 29867 //(检查进程是否杀死 方法2 )
与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
语法:#killall
进程名称
10.ifconfig指令(重点)
作用:用于操作网卡相关的指令。
简单语法:#ifconfig (获取网卡信息)
}
Eth0表示Linux中的一个网卡,eth0是名称。Lo(loop,本地回还网卡,其ip地址一般都是127.0.0.1)也是一个网卡名称。
11.reboot指令
作用:重新启动计算机
语法1:#reboot 重启
语法2:#reboot -w 模拟重启,但是不重启(只写关机与开机的日志信息)
12.shutdown指令
作用:关机 (慎用)
语法1:#shutdown -h now “关机提示” //立即关机
或者 #shutdown -h 15:25 //定时关机
案例:设置Linux系统关机时间在12:00
#shutdown -h 12:00 "系统将在12:00关机,请保存好你的文档!!"
如果想要取消关机计划的话,则可以按照以下方式去尝试:
1.针对centos7.x之前的版本,ctrl+c
2.针对centos7.x(包含)之后的版本:#shutdown -c
除了shutdown关机以外,还有以下几个关机命令:
#init 0 #halt #poweroff
13.uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
语法:#uptime
Load average:负载
14.uname指令
作用:获取计算机操作系统相关信息
语法1:#uname 获取操作系统的类型
语法2:#uname -a //all ,表示获取全部的系统信息(类型,全部主机名,内核版本,发布时间,开源计划)
15.netstat -tnlp
作用:查看网络连接状态
语法:#netstat -tnlp
选项说明:
-t :表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称;
16.man指令
作用:manual ,手册(包含了Linux中全部命令手册,英文)
语法:#man 命令 (退出按下q键)
案例:通过man命令查询cp指令的用法
#man cp
练习题:
1.如何通过命令行重启linux操作系统?
#reboot
2.如何在命令行汇总快速删除光标前/后的内容?
前:ctrl +u 后:ctrl+k
3.如何删除/tmp下所有A开头的文件?
#rm -f /tmp/A*
4.系统重要文件需要备份,如何把/etc/passwd被分到/tmp目录下?
#cp /etc/passwd /tmp/
5.如何查看系统最后创建的3个用户?
#tail -3 /etc/passwd
6.什么命令可以统计当前系统中一共有多少账户?
#wc -l /etc/passwd #cat /etc/passwd | wc -l
7.如何创建/tmp/test.conf文件?
#touch /tmp/test.conf
8.如何通过vim编辑打开/tmp/test.conf?
#vim /tmp/test.conf
9.如何查看/etc/passwd的头3行和尾3行?
#head -3 /etc/passwd
#tail -3 /etc/passwd
10.如何一次性创建目录/text/1/2/3/4?
#mkdir -p /text/1/2/3/4/
11.如何快速返回到当前目录的家目录?
#cd ~ 或 #cd
12.如何查看/etc所占的磁盘空间?
#du -sh /etc
13.如何删除/tmp下所有的文件?
#rm -rf /tmp/*
14.尝试启动Apache的服务,并且检查是否启动成功。
#service httpd start
#ps -ef |grep httpd
15.使用已学命令杀死Apache的进程。
#killall httpd