一 Linux发展史(了解)
Unix 作者 肯·汤姆逊 1970-1-1 计算机元年
Linux操作系统 内核(kernel)作者 林纳斯·托瓦斯 类Unix系统。http://www.kernel.org/下载最新的内核代码的内核,但是不能直接使用。
内核版本号由三个数字组成:r.x.y。r代表目前发布的内核版本;x为偶数时代表版本稳定,奇数时代表是开发中的版本;y表示错误修补的次数。如red hat的Linux的内核版本是2.4.18
Linux用户通过shell界面与内核进行交互,内核驱动硬件工作。
Linux发行版指的是Linux操作系统内核+应用软件的集合,如redhat,centos。Linux的企业版Redhat是收费的,社区版是不收费的
二 Linux系统安装与登录
1 安装虚拟机
1)新建虚拟机:选择centos 64位的;处理器:勾选Intel那一项;其他照常。
2)安装系统:开启虚拟机进入系统安装界面,选择第一项install。
安装时,更改时区位亚洲上海并更正时间——需要安装基础设施服务器或者GNOME——确定网卡存在——安装位置:
安装位置选择手动分区——/是根分区,swap分区是虚拟内存区,2048M。在/根分区下建立一个/boot(根下boot)分区,500M,用于存放Linux系统所需启动引导文件目录。实际上就是两个分区。分区之后也是需要进行格式化的。
/ sda3 |
Sda1 swap |
/boot (该分区属于/) Sda2 |
各个分区详情:
分区 |
分区大小 |
文件分区类型 |
文件系统类型 |
Swap |
2048M |
LVM |
swap |
/boot |
500M |
标准分区 |
Ext4 |
/ (根分区) |
剩余所有空间 |
标准分区 |
Ext4 |
安装过程中设置root账号的密码,如果密码弱的话需要点击两次完成。账户有两种类型:管理员(超级账户)root,普通用户。安装完成后,点击重启系统以登录。
2 登录操作系统
2.1 登录界面
CentOS Linux 7 (core):当前CentOS版本为Linux 7;
Kernel 3.10.0-229.el7.x86-64 on an x86-64. //0-229代表小补丁的次数,el 7指的是Linux 7,x86-64指的是支持的CPU类型,on an X86-64指的是安装的主机CPU属于X86-64;e后面是小写的L。3代表core的版本号,10是偶数代表是稳定版本,如果是奇数代表是开发中的版本。
Localhost:主机名; Login:输入当前登录账户名;
Password:输入当前登录账户的密码,输入时密码不会显示,就像什么都没输入一样。
界面可能会出现一个报错,如sda2:write same failed 。这是因为raid卡会自动将磁盘设置为raid0,raid1,或者raid5,而我们用的是虚拟机,没有raid卡,所以才会报错。真实操作时不会报错。
2.2 登录成功后:【root@localhost ~】#
Root:用户名; @:分隔符; ~代表当前处于家目录;localhost:主机名;#:root账号的命令提示符;$:普通账号的命令提示符。
2.3 Linux的目录介绍
Linux中的目录相当于Windows系统中的文件夹。
目录名称 |
功能介绍 |
/ 根目录 |
总目录 |
/etc |
存储服务的配置文件 |
/dev |
存储设备文件 |
/boot |
存储系统启动相关文件 |
/root |
Root用户的家目录 |
/usr |
第三方软件所在目录 |
/var |
存放系统变量文件 |
/proc |
存放当前系统内存中的数据 |
/run |
存放当前系统运行的相关文件 |
/tmp |
存放系统临时文件 |
/home |
普通用户的家目录 |
/bin与/sbin |
存放当前系统使用的命令 |
/lib与/lib64 |
存放当前系统用的一些库文件 |
lost+found |
存放损坏和丢失的文件 |
三 基本命令
1 常用命令
1.1 查看当前操作系统的版本:
cat /etc/redhat-release //cat用来查看当前路径下文件的内容
cat 文件名 //查看当前目录下文件的内容
1.2 常用的命令
1)clear 清屏;可以使用Ctrl+l 来实现clear的功能;
2)使用Tab键可以进行命令法人补全以及补全文件的路径,Q进行退出;
3)Ctrl+c 用于终止当前运行的命令;
4)使用键盘上的上下键可以回滚历史命令
1.3 防火墙的查看与关闭
1)查看当前防火墙状态 #systemctl status firewalld
//如果防火墙处于active(running)状态,说明防火墙处于开启状态。
2)关闭防火墙 #systemctl stop firewalld
//关闭后,用systemctl status firewalld查看,可见防火墙状态为inactive(dead)状态。Loaded后面的disable代表开机不自启
3)禁止防火墙开机启动 #systemctl disable firewalld
1.4 SELinux的查看与关闭
1)查看SELinux的状态:#getenforce //如果状态为enforcing或passive代表selinux已经开启
2)通过编辑配置文件关闭SELinux
#nano空格/etc/selinux/config 找到SELinux=enforcing,把它改为SELinux=disabled。然后按Ctrl+x退出,然后按y保存,然后按回车键退出nano。
#reboot重启 ,重启后再次用#getenforce查询SELinux状态。如果状态为disabled则代表SELinux关闭成功。
关机并拍摄虚拟机快照。关机:#halt -p ,poweroff,init 0 ,shutdown空格–h。
1.5 关机与重启命令
命令 |
选项 |
功能 |
halt |
-p |
关闭计算机时关闭电源 |
poweroff |
-p |
关闭计算机时关闭电源 |
shutdown |
-h |
关闭计算机时关闭电源 |
-r |
重启计算机 |
|
-c |
取消已在执行的关机动作 |
|
reboot |
系统重启 |
|
Init |
0 |
关机 |
6 |
重启 |
1.6 Linux的启动分为7个运行级别
级别 |
说明 |
0 |
关机 |
1 |
单用户 |
2 |
多用户级别(无NFS) |
3 |
多用户级别(字符界面,是默认级别) |
4 |
未定义 |
5 |
图形化、多用户 |
6 |
重启 |
2 文件管理命令
2.1 对目录进行管理
2.1.1 查看路径与切换路径
pwd 用来查看当前工作路径; cd 目录名 //切换当前的工作路径;
cd空格. //切换至当前目录 cd .. //切换至上层目录
cd - //切换至上次的工作目录 cd //后面什么都不跟就是回到家目录
绝对路径:从/开始的完整路径;相对路径:相对于当前所在目录的路径。
2.1.2 查看目录与目录内容
1)ls 查看当前目录下的内容,要查看非当前目录下的内容就要写绝对路径。
如果目录下没有内容,用ls查看后不会有任何答复
2)ls –a 查看当前目录下的所有内容,包含隐藏的内容。在Linux中,所有名称以“.”开头的目录或文件,被称为隐藏目录或文件。
白色 |
普通文件 |
蓝色 |
目录 |
绿色 |
可执行文件 |
淡蓝色或天青色 |
连接文件 |
红色 |
压缩文件或损坏文件 |
3) ls –l 以长格式显示显示当前目录下的文件或目录属性 简写为ll。结果中:
开头有十个”-“。第一个”-“代表的文件类型:
- |
普通文件 |
b(block) |
块设备文件 |
d(directory) |
目录 |
p(panel) |
管道文件 |
c(character) |
字符设备文件 |
l (link) |
连接文件 |
连接文件:一个文件是另一个文件的快捷方式,分为硬连接和软连接。硬连接与源文件共享iNode,源文件删除后硬连接文件依然有效;软连接与源文件不共享iNode,源文件删除后软连接就失效。
文件系统怎么存储文件:由i节点(存文件属性及文件所在的block块位置),block块(存文件)和超级块(记录没使用的i节点与block还剩多少)组成。
a) 创建连接文件 ln (也是在当前目录下创建吗?如果不是当前目录下是不是也要写绝对路径?)
软连接:ln -sf 源文件 连接文件 //f代表强制创建,会覆盖之前的;
硬连接:ln -f 源文件 连接文件,
b) 查看当前目录下某文件的iNode号: #ls –i 文件名
设备文件:Linux将所有的硬件设备识别为文件存储在/dev下
字符设备:顺序存储设备,比如磁带
块设备:随机存储设备,比如硬盘
- 后面的九个”-“代表文件的权限:
- 用户身份识别:属主u为文件的所有者,属组g为文件的所有组(用户组),其他人o为除去文件的属主与属组所剩的人,所有人a包括属主、属组和其他人
- 权限识别:读 r 4 写 w 2 执行 s 1
因此,后面的九个”-“代表属主对该文件的权限,属组对对该文件的权限,其他人对该文件的权限, 每个角色有三个”-“。
- 文件后面有个点的代表这个文件归SELinux管。
- 数字代表文件的硬连接数。
- 再后面是属主 属组 文件大小 // #ll –h能具体看见单位,以人性化形势显示。
- 文件的最后修改时间 文件名/目录名
总结ll 或ll –h的显示结果代表:
文件类型+属主权限+属组权限+其他人权限.+硬连接数+文件属主+属组+文件大小+文件修改时间+文件名
4)在当前目录下创建目录
mkdir 目录名 //在当前目录下创建目录,如果不是当前目录下就要写上绝对路径
mkdir –pv 多级目录
//创建多级目录,v代表查看创建目录的效果
例1:mkdir –pv ./a/b/c //这个是在当前目录下创建了多级目录a
例2:mkdir –pv /a/b/c //这个是在根目录下创建了多级目录a
注:mkdir后面最好跟绝对路径,mkdir /etc/aa,//代表在etc下创建aa文件夹,/etc这个目录本身就存在,只是aa不存在,所以不用加-p参数
5)查看当前目录下某目录属性:ll –d +目录名
6)删除当前目录下的目录:
rmdir 目录名 //只能删除空目录,即这个目录下没有东西
rm –rf 目录名/文件名 (空格 目录名/文件名) )
//直接删除目录或文件,包括里面的内容,慎用。删除多个文件或目录时直接在后面加上
rm –rf * //删除当前目录下的所有内容,千万不能瞎整
rm –rf f* //删除当前目录下所有以f开头的文件或目录
rm –rf+绝对路径 //可以删除路径下的文件
7)转移当前目录下的某目录(剪切):
mv 目录 /目标目录 //不是当前目录下也要写绝对路径。
mv 原目录名 新目录名
//可以使用 mv 对文件或目录重命名,对里面的内容无影响。
8)复制某目录
cp –r 目录名 /目标目录
//当前目录下?如果不是当前目录下也要写绝对路径?
cp 原文件/目录 新的文件/目录,
//使用cp对文件或目录进行重命名,对于目录,要在命令后加上 –r参数才行。
2.2 对当前目录下的文件进行管理
1)创建文件(笔记中的多数命令,默认是在当前目录下的命令格式,如果要改其他目录下的就加绝对路径)
touch 文件名 //修改文件时间戳,如果文件不存在则创建一个
touch 目录/文件名 //在目录下创建文件
touch 目录/.文件 //在目录下创建隐藏文件
nano 文件名 //编辑一个文件,如果文件不存在,则创建该文件并编辑其内容。退出nano,Ctrl+x退出,是否保存退出:Y是 N 否,此时不分大小写;保存文件名:Enter
vim 文件名 (以后讲)
echo 文件内容 > 文件名 //将指定输出内容重定向到指定文件
echo 内容 //将指定内容输出到屏幕显示;
echo > //输出重定向,将原本要输出至屏幕的内容重定向到其他文件中(覆盖)
echo >> //输出重定向,将原本要输出至屏幕的内容重定向到其他文件中(追加)
2)查看当前目录下的文件内容
cat 文件名 //只适用于查看内容较少的小文件
cat –n 文件名 //查看文件时显示文件行号
less 文件名 //查看文件内容,键盘上下键用来上下查看内容,按Q退出
more 文件名 //查看文件内容 more /etc/profile,Enter是向下翻页,B用于向上翻页,Q是退出
head –n行数 文件名 //查看文件前几行
tail –n行数 文件名 //查看文件后几行
head –n3 f1 | tail –n1 // | 管道符,前一个命令的输出作为后一个命令的输入,该命令为查看f1 的第三行
tail –f //循环查看,
tail -f /var/log/messages //看Linux系统日志文件,可能会不断地出现动态日志, 用Ctrl+c就能停止。
3)删除当前目录下的文件
rm 文件名 //给出提示,删除文件
rm –v 文件名 //-v显示删除的动态结果
rm –rf 文件名 //没有提示,直接删除文件或目录
4)转移当前目录下的文件(剪切)——mv 文件 目标目录
例: mv /tem/f1 /tem/f2
//把tem里面的f1重命名为f2,其他命令以此类推。对非当前目录下的文件进行处理时,一定得写绝对路径。
mv 文件名 新文件名 //对文件重命名
5) 复制当前目录下的文件
cp 文件 目标目录
cp 文件名 新文件名 //对文件重命名
3 其他命令
3.1 时间
1) date //显示当前系统的时间
date > f1 //把系统时间输入到f1
date ”变量” //以指定的格式显示当前系统时间,加号与双引号之间不要有空格
date 月日时分秒年 //修改当前系统时间。月日时分年都为两位,中间没有空格。
date –d “-1year +9day” //查看一年前的九天后是星期几。用不到。
2) 显示硬件时间
hwclock //在芯片里存储,可能和系统时间不一样,但是可以改成一样的
hwclock – hctosys //将系统时间改为硬件时间
3) 选择时区 tzselect
4)设置系统时间及日期或时区
timedatectl //能看到本地时间与标准时间以及时区
timedatectl set-ntp //将系统时间同步至NTP,有网时才能成功
NTP( network time protocol) 网络时间协议 //让所有电脑时间统一,搭建NTP服务器,所有人都使用该服务器时间。Windows的NTP就是www.time.windows.com。
timedatectl set-timezone 时区 //设置时区
5)查看日历:cal
3.2 查看二进制文件
1) #strings +二进制(binary)文件名
系统使用的命令大多数都是一个可执行程序,这些程序都是二进制文件存储在/bin (普通用户)和/sbin(超级用户)/usr/bin ;/usr/sbin 目录下。usr——Unix soft resource
注意:退出目前用户登录:exit
- #file 文件名/目录
//确定文件/目录类型。二进制文件是cat看不了的,会出现乱码。
3)#stat 文件名/目录 //查看文件/目录的详细属性信息
3.3 特殊符号
| 管道符 //前一个命令的输出作为后一个命令的输入
“”双引号 //双引号内的内容,普通归普通,特殊归特殊
‘’单引号 //单引号内的内容都作为普通字符
`` 反引号(和~在一个按键上) //反引号内的内容都作为命令
例: a=ls
echo “$a” 输出的是字母 ls
echo ‘$a’ 输出普通字符 $a
echo `$a` 输出运行ls的结果
注1:= 是赋值操作符,a=1,把1赋值给变量a,变量是用来存储数据的
注2:echo $a //调用变量a的值
转载请注明出处,谢谢!