linux基础

文章目录 收缩

分区设备文件名

设备文件名
/dev/hda1(IDE硬盘接口)
/dev/sda1(SCSI硬盘接口、SATA硬盘接口、USB接口)

hdsd代表接口接口类型。a代表是第一块硬盘,第二块硬盘就以b命令,以此类推。1代表是第一个分区。

配置网络

vmware 网络连接模式区别:

查看NAT模式网关地址:


设置IP时,注意避开.1和.2的IP。

centos6.8版本,使用setup工具配置。在命令行中输入:

setup

重启网卡:

service network restart

  • CentOS7版本
    centOS 7里面,setup已经没有网络设置的功能了。要进行网络配置,要使用nmtui命令
    选择编辑连接

选择eth0

配置ip及网关

配置好后,返回

选择启用连接,激活

目录结构

目录名 目录的作用
/bin/ 存放系统命令的目录,普通用户和超级用户都可以执行。是/usr/bin/目录的软链接
/usr/bin/ 存放系统命令的目录,普通用户和超级用户都可以执行
/sbin/ 存放系统命令的目录,只有超级用户才可以执行。是/usr/sbin/目录的软链接
/usr/sbin/ 存放系统命令的目录,只有超级用户才可以执行
/boot/ 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)
/dev/ 设备文件保存位置
/etc/ 配置文件保存位置。系统内所有采用默认安装方式(rpm安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home/ 普通用户的家目录。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的家的目录,所有普通用户的宿主目录是在/home/下建立一个和用户名相同的目录。如用户user1的家目录就是/home/user1/
/lib/ 系统调用的函数库保存位置。是/usr/lib/的软链接
/lib64/ 64位函数库保存位置
/lost+found/ 当系统意外奔溃或机器意外关机,而产生一些文件碎片放在这里。
/media/ 挂载目录。系统建议是用来挂载媒体设备的,如软盘和光盘
/misc/ 挂载目录。系统建议是用来挂载NFS服务的共享目录
/mnt/ 挂载目录。早期linux只有这一个挂载目录,并没有细分。建议用力啊挂载额外的设备,如U盘、移动硬盘和其他操作系统的区分
/opt/ 第三方安装的软件保存位置。放置和安装其他软件的位置。但一般习惯安装在/usr/local/目录中
/root/ root的宿主目录。普通用户宿主目录在/home/下
/tmp/ 临时目录。存放临时文件的目录
/usr/ 系统软件资源目录。注意usr不是user的缩写,而是“UNIX Software Resource”的缩写,所以不是存放用户数据的目录,而是存放系统软件资源的目录。系统中安装的软件大多数保存在这里
/usr/lib/ 应用程序调用的函数库保存位置
/usr/local/ 手工安装的软件保存位置。建议源码包软件安装在这个位置
/usr/share/ 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
/usr/src/ 源码包保存位置。手工下载的源码包和内核源码包都可以保存在这里。一般习惯把手工下载的源码包保存到/usr/local/src/目录中
/var/ 动态数据保存位置。主要保存缓存、日志以及软件运行所产生的文件
/var/log/ 系统日志保存位置
/var/lib/ 程序运行中需要调用或改变的数据保存位置。如MySQL的数据库保存在/var/lib/mysql/目录中
/var/run/ 一些服务和程序运行后它们的PID(进程ID)保存位置。是/run/目录的软链接
/var/spool/ 放置队列数据的目录。就是排队等待其他程序使用的数据,比如邮件队列和打印队列
/var/spool/mail/ 新收到的邮件队列保存位置。系统新收到的邮件会保存在此目录中
/var/spool/cron/ 系统的定时任务队列保存位置。系统的计划任务会保存在这里

权限

一共10位。
第1位的代表文件类型:
– “-”:普通文件
– “b”:块设备文件。如分区文件/dev/sda1就是这种文件
– “c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。
– “d”:目录文件。
– “l”:软链接文件。
– “p”:管道符文件。非常少见的特殊设备文件
– “s”:套接字文件。

后9位,每3位一组,第1组为用户(u)的权限,第2组为用户组(g)的权限,第3组为其他用户(o)的权限。

给某个文件的所有者添加执行权限:

chmod u+x file

常用命令

find

find 搜索路径 [选项] 搜索内容
选项:
-name:按照文件名搜索
-iname:按照文件名搜索,不区分文件名大小写
-inum:按照inode号搜索

例子:
查找当前文件下文件名为abc的文件

find . -name abc

查找当前文件下文件名包含abc的文件

find . -name "abc*"

netstat

统计正在连接的网络连接数量

netstat -an | grep "ESTABLISHED" | wc -l

别名

#查询命令别名
alias

#设定命令别名
alias 别名='原命令'

例如alias vi=’vim’

用命令定义的别名,是临时生效的,要想永久生效,需要写入环境变量配置文件~/.bashrc

常用快捷键

快捷键 作用
ctrl+C 强制终止正在执行的命令。
ctrl+U 删除或剪切光标之前的命令
ctrl+Y 粘贴ctrl+U剪切的内容
ctrl+L 清屏,相当于 clear 命令
ctrl+A 把光标移动到命令行开头。
ctrl+E 把光标移动到命令行结尾。

vim命令

撤销:u
反撤销:ctrl+r
删除单行:dd
删除多行:ndd
粘贴到光标后:p
粘贴到光标前:P(大P)
删除单个字母:x
移动到文件头:gg
移动到文件尾:G(大G)
移动到行首:^
移动到行尾:$
移动到第几行::n
复制单行:yy
复制多行:nyy
例如光标停留在222这行,在命令模式下,按3yy,将会复制222,333,444这三行

vim 配置文件

显示行号::set nu
取消显示行号::set nonu

设置参数都只是临时生效,一旦关闭文件再打开,又需要重新输入。如果想要
永久生效,需要手工建立 vim 的配置文件~/.vimrc,把你需要的参数写入配置文件就永久生效了。

查找

/ 查找内容 从光标所在行向下查找
? 查找内容 从光标所在行向上搜索
n 下一个
N 上一个

软件包安装

软件包分类

  • 源码包
  • 二进制包

RPM 包安装

rpm –ivh 包全名

选项:
-i install 安装(install)
-v 显示更详细的信息(verbose)
-h 打印#显示安装进度(hash)

RPM 包升级

rpm –Uvh 包全名

RPM 包卸载

rpm -e 包名

RPM 包查询

rpm –q 包名

服务启动

第一种方式:

service 服务名 start|stop|restart|status

第二种方式:

/etc/rc.d/init.d/文件名 start|stop|restart|status

service命令实际也是找/etc/rc.d/init.d/目录

rpm包在线安装(yum安装)

yum源文件解析

yum 源配置文件保存在/etc/yum.repos.d/目录中,文件的扩展名一定是*.repo。也就是说,yum 源配置文件只要扩展名是*.repo就会生效

[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo

这个目录中有 5 个 yum 源配置文件,默认情况下 CentOS-Base.repo 文件生效。

yum命令

1)查询
查询 yum 源服务器上所有可安装的软件包列表。

yum list

查询 yum 源服务器中是否包含某个软件包

yum list 包名

搜索 yum 源服务器上所有和关键字相关的软件包

yum search 关键字

例如:

[root@localhost ~]# yum search ifconfig
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
=========================================================== 匹配: ifconfig 
===========================================================
net-tools.x86_64 : Basic networking tools

yum search 搜索可以用于确定某个软件在哪个相关包当中。此例子可以确定“ifconfig”命令
需要安装“net-tools”包。

2)安装

