Linux笔记一
什么是Linux
Linux是基于unix开发而来的一款操作系统,用于管理计算机硬件和软件的计算机程序,最近本的系统软件其他的软件都必须在操作系统上才能运行。
Linux的基本概念
:
- 多用户的系统:允许同时有很多个用户登陆系统,使用系统的里的资源;
- 多任务的系统:允许同时执行多个任务;
- 严格区分大小写:命令、选项、参数、文件名、目录名都严格区分大小写;
- 一切皆文件:在Linux中硬件设备(内存、CPU、网卡、显示器、硬盘等等)都是以文件的形式存在的;
- 所有的文件都是以根‘/’为起点的倒挂式树状图结构,存在于/'根’目录下;
命令终端字段含义
[root@localhost ~]#
解释:当前用户名为root 主机名为localhost 当前所在目录为~家目录 #当前用户为超级管理员,root超级管理员家目录为:/root
普通用户的用户提示符为$,普通用户的家目录为:/home/用户名
命令行的一般格式
命令 [-选项…] [参数…]
- 命令:命令本身
- 选项:调整命令功能
- 短选项:-a -d -l -i -c -h(单个字符),短选项可以合并使用:-lad -lh
- 长选项:–help(单词),长选项通常不能合并使用 - 参数:命令的执行对象,文件/目录/程序等
- []:可选的
- …:可以有多个选项或者参数
辨别目录与文件的方法
蓝色表示为目录(Windows系统里的文件夹)
白色表示普通文件
浅蓝表示示链接文件(类似于Windows里的快捷方式)
绿色表示可执行文件(脚本,命令程序等)
红色表示为压缩文件
黄色表示为设备文件(键盘、鼠标、硬盘、网卡、cpu硬件设备都是以文件的形式存在的)
红色闪动文件表示为链接文件不可用
Linux系统文件类型
当你详细的查看一个文件的属性时你会看到他的开头是‘-’这个表示他就是个的就是普通文件
Linux的系统文件有
- -文件
- d目录
- l链接文件
- b跨设备文件
- c字符设备文件
- p管道设备文件
- s套接字
Linux系统下的归属关系
在Linux中文件给用户分为三类用户
-u 所有者:文件或者目录的拥有者,拥有者的权限通常是最大的。
-g 所属组:文件或者目录属于哪个组,所属组的权限通常比所有者权限小
-o 其他人:既不是文件的所有者,也不是文件或目录所属组组内的成员,通常其他人的权限是最小的
Linux基本权限的类别
r读取 w写入 x执行 -没有权限
权限顺序为:rwxrwxrwx
-:文件类型
rw-rw-r–:所有者u、所属组g、其他人o的权限
1:代表文件引用的次数,只针对做了硬连接的文件才有效
root:文件的所有者
xiaohei:文件的所属组
24:文件的大小,默认以字节为单位显示大小
4月 30 03:46 :文件最近一次的修改时间
jinx.txt:文件名
命令
ls查看目录/文件命令
ls命令(list):用于查看目录下的内容及目录和文件的详细属性信息
命令格式:ls [-选项…] [参数…]
常用选项:
- -a显示目录下的所有内容,包含隐藏文件
- -l 以长格式显示目录下的内容及详细属性
- -h人性化显示目录下内容大小(GB,MB,KB)
- -i查看inode号(系统任何的文件或目录都有一个唯一的编号)
- -d查看目录本身而不显示目录下的内容
- -R递归查看目录下的所以内容
mkdir创建目录命令
mkdir(make directory)用于创建新目录
命令格式:mkdir [-选项] 目录名
常用选项为:-p递归创建多个目录
cd切换工作目录命令
cd(change directory)切换目录
命令格式:cd [-选项] [目录名]
注:目录名称可以是绝对路径或者相对路径,但是不指定目录名则切换到当前家目录~
pwd打印当前所在目录命令
pwd(print work direcytory)打印当前所在的工作目录,执行完成后可以看到当前目录的绝对路径
绝对路径:以根为起点,到你想去的目标目录为绝对路径
相对路径:以当前路径为起点,到你想去的目标目录为相对路径
rmdir删除空目录命令
rmdir(remove directory)删除空目录
命令格式:rmdir [-选项] 目录名
注:rmdir只能删除空目录,如果目录下存在数据则无法删除
touch创建文件命令
touch命令 用于创建新的空白文件
命令格式:touch [-选项] 文件名
cp复制命令
cp(copy file)用于复制文件或目录,cp命令在复制时也可以修改文件或者目录名字
命令格式:cp [-选项] 源文件或目录 目标目录
常用选项:
- -p 保留源文件属性不变(修改时间、归属关系、权限)
- -r 复制目录(包含该目录下所有的子目录和文件)
mv移动命令
mv(move file)用于移动文件或者目录到其他位置,也可用于修改目录或文件名
命令格式:mv [-选项] 源文件… 目标路径
cat查看文件内容命令
cat(concatenate)用于查看文本文件内容
命令格式:cat [-选项] 文件名
常用选项:-n #查看文件时以行号的形式显示文件内容
less命令
less工具是对文件的输出进行分页显示的工具,常用于查看文件内容量较大的文件
命令格式:less [-选项] 文件
常用选项: -N #以行号形式显示文件内容
head与tail命令
head命令:用于显示文件开头部分内容,默认显示文件文件开头前十行内容
命令格式:head [-选项] 参数
常用选项:-n<行数>指定显示的行数
tail命令:用于显示文件末尾部分内容,默认显示文件末尾世行内容
命令格式:tail [-选项] 参数
常用选项:-n<行数>指定显示的行数 -f 动态显示
rm命令
rm(remove)用于删除文件或者目录
命令格式:rm [-参数…] 文件名或目录名
常用选项:
- -r 强制删除
- -f 删除目录
- “*”特殊符号:系统常用符号,用来代表任意所以字符
软连接与硬链接
Linux中的链接文件类似于Windows中的快捷方式
软连接特点:软连接可以跨分区,可以对目录进行链接,源文件删除后链接文件不可用
软连接命令格式 ln -s 源文件路径 目标路径
注:创建链接时所用的源文件路径及目标路径均要用绝对路径,哪怕是在当前目录下也要使用绝对路径
硬链接特点:硬链接不可用跨分区,不可以对目录进行链接,只能链接文件,源文件删除后链接文件仍然可用
硬链接命令格式:ln 源文件路径 目标路径
内部命令与外部命令
什么是命令:用来实现某一种功能的指令或程序
命令的执行依赖于解释器,/etc/shells文件存放系统可用的shell的解释器程序
用户——>解释器(shell外壳)——>内核
Linux命令的分类
内部命令:bash程序自带的基本管理命令
外部命令:有独立的外部可执行程序文件命令
type用于区别内部命令与外部命令
which用于查找可执行程序文件位置
Linux系统的运行级别
Linux系统一共有7个运行级别,不同的级别运行的程序和功能不一样,而Linux系统默认运行在一个标准的级别上,系统运行级别文件/etc/inintab文件
运行级别:
- 0:所有进程被终止,机器将有序的停止,关机时系统处于这个运行级别(关机)
- 1:单用户模式,(root用户进行系统维护),系统里运行的所有服务也都不会启动
- 2:多用户模式(网络文件系统NFS服务没有被启动)
- 3:完全多用户模式(有NFS网络文件系统)标准的运行级别,命令模式
- 4:系统未使用
- 5:登陆后,机内带GUI的图形化界面,标准的运行级别
- 6:系统正常关闭并重启
查看当前系统运行级别
runlevel
切换系统运行级别
init N
关机与重启
重用的关机命令有:init 0 ,shutdown -h
重启命令有:init 6 ,shutdown -r ,reboot
linux系统目录介绍
/ (根):系统所有的数据都存放在根目录下
/bin :用于存放用户和管理员必备的可执行的二进制文件
/boot:存放Linux系统内核及引导系统程序所需的文件目录
/dev:存放硬件设备的目录,如键盘,鼠标,cpu等等
/etc:存放服务的配置文件,用户信息文件
/root:超级管理员家目录
/home:用户家目录
/var:存放系统执行过程中经常变化的文件,例如日志文件就存放在/var/log中
/run:程序或者服务启动后,存放PID的目录
/midia:自动挂载目录
/mnt:手动挂载目录
/opt:额外安装的可选应用程序所放置的目录
/proc:linux伪文件系统,该目录下的数据存在于内存当中,不占用磁盘空间
/srv:服务启动之后需要访问的数据目录
/sys:存放被建立在内存当中的虚拟文件系统
/lib64:存放函式库
/usr:操作系统软件资源所放置的目录
-/usr/bin:与/bin目录相同,用于存放用户可以使用的命令程序
-/usr/lib:与/lib目录相同,用于存放系统中的程序运行所需要的共享库及内核模板
-/usr/etc:用于存放安装软件时使用的配置文件
-/usr/games:与游戏比叫相关的数据存放处
-/usr/include:c/c++等程序的档头(header)与包含档(include)放置处
-/usr/lib64:与/lib64目录相同,存放函式库
-/usr/libexec:不经常被使用的的执行程序或脚本会放置在此目录中
-/usr/local:额外安装的软件存放目录
-/usr/sbin:该目录与/sbin目录相同,存放用户可执行的二进制程序文件
-/usr/share:防止只读架构的杂项数据文件
-/usr/src:一般软件代码建议存放在该目录下
查看内核信息
uname命令用于查看系统内核信息
命令格式:uname [-选项…]
常用选项:-r:显示内核版本
-s:显示内核名称
解释:
Linux :内核名称
3 :主版本
10 :次版本
0 :修改版本
957 :补丁次数
el7 :Enterprise Linux(企业版Linux)
x86_64:CPU架构
查看CPU信息
/proc/cpuinfo文件用于存放系统CPU信息
lscpu 用于显示CPU架构信息
命令格式:lscpu [-选项]
查看系统内存信息
/proc/meminfo文件用于存放系统内存信息
free命令用于查看内存使用情况
命令格式:free [-选项]
常用选项:-h #以人类易读方式显示大小(KB、MB、GB)
使用free命令查看内存使用情况
解释:Mem 物理内存统计信息
total:物理内存总量
used:已使用的内存总量
free:空闲内存总量
shared:共享内存总量
buff/cache:块设备与普通文件占用的缓存数量
available:还可以被应用程序使用的物理内存大小
解释:Swap 内存交换空间,当物理内存不足时,可以使用硬盘空间充当内存使用
total:交换分区内存总量
used:正在使用的交换分区内存
free:空闲交换分区内存
查看网卡信息
网卡配置文件地址:/etc/sysconfig/network-scripts/网卡名
ifconfig 用于显示网卡和设置网卡的参数
命令格式:ifconfig [网卡名]
ifconfig查看网卡参数
查看主机名及修改主机名
/etc/hostname文件用于存放主机名
hostname命令用于显示和设置主机名
命令格式:hostname [ 新名称] (临时修改主机名,重启后失效)
永久修改主机名:hostnamectl set-hostname 主机名(立刻生效,不需要重启)
vi/vim文本编辑器
Vim是从vi发展出的一个文本编辑器,vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性
vi/vim一共分为三种模式:命令模式,输入模式,底行命令模式(末行模式)
命令模式:刚启动vim就进入了命令模式
输入模式:在命令模式下按i/a/o就进入了输入模式
按esc退出输入模式,切换到命令模式
底行命令模式:在命令模式下按:就进入了底行命令模式
命令格式: vim 文件名
注:若目标文件不存在,则新建文件并进入编辑
若目标文件已存在,则打开文件并编辑
命令模式:刚启动vi/vim,就进入了命令模式
- i 切换到输入模式,在当前光标所在字符前插入
- a 切换到输入模式,在当前光标所在字符后插入
- o 切换到输入模式,在当前光标所在行下插入新行
- :切换到底行命令模式,在最底一行输入命令
- x 在命令模式下删除当前光标所在的单字符
- dd 删除一行内容,配合数字可删除指定范围内的行
- C 删除当前光标及光标后的所有内容并进入输入模式
- u 恢复上一次修改内容,一次恢复一个操作,可多次恢复,直到恢复本次操作初始状态为止
- $ 将光标移动至行尾
- 0(零) 将光标移动至行首
- gg 跳转至文件第一行
- G 跳转至文件最后一行
- yy 复制当前行,配合数字可以同时复制多行
- p 粘贴当前光标所在行下
- /关键字 搜索文件内关键字,n从上向下快速定位关键字,N从下向上快速定位关键字
底行命令模式可以输入单个或多个字符的命令,可用的命令非常多
- :w 保存
- :q 退出
- :wq 保存并退出
- :q! 强制退出不保存
- :wq! 强制保存并退出
- :set nu 以行号形式显示文件内容
- :set nonu 取消行号显示
- :行号 快速跳转到指定行
- :r 读入另一个文件的数据,文件内容添加到光标的下一行
- :%s 替换文件内容,g替换全文,默认只替换每一行匹配到的第一个关键字
- :nohl 取消高亮显示
修改网卡IP地址
网卡配置文件地址:/etc/sysconfig/network-scripts/网卡名
ifconfig #用于显示和设置网卡的参数
systemctl restart network #重启网络
ifup 网卡名 #启动该网卡设备
ifdown 网卡名 #禁用该网卡设备
使用vim修改网卡地址 就直接修改ipaddr就行
使用命令行修改网卡ip地址
nmcli connection modify 网卡名 ipv4.method manual ipv4.addresses ip地址/掩码 connection.autoconnect yes
nmcli connection modify (修改)
网卡名 ipv4.method(配置ipv4地址方法)
manual (手动配置)
ipv4.addresses(ipv4地址)
IP地址/掩码 connection.autoconnect yes (开机自动链接)
激活网卡:nmcli connection up 网卡名
关闭网卡:nmcli connection down 网卡名
重启网卡:nmcli connection reload 网卡名
host命令
host用于将一个域名解析到一个IP地址
nslookup命令
nslookup 用于查询域名解释是否正常,在网络故障时用来判断网络问题
alias别名管理
alias命令用于设置别名,用户可以使用alias自定义别名来简化命令的复杂度
.bashrc 文件存放命令别名
命令格式:alias [别名]=[命令] #注意事项:等号(=)亲啊后不能有空格
unalias 别名 #取消别名
history 管理历史
history命令用于显示历史记录和执行过的命令,登录shell时会读取~./bash_history历史文件中记录下的命令,当退出或者登出shell时,会自动保存到历史命令文件,该命令单独使用时仅显示历史命令
历史命令默认只能存储1000条,可以通过/etc/profile文件修改
命令格式:history [-选项] [参数]
常用选项:
- -a 追加本次新执行的命令至历史命令文件中
- -d 删除历史命令中指定的命令
- -c 清空历史命令列表
快捷操作: - !# 调用历史命令中第N条命令
- !string 调用命令历史中以string开头的命令
- !! 重复执行上一条命令
date日期时间管理
date命令用于显示或设置系统日期与时间
命令格式: date [-选项] [+格式符] #查看系统日期时间
date [-选项] MMDDhhmm [[CC]YY] #设置日期时间
常用选项: -s设置日期时间
格式符:
- +%Y 年份
- +%B 月份
- +%d 日
- +%H 小时
- +%M 分
- +%S 秒
- +%F 年-月-日
- +%X 时:分:秒
在Linux中有两种时钟一种为系统时钟一种为硬件时钟
系统时钟:内核通过CPU的工作频率去计算的时间,也就是kernel中的时钟
硬件时钟:也就是实时时钟或CMOS时钟,是独立的硬件设备,也就是通常可在BIOS画面设定的时钟
显示硬件时间:clock
显示同步系统时钟与硬件时钟
hwclock [-选项]
-s:把硬件时间设置成系统时间
-w:把系统时间设置成硬件时间
显示日历 cal
wc统计命令
wc命令用于统计文件的字节数、行数,并将统计的结果输出到屏幕
命令格式:wc [-选项] 文件名
常用选项:
- -c #统计字节数
- -l #统计行数
管道符
管道符“|”:将命令输出的结果交给另外一条命令作为参数继续处理
重定向操作
重定向操作:将前面命令的输出结果,写入到其他的文本文件中
重定向的表示符号
- ‘>’ #重定向输出(覆盖)
- ’>>‘#重定向输出(追加)
- <#输入重定向(覆盖)
- <<#输入重定向(追加)
- ‘>’只收集正确的输出结果
- 2>只收集错误的输出结果
- &>错误的正确的结果都收集
注:>附带创建文件按功能
echo命令与sleep命令
echo命令用于输出指定的字符串和变量
命令格式:echo [-选项] [参数]
sleep命令可以用来将目前动作延迟一段时间
命令格式:sleep 时间
常用选项:s 秒 m分钟 h小时 d日