基础操作
操作系统分类:
批处理系统
1就是把一批任务一次性提交给计算机,然后就等待结果
2并且中途不能和计算机交互。准备作业需要花费很长时间
3并能出错
4并且这个时候别人也不能用,导致了计算机资源的浪费
unix
1同时性。若干个终端用户可同时使用计算机
2独立性。用户彼此独立,互补干扰
3及时性。用户的请求能在较短时间内得到响应
4交互性。用户能进行人机对话,联机地调试程序,以交互方式工作
windows
linux
设计思想
1程序应该小而专一,程序尽量的小,而且要专注一件事上,不要开发那些看起来有用但是
90%的情况下都用不到的特性;
2程序不只要考虑性能,程序的可移植性更重要,shell和perl,python等脚本相比c有更好的移植性;
3一切皆文件,尽量使用文本文件来存数据,避免使用二进制文件,因为文本文件可读性强,而且
已经很多的工具来处理,例如awk,sed,grep等;
常用目录介绍
boot 存放启动文件
dev 存放设备文件
etc 存放配置文件
home 普通用户目录,以/home/$username的方式存放
media 移动存储自动挂载目录,以/media/$device_name的方式来存放
mnt 手动挂载目录
opt 三方软件安装目录
proc 内存系统文件
root 管理员家目录
run 里面的东西是系统运行时需要的,不能随便删除,但是重启的时候应该抛弃,下次系统运行时重新生成
src 服务相关数据
sys 系统文件
tmp 临时文件
usr 存放库文件、文档、命令、用户数据等
var 日志存放
lib 库文件
linux命令格式
命令[命令选项] [参数]
学会看语法:
{必选项} [可选项]
命令分类
内部命令:
linux内核自带的,执行效率更高
外部命令
需要安装以后才能使用,但是系统默认已经为你安装了很多外部命令,供大家使用
使用type命令来区分命令是内部还是外部
命令存放在
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
bin命令任何人都可以使用,sbin的命令成为特权命令,只有管理员使用
linux基本命令
指令与选项
在linux终端(命令行)中输入的内容
一个完整的指令的标准格式:linux通用的格式
#指令 选项 操作对象
一个指令可以包含多个选项
操作对象也可以多个
基础指令
1、ls指令
含义:ls(list)
用法1:#ls
含义:列出当前工作目录下的所有文件/文件夹的名称
用法2:#ls 路径
含义,列出指定路径下的所有文件、文件夹的名称
关于路径(重要):
路径可以分为两种:相对路径、绝对路径
相对路径:相对首先得有一个参照物(一般就是当前的工作路径)
相对路径的写法:在相对路径中通常会用到2个符号
‘./’表示当前目录下
‘../’表示上一级目录下
绝对路径:绝对路径不需要参照物,直接从根‘/’开始寻找对应路径
用法3:#ls 选项 路径
含义,在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示
常见的语法
#ls -l 路径
#ls -la 路径
选项解析:
-l:表示list,表示以详细列表的形式进行展示
-a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
用法4:#ls -lh 路径
含义,列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示
文档的大小的时候以可读较高的形式显示
ls列出的结果颜色说明,其中蓝色的名称表示文件夹,黑色的表示文件,
绿色的其权限为拥有着的所有权限
2、pwd指令
用法:#pwd (print working directory,打印当前工作目录)
3、cd命令
用法:#cd (change directory,改变目录)
作用:用于切换当前的工作目录
语法:#cd 路径
在linux中有一个特殊的符号‘-’表示在当前的用户的家目录
切换的方式:#cd -
4、mkdir指令
用法1:#mkdir (make directory,创建目录)
语法:#mkdir 路径(路径,可以是文件夹名称也可以是包含名称的一个完整路径)
语法2:#mkdir -p 路径
含义,当一次性创建多层不存在的目录的时候,添加-p参数,否则报错
语法3:#mkdir 路径1 路径2 路径3...(一次性创建多个目录)
5、touch指令
作用:创建文件
语法:#touch 文件路径 (路径可以是直接的文件名也可以是路径)
6、cp指令
指令:cp (copy,复制)
作用:复制文件/文件夹到指定的位置
语法:#cp 被复制的文档路径 文档被复制到的路径
注意:linux在复制过程中是可以重新对位置的文件进行重命名的,但是如果不是必须的
需要,则建议保持前后一致
当使用cp命令进行文件夹复制操作的时候需要添加选项‘-r’(-r表示递归复制),否则目录将被忽略
7、mv指令
指令:mv (move,移动,剪切,重命名)
作用:移动文档到新的位置
语法:#mv 需要移动的文档路径 需要保存的位置路径
在linux中重命名的命令也是mv,语法和移动语法一样
8、rm命令
指令:rm (remove,移除,删除)
作用:移除删除文档
语法:#rm 选项 需要移除的文档路径
选项:-f:force,强制删除,不想提示是否
-r
注意:如果在删除的时候不想频繁的确认,则可以在指令中添加选项‘-r’表示force(强制)
删除一个目录的时候需要做递归删除,并且一般也不需要进行确认询问,所以移除目录的时候一般需要使用-rf选项
9、vim指令
指令:vim (vim是一款文本编辑器)
语法:#vim 文件的路径
作用:打开一个文件(可以不存在,也可以存在)
退出打开的文件,在没有按下其他命令的时候,按下shift+英文冒号,输入q,按下回车即可
10、输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存在文件中
进行后续的分析/统计,则这个时候需要使用到输出重定向
>:覆盖输出,会覆盖掉原先的文件内容
>>:添加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:#正常执行的指令 >/>>文件的路径
注意:文件可以不存在,不存在则新建
11、cat指令
作用1:cat有直接打开一个文件的功能
语法:#cat 文件路径
作用2:cat还可以对文件进行合拼
语法2:#cat 待合并的文件路径1 待合并的文件路径3...... >合并后的文件路径
进阶指令
1、df指令
作用:查看磁盘的空间
语法:#df -h -h表示以可读性较高的形式展示大小
2、free指令
作用:查看内存使用情况
语法:#free -m -m表示以mb为单位查看
swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存
3、head指令
作用:查看一个文件的前n行,如果不指定,默认显示前10行
语法:#head -n 文件路径 (n表示数字)
4、tail指令
作用1:查看一个文件的末n行,如果n不指定默认显示后10行
语法:#tail -n 文件路径 n同样表示数字
作用2:可以通过tail指令来查看一个文件的动态变化
语法:#tail -f 文件路径
该命令一般用于查看日志比较多
5、less指令
作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多
语法:#less 需要查看的文件路径
6、wc指令
作用:统计文件内容信息(包含行数、单词数、字节数)
语法:#wc -lwc 需要统计的文件路径
-l:表示lines,行数
-w:表示words,单词数
-c:表示bytes,字节数
7、date指令
作用:表示操作时间日期(读取、设置)
语法1:#date 输出的形式:2018年3月24日 星期六 15:2428
语法2:#date +%F
(等价于#date "%Y-%m-%d") 输出的形式:2018-3-24
语法3:#date "+%F%T" 引号表示让‘年月日时分秒’成为一个不可分割的整体
(等价操作#date "%Y-%m-%d %H:%M:%S" 输出的形式:2018-3-24 16:01:00)
语法4:获取之前或者之后的某个时间(备份)
#date -d “-1day” "%Y-%m-%d %H:%M:%S"
符号的可选值:+(之后)或者 -(之前)
单位的可选值:day、month、year
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份
%d:表示日期
%H:表示小时
%M:表示分钟
%S:表示秒
8、cal指令
作用:用来操作日历的
语法1:#cal 直接输出当前月份的日历
等价于#cal -l
语法2:#cal -3 表示输出上一个月+本月+下个月的日历
语法3:#cal -y 年份 表示输出某一个年份的日历
9、clear/ctrl+L指令
作用:清除终端中已经存在的命令和结果(信息)
语法:#clear 或者快捷键:Ctrl+L
需要注意的是:该命令并不是真的清除了之前的信息,而是把之前的信息都隐藏到了最上面
通过滚定条继续查看以前的信息
10、管道
管道符:|
作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”
语法:管道不能单独使用,必须需要配合前面所讲的一些命令来一起使用,其作用主要是
辅助作用
1以管道作为分界线,前面的命令有个输出,后面需要先输入,然后最过滤,最后输出
通俗的讲就是管道前面的输出就是后面指令的输入
2grep指令:主要用于过滤
高级指令
1、hostname指令
作用:操作服务器的主机名(读取、设置)
语法1:#hostname 含义:表示输出完整的主机名
语法2:#hostname -f 含义:表示输出当前主机命中的FQDN(权限定域名)
2、id指令
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id),该指令如果
不指定用户则默认当前用户
语法1:#id 默认显示当前执行该命令的用户的基本信息
语法2:#id 用户名 显示指定用户的基本信息
3、who am i指令
作用:“我是谁”显示当前登录的用户名,一般用于shell脚本,用户获取当前操作的用户名
方便记录日志
语法:#whoami
4、ps指令
作用:主要是查看服务器的进程信息
语法:#ps -ef
-e:等价于“-A”,列出全部的进程
-f:显示全部的列(显示全字段)
列的含义
UID:该进程执行的用户id
PID:进程id
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程
C:cpu的占用率,其形式是百分数
STIME:进行的启动时间
TTY:终端设备,发起该进程的设备识别符号,如果显示"?"则表示该进程并不是由终端设备发起
TIME:进程的执行时间
CMD:该进程的名称或者对应的路径
5、top指令
作用:查看服务器的进程站的资源
语法:
进入命令:#top (动态显示)
退出命令:按下q键
表头含义:
PID:进程id
USER:该进程对应的用户
PR:优先级
NI:用户进程空间内改变过优先级的进程占用cpu百分比
VIRT:虚拟内存
RES:常驻内存
SHR:共享内存
计算一个进程实际使用的内存 = 常驻内存 - 共享内存
S:表示进行的状态(sleeping,其中S表示睡眠,R表示进行)
%CPU:表示cpu的占用百分比
%MEM:表示内存占用百分比
TIME+:执行的时间
COMMAND:进程的名称或者路径
在运行top的时候,可以按下方便的快捷键
M:表示将结果按照内存从高到低进行降序排列
P:表示将结果按照cpu使用率从高到低进行降序排列
6、du指令
作用:查看目录的真实大小
语法:#du -sh 目录路径
选项含义:
-s:summaries,只显示汇总的大小
-h:表示以高可读性的形式进行显示
7、find指令
作用:用于查找文件(其参数有55个之多)
语法:#find 路径范围 选项 选项的值
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索
文档类型:“-”表示文件(在使用find的时候需要用f来替换)“d”表示文件夹
8、service指令
作用:用于控制一些软件的服务启动/停止/重启
语法:#service 服务名 start/stop/restart
9、kill指令
作用:表示杀死进程 (当遇到僵尸进程或者处于某些原因需要关闭进程的时候)
语法:#kill 进程PID (语法需要配合ps一起使用)
与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指令
作用:关机
语法:#shutdown -h now 或者 #shutdown -h 15:25
出了shutdown关机以外,还有以下几个关机命令:
#init 0
#hait
#poweroff
如果想要取消关机计划的话,则可以按照一下方法去尝试:
1针对centos7.x之前的版本,ctrl+c
2针对centos7.x(包含)之后的版本,#shutdown -c
13、uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
语法:#uptime
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键)
vi编辑器
vim是vimsual interface IMproved的简称,它可以执行输出、删除、查找、替换、块操作等
众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的
vim不是一个排版程序,它不像ms word或wps那样可以对字体、格式、段落等其他属性进行
编排,它只是一个文本编辑程序
vim是全屏幕文本编辑器,它没有菜单,只有命令
命令模式
在此模式下用户可以输入命令来进行文件存盘、移动光标、删除字符、撤销命令和重复命令等
操作,还可以设置vim的编辑环境
保存退出:
存盘ZZ保存退出
复制粘贴:
复制一行 yy
复制多行 nyy
删除:
删除字符 x
删除一行 dd ndd
删除一个单词 dw
撤销:
撤销操作 u
查找:
查找 /string define
插入模式
在插入模式下也可以删除字符,插入字符
末行模式
在末行模式下,可以进行保存文件,退出vim、进行查找和替换操作
:q 退出
:q! 强制退出不保存
:w
:wq
替换模式
:s/old/new
:%s/old/new
替换字符