yum -y install 包名

选项:
install 安装
-y 自动回答 yes。如果不加-y,那么每个安装的软件都需要手工回答 yes

3)升级

yum -y update 包名

4)卸载

 yum remove 包名

源码包安装

(1)下载软件包。
(2)解压缩。
(3)进入解压目录。
(4)./configure 编译前准备
这一步主要有三个作用:
① 在安装之前需要检测系统环境是否符合安装要求。
② 定义需要的功能选项。“./configure”支持的功能选项较多,可以执行“./configure –help”
命令查询其支持的功能。一般都会通过“./configure –prefix=安装路径”来指定安装路径。
③ 把系统环境的检测结果和定义好的功能选项写入 Makefile 文件,后续的编译和安装需要依
赖这个文件的内容。
需要注意的是,configure 不是系统命令,而是源码包软件自带的一个脚本程序,所以必须采用
“./configure”方式执行(“./”代表在当前目录下)。
(5)make 编译
make 会调用 gcc 编译器,并读取 Makefile 文件中的信息进行系统软件编译。编译的目的就是把
源码程序转变为能被 Linux 识别的可执行文件,这些可执行文件保存在当前目录下。编译过程较为耗
时,需要有足够的耐心。
(6)make clean:清空编译内容(非必需步骤)。
如果在“./configure”或“make”编译中报错,那么我们在重新执行命令前一定要记得执行 make
clean 命令,它会清空 Makefile 文件或编译产生的“.o”头文件。
(7)make install: 编译安装
这才是真正的安装过程,一般会写清楚程序的安装位置。如果忘记指定安装目录,则可以把这个
命令的执行过程保存下来,以备将来删除使用。

