由于本人实在是懒,内容都写下来有点浪费时间,不写又怕没几天就忘记,所以我找到了一位勤劳美丽的小仙女,向她要了这份笔记,在这里感谢哟~
重要的目录描述:
Bin 全程binary,含义是二进制。文件都是可运行的。
Dev:该目录中主要存放的是外接设备,例如U盘,移动硬盘,光盘。在其中的外接设备是不能直接被使用的,需要挂载(类似于Windows下的分配盘符)。
Etc:该目录主要是存储一些配置文件。
Home:类似于User,除了Root意外的用户目录。
Proc:全程process(进程),存储Linux运行的进程。
Root:该目录是Root的家目录;
Sbin:全程 suber binary,该目录也是存放一些可以执行的二进制文件,但是必须得有super权限的用户才能执行
Tmp:存放临时文件;(类似于Windows的Temp)
Usr:存放的用户自己安装的软件;类似于program files;
Var:存放是程序/系统的日志文件;
Mnt:当外接设备如果需要挂载的时候就需要挂载到Mnt目录下;
指令和选项:
Linux下指令通用的格式:
~$ 指令主题 [选项] [操作对象]
一个指令可以包含多个选项和多个操作对象。
列如:需要让张三同学去留下小卖部去买一瓶肥宅快乐水和清风餐巾纸
买东西是指令的主体 ,买的水和餐巾纸是操作对象,肥宅快乐水和清风是选项;
基础命令
ls (list) 列出
用法1:ls
含义:列出当前目录所有文件
用法2 :ls 路径
含义:列出给出路径下面的文件
关于路径:路径可以分为两种:相对路径和绝对路径
相对路径:相对首先得有一个参照物(一般就是当前的工作路径);
相对路劲的写法:在相对路径中通常会用到两个符号
“./” [表示当前目录下]
“../” [表示上一级目录下]
绝对路径:绝对路径不需要参照物 直接从根“/”开始寻找对应路径
用法3:ls 选项 路径
含义:在列出路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法 ls -l 路径
ls -la 路径
参数(选项): -l 表示 list,表示以详细列表的形式进行展示;
列表中的第一列字符表示文档类型;
“-”表示该行文档类型问文件:“d”表示文件夹
-a 表示显示所有的文件和文件夹(包含了隐藏文件和文件夹)
隐藏文件一般是以“.”开头
用法4:ls -l[a]h 路径
含义:列出指定路径下的所有文件和文件夹的名称以列表的形式并且在显示文档大小的时候以可读性较高的形式来进行显示;
pwd
用法:pwd (print working directory)打印当前工作目录
cd 命令 (change directory 改变目录)切换当前的工作目录
语法:cd 路径
补充: Linux中有一个“~”表示当前用户的家目录
mkdir 命令
用户:mkdir (make directory 创建目录)
语法: mkdir [路径] 文件名
案例:在当前路径下创建目录“yunwei” mkdir xx
注意:ls 列出结果颜色说明:其中蓝色的名称表示文件夹,黑色的表示文件,绿色的表示其权限未不是只读拥有所有权限。
案例:指定的目录下面创建 mkdir /root/xx
用法2:mkdir -p[文件路径] 多层创建
案例:mkdir -p /root/yunwei/a/b/c/d
查看 ls /root/yunwei/a/b/c/d
语法3: mkdir 路径1 路径2 路径...
touch (创建指令)
指令:touch 创建文件
语法: touch 路径
案例: 用touch在当前目录下创建一个文件名,命名为Linux.txt; touch Linux.txt
用touch在执行目录Home下创建文件Linux123.txt; touch /home/Linux123
注意:文件不能包含多层 所以没有-p 但是可以创建多个文件
cp (copy 复制)
作用:复制文件/文件夹到指定的位置
语法:cp 被复制的文档路径 文档被复制到的路径
案例:使用cp来复制文件
注意:可以在复制过程中改名,cp在命令文件夹复制的时候添加 -r(递归复制)
mv 指令 (move 移动 剪切)
作用:移动文档位置
语法:mv 需要移动的文档路径 需要保存的位置路径
主语:原始文件不在原位置
案例:mv移动命令一个文件
mv 文件 路径
mv -r移动命令一个文件夹
作用2:重命名
语法: mv 需要移动的文档路径 需要保存的位置路径
rm 命令(移除 remove)
作用:移除删除一个文档
语法 rm 选项 移除的路径
选项:
-f 再删除时不想频繁确认可以在指令中添加 表示 force(强制)
-r 删除文件夹 递归删除 一般 -rf联合使用
案例:不用选项删除文件 rm /路径 ????没提示/会提示是否删除
删除一个文件夹 rm -r /文件夹路径
删除文件夹和文件 rm -rf /路径 路径
删除一个目录下有公共特性的文件 例如Linux开头 rm -f /关键词 *(通配符)
vim 命令
指令:vim(vim是一款文本编辑器)
语法:vim 文件的路径
作用:打开一个文件(可以存在也可以不存在)
在没有按下其他命令的时候 :q(不保存退出) :wq(保存退出) :q!(强制退出)
输出重定向
指令:一般的命令都会显示在终端中,有时候讲一些命令的执行结果保存到文件中进行后续的分析统计这个时候需要输出重定向;
> 表示覆盖输出
>> 追加输出
注意:文件不存在自动新建
案列:使用覆盖重定向,保存ls -la的结果 ls -la > 文件
cat 指令
作用1:cat 直接打开一个文件的功能 不同于vim
语法 cat 文件的路径
作用2:cat还可以对文件进行合并
语法:cat 待合并的路径1 待合并的路径2 合并路径n > 新文件路径
案列 cat a b > c 配合输出重定向
进阶命令
1. df指令
作用:查看磁盘的空间
语法: # df
# df -h 可读性较高(显示储存单位)
2. free指令
作用:查看内存使用情况
语法: # free
# free -m 表示以MB为单位
3. head指令
作用:查看一个文件的前n行,如果不指定n,则默认显示前10行
语法: #head -n 文件路径
4. tail指令
作用1:查看一个文件的末n行,如果不指定n,则默认显示后10行
语法: #tail -n 文件路径
作用2:可以通过tail指令来查看一个文件的动态变化(文件不能为手动输入)
语法: #tail -f 文件路径
该命令一般用于查看系统的日志比较多
5. less指令
作用:查看文件,以较少的内容进行输出,按下辅助功能键(shift+: 后 数字+回车 , 空格+上下 )查看更多
语法: #less 文件路径
退出按q
6. wc指令
作用:统计文件内容信息(包含行数,单词数,字节数)
语法: #wc -lwc 需要统计的文件路径
-l :表示lines ,行数
-w :表示word ,单词数 依照空格来判断单词数量
-c :表示bytes ,字节数
7. date指令(重点)***
作用:表示操作时间日期(读取,设置),shell
语法1:# date 查看当前时间 输出的形式:2018年9月19日 星期三 19:30:50 CST表示当地时间
语法2:# date +%F (等价于 #date +"%Y-%m-%d") 输出的形式:2018-09-19
语法3: %date "+%F %T" 输出的形式:2018-9-19 19:30:40 (引号表示让年月日时分秒成为一个整体)
等价于 # date "+%Y-%m-%d %H:%M:%S"
语法4:获取之前获取之后的某个时间(备份)
# date -d "-1 day" "+%Y-%m-%d %H:%M:%S" 获取一天前的时间
# date -d "+1 day" "+%Y-%m-%d %H:%M:%S" 获取一天后的时间
时间单位:day(天),mouth(月),year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导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. 管道(重要)***
管道符: |
作用:管道一般可以用于"过滤","特殊","扩展处理" .
语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,起作用主要是辅助作用
①过滤案例(100%使用):需要通过管道查询出根目录下包含"y"字母的文档名称
ls /|grep y
针对上面这个命令说明:
1.以管道作为分界线,前面的命令有个输出 后面需要先输入在过滤再输出
通俗的讲就是管道前面的输出就是后面指令的输入
2.grep指令: 主要用于过滤
②特殊用法案例:通过管道的操作方法来实现less的等价效果(了解)
之前通过less查看一个文件,可以# less 路径
现在可以通过管道还可以这么: # cat 路径 | less
③扩展处理:请使用学过的命令,来统计某个目录下的文档的总个数
# ls / | wc -l
# ls / | wc -w
高级指令
1. hostname指令
作用:操作服务器的主机名(***读取,设置)
语法1: # hostname 含义:表示输出完整的主机名
语法2: # hostname -f 含义:表示输出当前主机名的FQDM(全限定域名)
- id指令
作用:查看一个用户的基本信息(包含用户id,用户组id,附加组id...),该指令如果不指定用户则默认当前用户
语法1: # id 默认显示当前执行该命令的用户
语法2: #id 用户名 显示指定用户的基本信息
验证上述信息是否正确?
验证用户信息,通过文件/etc/passwd
验证用户组信息:通过文件/etc/group
3.whoami指令
作用:"我是谁?" 显示当前登录的用户名,一般用于shell脚本,
用于获取当前操作的用户名方便记录日志
语法: # whoami
- ps -ef指令(重点***)
指令:ps
作用:主要是查看服务器的进程信息
选项含义:
-e:等价于"-A" 表示列出全部的进程
-f:显示全部的列(显示全字段)
列的含义:
UID:该进程执行的用户id;
***PID:进程id;
***PPID:该进程的父级进程id;如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程
***C: cpu的占用率,其形式是百分数
STIME:进行的启动时间
TTY:终端设备,发起该进程的设备识别,如果显示"?"则表示该进程不是由终端发起 ;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径 ;
案例(100%使用的命令)在ps的结果中过滤出想要查看的进程状态
ps -ef | grep gnome-panel # 本身指令这条指令也算进程
5.top指令 (重点***)
作用:查看服务器的进程占的资源
语法:
进入命令: #top (动态显示)
退出命令: 按q
表头含义:
PID:进程id;
USER:该进程对应的用户;
PR(权重):优先级;
NI(nice):用户进程空间内改变过优先级的进程占用CPU百分比 (基本不会用)
VIRT:虚拟内存;
RES:常驻内存;
SHR:共享内存;
计算一个进程实际使用的内存 = 常驻内存(RES) - 共享内存(SHR)
*** S:表示进行的状态(sleeping,其中S表示睡眠,R表示进行) ;
*** %CPU:表示CPU的占用百分比
*** %MEM:表示内存的占用百分比
TIME+ :执行的时间;
*** COMMAND:进程的名称或者路径 ;
例如chrome进行:
虚拟内存:申请500兆 实际使用了320MB 此时虚拟内存就是500兆
常驻内存:申请500兆 实际使用了320MB 此时常驻内存就是320兆
共享内存:申请500兆 实际使用了320MB,但是其中还包含对其他进程的调用开销则需要扣除
在运行top的时候,可以按下方便的快捷键:
M: 表示将结果按照内存(MEM)从高到低进行降序排列;
P:表示将结果按照CPU使用率从高到低进行降序排列;
1:当服务器拥有多个CPU核心的时候可以使用"1"快捷键来切换是否展示显示各个CPU核心的详细信息
6.du -sh指令
作用:查看目录的真实大小
选项含义:
-s:summaries ,只显示汇总的大小
-h:表示以较高可读性的形式进行显示
案例:统计"/root/a"的实际大小
# du -sh /root/a
7.find指令
作用:用于查找文件(其参数有55个之多)
语法: # find 路径范围 选项 选项的值
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索
文档类型:"-"表示文件(在使用find的时候需要用f来替换),"d"表示文件夹
案例:使用find来搜索httpd.conf
# find / -name httpd.conf
案例:搜索etx目录下的所有的conf后缀文件
find /etx -name *.conf
案例:使用find来搜索/etc/sane.d/目录下所有的文件
find /etx/sane.d -type f
案例:使用find来搜索/etc/目录下所有的文件夹
find /etc/ -type d
8.service指令(重点***)
作用:用于控制一些软件的服务启动/停止/重启
语法: # service 服务名 start/stop/restart
例如:需要启动本机安装的Apache(网站服务器软件),其服务名叫httpd
service httpd start
通过ps命令来检查httpd是否启动
ps -ef | grep httpd
9.kill指令(***重点)
作用: 表示杀死进程(当遇到僵尸进程或者处于某些原因需要关闭进程的时候)
语法1: # kill 进程id
语法2: killall 进程名称
10.ifconfig指令(***重点)
语法: # ifconfig(获取网卡信息)
11.reboot指令
作用:重新启动计算机
语法1:# reboot 重启
语法2:# reboot -w 模拟重启,但是不重启 (只写关机与开机的日志信息)
12.shutdowm指令
作用:关机 (慎用)
语法1: # shutdown -h now (立即关机) 或者 # shutdowm -h 9:15 "提示信息"(9.15关机)
案例:设置Linux系统关机时间自9.15
想取消定时关机的话
①针对centos7.0x之前: ctrl+c
②针对centos7.0x(包含)之后: # shutdowm -c
除了shutdown关机以外,还有以下几个关机命令:
init 0
halt
poweroff
13.uptime指令
作用:输出计算机的持续在线时间(计算机从卡机到现在运行的时间)
语法: # uptime
14.uname指令
作用:获取计算机系统相关信息
语法1: # uname 获取操作系统的类型
语法2: # uname -a 表示获取系统的全部信息(类型,全部主机名,内核版本,发布时间,开源计划)
15.netstat -tnlp指令
作用:查看网络连接状态
语法: # netstat -tnlp
选项说明:
-t:表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l:表示过滤"state(状态)"列出其值为LINTEM(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称;
16.man指令
作用:manual,手册
语法:# man 命令 (退出按下q键)
案例:通过man命令查询cp指令的用法(全是英文)