目录
Linux介绍
Linux内核:是一个Linux系统的内核,而不是一个操作系统
Linux操作系统:RedHat,Ubuntu等才是操作系统的名字,他们都使用Linux内核,我们常常把它们笼统的称为Linux操作系统。
Linux的应用
服务器:Linux做服务器操作系统是它的强项,市面上90%的服务器都是Linux;
移动终端:底层是Linux的安卓系统的移动端的 穿戴设备,Linux作为核心系统是首选;
大数据:大数据需要大量的计算,需要消耗大量的内存和CPU的资源。对于没有图形界面的Linux来说,无疑是最好的选择;
云计算:云计算将是未来数据和用户虚拟系 统的管理,就需要使用Linux作为服务器
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
为什么学习Linux命令,不直接使用图形化界面;
因为在实际开发中,服务器往往不会安装图形化界面,维护人员需要使用命令来进行维护;
开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
Linux目录结构
linux目录结构是树状的,如下图所示:(该图来自于菜鸟教程)
以下是对这些目录的解释:
/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/tmp:这个目录是用来存放一些临时文件的。
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
除此之外还有很多:
/usr/bin: 系统用户使用的应用程序。
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/usr/src: 内核源代码默认的放置目录。
/www:存放服务器相关的资源、环境、网站的项目;
/srv:该目录存放一些服务启动之后需要提取的数据。
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
....................
Shell命令
基本的命令格式:
命令字 命令选项 参数选项
命令选项: -xxx
命令参数: 路径,或者文件名。
空格用来做分隔;
注:本文不会过多介绍命令选项,大家可以通过man手册查看;
关机
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
关机指令为:shutdown ;
shutdown –h 10 //计算机将在10分钟后关机
shutdown –h now //立马关机
shutdown –h 20:25 //今天20:25关机
shutdown –h +10 //十分钟后关机
shutdown –r now //立马重启
shutdown –r +10 //十分钟后重启
目录相关命令
常用目录管理命令:
- ls: 列出目录(dir)
- cd:切换目录(Change Directory)
- pwd:显示目前的目录、Print Working Directory 的缩写
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- cp: 复制文件或目录
- rm: 移除文件或目录
- mv: 移动文件与目录,或修改文件与目录的名称
属性相关命令
ls -l 可显示,各个信息的含义
文件类型:
- 当为[ - ]则是文件;
- 当为[ d ]则是目录;
- 若是[ p ]则表示为管道文件,解决多个程序同时访问一个文件所造成的错误问题;
- 若是[ l ]则表示为链接文档 ( link file );
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 );
- 若是[ s ]则是套接字文件,用于表示进程间网络通信的特殊文件类型;
文件权限:
[ r ]代表可读(read):二进制表示0001,数字表示1
[ w ]代表可写(write):二进制表示0010,数字表示2
[ x ]代表可执行(execute):二进制表示0100,数字表示4
[-]代表没有权限:二进制表示0000,数字表示0
修改文件属性常用命令:
chgrp:更改文件属组
chgrp [-r递归操作] 属组名 文件名
chown:更改文件属主,也可以同时更改文件属组
chown [–r] 属主名 文件名
chown [-r] 属主名:属组名 文件名
chmod:更改文件权限
chmod [-r] user 文件或目录
查看文本内容
Linux系统中使用以下命令来查看文件的内容:
- cat 第一行开始显示文件内容,只能用来查看
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只前几行
- tail 只后几行
- vim:linux自带的文本编辑器,理解为windows的文本文档,可查看可编辑
文件链接
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为软连接(Symbolic Link)。
硬连接:
ln kk1 /lnkk #将kk1文件做一个硬连接到 /lnkk
通俗来说,硬链接就是该文件直接指向磁盘空间地址,拿上面的命令为例:连接后,kk1指向了/lnkk的磁盘地址,此时,不管删除kk1或者/lnkk其中的任意一个,它依然可以访问;
软连接:
ln -s kk1 /lnkk #将kk1文件做一个软连接到 /lnkk
类似于windows的创建快捷键方式,当/lnkk删除时,kk1会变得无效;
账户管理
passwd :修改密码
useradd/adduser :新建用户
groupadd:新建组
id:查看用户id
磁盘管理
Linux磁盘管理常用命令为 df、du。
df(英文全称:disk free):列出文件系统的整体磁盘使用量
du(英文全称:disk used):检查磁盘空间使用量
注:与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。
进程管理
1、在Linux中,每个程序都是一个进程,每个进程都有一个pid;
2、每个进程都有一个父进程(被谁创建,最大systemd);
3、进程可以前台运行,也可以后台运行;
4、一般情况下,服务后台运行,基本程序前台运行,也可以人为的将基本程序挂到后台运行;
常用命令:
ps :查看进程
ps -aux:显示所有进程
ps -aux | grep xxx:过滤出所需进程
Pstree -pu:进程树(树状图显示进程,并显示pid,清除看出结构,推荐使用)
-bash-4.2$ pstree -pu
systemd(1)─┬─AliSecGuard(22057)─┬─{AliSecGuard}(22139)
│ ├─{AliSecGuard}(………)
│ └─{AliSecGuard}(18531)
├─AliYunDun(18504)─┬─{AliYunDun}(18505)
│ ├─{AliYunDun}(18525)
│ ├─{AliYunDun}(………)
│ └─{AliYunDun}(18540)
├─AliYunDunUpdate(18477)─┬─{AliYunDunUpdate}(18478)
│ ├─{AliYunDunUpdate}(………)
│ └─{AliYunDunUpdate}(18546)
├─agetty(1069)
├─agetty(1071)
├─aliyun-service(1061)─┬─{aliyun-service}(1072)
│ ├─{aliyun-service}(………)
│ └─{aliyun-service}(1088)
├─atd(1067)
├─auditd(490)───{auditd}(491)
├─chronyd(526,chrony)
├─crond(1066)
├─dbus-daemon(520,dbus)
├─dhclient(788)
├─java(16100)─┬─{java}(16108)
│ ├─{java}(16131)
│ ├─{java}(………)
│ └─{java}(27152)
├─lvmetad(369)
├─master(1049)─┬─pickup(31377,postfix)
│ └─qmgr(1053,postfix)
├─mysqld_safe(30347)───mysqld(31055,mysql)─┬─{mysqld}(31182)
│ ├─{mysqld}(………)
│ └─{mysqld}(29357)
├─polkitd(518,polkitd)─┬─{polkitd}(567)
│ ├─{polkitd}(………)
│ └─{polkitd}(572)
├─rsyslogd(1060)─┬─{rsyslogd}(1074)
│ └─{rsyslogd}(1153)
├─sshd(1062)─┬─sshd(16533)───sshd(16536,ape10016)─┬─bash(928)───sleep(933)
│ │ ├─bash(16537)───pstree(934)
│ │ └─bash(16556)───top(16606)
│ └─sshd(24614)───sshd(24640,ape10006)─┬─sftp-server(24662)
│ ├─sftp-server(.........)
│ └─sftp-server(24756)
├─systemd-journal(350)
├─systemd-logind(550)
├─systemd-udevd(375)
└─tuned(844)─┬─{tuned}(1089)
├─{tuned}(1090)
├─{tuned}(1092)
└─{tuned}(1094)
kill:关闭进程
kill -1 pid:重启进程
kill -9 pid:强制关闭进程
top:动态的查看进程信息,每5s刷新
挂起当前进程:ctrl+z
终止当前进程:ctrl+c
jobs:查看挂起的进程
fg 挂起编号:挂起编号调至前台执行
bg 挂起编号:挂起编号调至后台执行
nohup 命令 &:
&:&写在命令后;&是指将该命令在后台运行;
nohup:使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是ssh连接状态断开时(退出帐户时),作业就会停止运行。nohup命令可以在ssh连接状态断开之后继续运行相应的进程,默认情况下标准输出和标准错误会被重定向到 nohup.out 文件中。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:
nohup command &
负载查看
uptime :命令可以显示的信息显示如下图
free : 用于显示内存状态。
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
空闲内存:available = free + buffer(缓冲) + cache(缓存)
mpstat :CPU核状态(默认系统启动以来的平均值)
ifstat : 网卡网络状态
df :(英文全称:disk free):查看磁盘的使用率
vmstat:显示虚拟内存状态,显示进程、内存、I/O等系统整体运行状态
w:显示目前登录系统用户的信息
top:类似与windows的任务管理器实时更新(其他没有标注的在上文有讲解,不再绘图)
楼主饿的写不下去了,淦饭去,有缘更新