删除
源码包没有删除命令,如果需要删除,直接删除安装目录即可。

进程管理

ps

查看正在执行的进程:

ps aux

选项:
a: 显示一个终端的所有进程,除了会话引线
u: 显示进程的归属用户及内存的使用情况
x: 显示没有控制终端的进程

top

第一行信息为任务队列信息,具体内容如下表所示:

内容 说明
20:12:28 系统当前时间
27 days, 3:57 系统的运行时间,本机已经运行 27 天 3 小时 57 分钟
1 users 当前登录了1个用户
load average: 0.15, 0.17, 0.15 系统在之前 1 分钟,5 分钟,15 分钟的平均负载。如果 CPU 是单核,则这个数超过 1,就是高负载。如果 CPU 是四核,则这个数超过 4,就是高负载。(这个平均负载完全是个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数。)

第二行为进程信息,具体内容如下表所示:

内容 说明
Tasks: 200 total 系统中的进程总数
1 running 正在运行的进程数
199 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程。如果不是 0,需要手工检查僵尸进程

第三行为 CPU 信息,具体内容如下表所示:

内容 说明
%Cpu(s): 3.0 us 用户模式占用的 CPU 百分比
0.8 sy 系统模式占用的 CPU 百分比
0.0 ni 改变过优先级的用户进程占用的 CPU 百分比
96.0 id 空闲 CPU 的 CPU 百分比
0.2 wa 等待输入/输出的进程的占用 CPU 百分比
0.0 hi 硬中断请求服务占用的 CPU 百分比
0.0 si 软中断请求服务占用的 CPU 百分比
0.0 st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行为物理内存信息,具体内容如下表所示:

内容 说明
Mem: 8010460 total 物理内存的总量,单位 KB
125808 free 空闲的物理内存数量
4539692 used 已经使用的物理内存数量
3344960 buff/cache 作为缓冲的内存数量

第五行为交换分区(swap)信息

内容 说明
Swap: 0 total 交换分区(虚拟内存)的总大小
0 free 空闲交换分区的大小
0 used 已经使用的交互分区的大小
3089484 avail Mem 作为缓存的交互分区的大小

杀死进程

kill 命令

kill [信号] PID

例:使用“-1”信号,让进程重启

kill -1 2246

让进程id为2246的进程重启动

例:使用“-9”信号,让进程强制关闭

kill -9 2246

killall 命令

杀死一组进程

killall [选项][信号] 进程名

选项:
-i: 交互式,询问是否要杀死某个进程
-I: 忽略进程名的大小写

例:杀死apache的所有进程

killall -9 httpd

pkill 命令

pkill 命令和 killall 命令非常类似,也是按照进程名来杀死进程。格式如下:

pkill [选项] [信号] 进程名

选项:
-t 终端号: 按照终端号踢出用户

例:
通过w命令查看当前有多少个用户登录:

正在执行w命令的为当前登录的用户

踢掉pts/2登录的用户:

pkill -9 -t pts/2

定时任务

crontab

crontab 命令需要 crond 服务支持,确保已启动crond服务

检查crond服务是否运行

ps aux | grep crond

启动crond服务

service crond start

设定 crond 服务为开机自启动

chkconfig crond on

通过命令设置定时任务

crontab [选项]

选项:
-e: 编辑 crontab 定时任务
-l: 查询 crontab 任务
-r: 删除当前用户所有的 crontab 任务,如果有多个任务,只想删除一个,可
以所以用“crontab -e”
-u 用户名: 修改或删除其他用户的 crontab 任务。只有 root 可用

crontab -e
项目 含义 范围
第一个“*” 一小时当中的第几分钟 0-59
第二个“*” 一天当中的第几小时 0-23
第三个“*” 一个月当中的第几天 1-31
第四个“*” 一年当中的第几月 1-12
第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)

特殊符号:

特殊符号 含义
* 代表任何时间。比如第一个*就代表一小时中每分钟都执行一次的意思。
, 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的 8 点 0 分,12 点 0 分,16 点 0 分都执行一次命令
代表连续的时间范围。比如“0 5 * * 1-6 命令”,代表在周一到周六的凌晨 5 点 0 分执行命令
*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10 分钟就执行一遍命令

通过修改配置文件设置定时任务

配置文件路径:/etc/crontab

发表评论

电子邮件地址不会被公开。 必填项已用*标注