Linux基础

一.Linux

1.简介

Linux系统是目前仅次于Windows的开源系统,并且拥有比Windows更广泛的的应用范围。

Windows:不开源(封闭的)。Linux:开源(它的底层源代码已经公布到互联网)

真正的Linux指的是系统内核(底层代码),我们常说的Linux是由内核开发出来的发行版本(基础应用软件)。

2.Windows与Linux对比

(1)稳定且有效率(它开源,而且操作方便)。

(2)免费开源(部分收费)。

(3)漏洞少且能快速修复。

(4)多任务多用户(Linux支持多个用户同时登录并且同时执行多个任务)。

(5)更安全的用户与文件权限策略(文件目录分配的权限很严格)。

3.Linux系统种类

CentOS:通过把红帽系统重新编译并发送给用户免费使用的Linux系统。

Debain:稳定性,安全性强,提供了免费的基础支持,在国外拥有很高的认可度和使用率。

ubantu:是一款派生于Debain的操作系统,对新款硬件具有极高的兼容能力。

二.Linux基础知识

1.简介

Linux生产环境是没有变化的。

终端连接服务器:通过SSH ssh root @IP地址就可以访问远程服务器,输入远程服务器密码进行身份验证。

shell:命令行环境,它是Linux中的一个程序,它接收到用户输入的命令,将命令传输到操作系统中执行,并将结果返回。

一个Linux中有多个shell,常见的shell:

Bash

Sh

Dash

Fish

Ksh

Csh

Zsh

命令行提示符:【root(用户名)@(主机名字) ~(~表示当前所在的位置是家目录,root的家目录为/root,普通用户的家目录为/home)】# $(指出你所具有的权力,#表示root用户,$表示普通用户)

2.Linux文件操作命令

pwd #显示当前所在目录的路径

ls #浏览文件与目录

ls -a 显示出所有目录与文件包括隐藏文件 ls -l 显示出详细列表 ls -t 按照文件最近一次修改时间排序 -h改变文件大小的书写格式

cd #切换目录

cd -返回上一次操作 cd ..跳到上级目录 cd ../../跳到上两级目录 cd /切换到根目录 cd ~切换到家目录 cd 不加任何参数,返回到家目录 cd ./home 跳转到当前目录下的home目录

绝对路径:从根目录开始/

相对路径:从当前目录开始./

cat #查看文件内容,适用较小的文件

tac#文件是倒着看

cat -n 显示行号

less #分页显示文件内容,适合查看大文件

空格 前进一页 b后退一页 d前进半页 u后退半页 q退出

head #显示文件开头几行(默认十行)

head 文件 -n 参数 指定查看行数

tail #显示文件后几行(默认十行)

tail 文件 -n 参数 指定行数 -f会每过一秒检查文件是否有更新内容

sed #显示文件中指定的行数(几到几)

sed -n '7,10p' test 查看test文件中的7到10行

mkdir #创建新目录

mkdir -p 创建递归目录 :mkdir -p A/B/C

touch #创建文件

vim #编辑文件内容

(1)交互模式

yy复制 p粘贴 dd剪切 d删除 u撤销 /string搜索

(2)插入模式(i)

(3)命令模式(:)

w保存 q退出 wq保存并退出 !强制动作

cp #复制文件或目录

cp * * 将文件一拷贝到文件二 -r递归复制,用来复制整个目录

mv #移动文件与目录或重命名

rm #删除文件

-i向用户确定是否删除 -f强制删除 -r递归删除

rm -rf /*禁止使用

ln #硬连接 ln -s #软链接

硬连接指的是A和B一起被分配到了一块内存下,修改A等于修改B;软链接指的是A指向B的内存(如同Windows的快捷方式)。

find #查找命令

按照文件名查找:find 路径 -name 文件名

根据文件最近访问时间查找:find -name 文件名 -atime 时间

仅查找目录type -d或文件type -f

grep #查找关键字

查看文件,在文件中查找关键字,并显示关键字所在行。

grep [关键字] [要搜索的文件]

-i忽略大小写 -n显示行号 -v只显示文本不存在的那些行 -r递归查找

which * whereis #查找程序安装位置

wget/ curl -o导出 git pip(python第三方库管理)#文件下载

tar -cvf #压缩文件 tar -xvf #解压文件 unzip

-c建立压缩档案 -x解压 -t查看文件

3.Linux网络操作命令

命令

功能

举例

nslookup

查询DNS记录,域名解析

nslookup www.baidu.com

ipconfig

查看用户配置信息,查看网络设置配置

ipconfig

ip addr

查找IP的相关信息

ip addr

ping

测试网络连通性

ping www.baidu.com

一般情况下会无限发包,此时用 -c * 选择发包数量

netstat -ano

查看网络端口开发情况与连接情况

netstat -ano

telnet

测试网络连接是否正常

telnet IP 端口号

hostname

查看主机名

hostname -f 显示完整的主机名和域名 hostname -i 显示当前机器的IP地址

ipconfig * down

关闭网络设备

ipconfig eth0 down

ipconfig * up

开启网络设备

ipconfig eth0 up

ps

查看静态进程

-ef 列出所有进程 -u 列出此用户运行的进程 -aux通过内存和CPU的使用来过滤进程

top

查看动态进程

top

pgrep

以名称为依据,查找进程并显示出进程号

-f模式参数进匹配进程名;-l列出进程名和进程ID;-u选择进匹配指定有效用户ID的进程

kill

杀死进程

kill [参数] [进程号] -9强制删除

nohup

隐藏进程

nohup [命令] &

service

服务管理命令

start启动服务;stop终止服务;status查看状态;restart重启服务;

systemctl

服务管理命令

systemctl start/restart/stop/status

clear

清屏

clear

env

查看环境变量

env

history

查看历史命令

history

init6 init0

重启

init0关机;init6重启

reboot

重启服务

reboot

shutdown

关机

*

w

查看当前在线的用户信息

w

whoami

查看当前用户是谁

whoami

id

查看用户的uid,gid的信息

id

&

同时进行多条命令,不管对与错都执行完成

*&*&*

&&

同时执行多条命令,前面有错误后面则不执行

*&&*&&*

|

管道;前面的输出作为后面命令的输入

*|*

>

输出重定向

*

>>

追加重定向

*

<

输入重定向

*

*

通配符;任意字符

*

?

通配符;单个字符

*

[]

通配符;选定字符范围

*

三.权限管理

1.用户及权限管理

Linux作为多用户多任务的操作系统,可以在同一时间内登录多个用户并执行多个任务,随着需求的增加,用户的增加,我们也就需要对用户进行管理。

同一计算机支持多个用户的同时登陆,并同时运行多个服务进程:

(1).运维账户:支持服务的启动与关闭,以及网络调试。

(2).网管账户:支持用户管理。

(3).测试账户:服务运行。

(4).开发账户:执行编辑更改执行。

2.查看用户信息

用户信息可以通过/etc/passwd来查看,一行代表一个用户。

用户信息的组成:【用户名称】:【用户密码】:【UID】:【GID】:【用户说明】:【家目录】:【登录的SHELL】

(1)【用户名称】

(2)【用户密码】:早期版本的密码是直接存放在这里的,后来为了兼容所以就保留了写来,用X代替。

(3)【UID】:用户ID,用户的唯一标识符。

UID为零,一般就是为管理员用户;

UID1-999一般为用户创建的服务用户,系统用户以及特殊用户;

UID1000-65535为普通用户的ID,一般普通用户的UID从1000开始。

(4)【GID】:把相同权限的用户都放到了一个组中进行统一管理。如果一个普通用户的gid=0,那么也能得到管理员权限。

(5)【用户描述】

(6)【家目录】:常见的家目录在/home/用户名下,也可以自己指定家目录的路径,root的家目录在/root下。

(7)【登陆的SHELL】:Linux默认的shell是在/bin/bash;特殊的 是/sbin/nologin不分配shell终端。

用户密码信息可以通过/etc/shadow命令来查看。

【用户名称】:【加密密码】:【最后一次修改密码的日期】:【两次修改密码的间隔】:【密码有效期】:【密码有效期到期的警告天数】:【宽限天数】:【账号失效时间】

(1)【用户名称】

(2)【加密密文】:采用SHA512散列加密算法。如果该字段为!!表示从来没设置过密码。

(3)【最后一次修改密码的日期】:该文件所有日期格式采用时间戳。

(4)【两次修改密码的间隔】:以10为代表,表示修改完成后下次修改的时间在10天后。

(5)【密码有效期】:密码需要重新修改的天数。

(6)【密码有效期到期的警告天数】:密码修改前的警告天数。

(7)【宽限天数】:密码过期后账号的宽限天数。

(8)【账号失效时间】:账号失效时间。

创建用户:useradd

参数:-u 指定用户UID;-g 指定用户初始所属的用户组;-G 指定用户所属的附加组;-m 强制需要创建家目录;-M 强制不需要创建家目录;-f 指定密码过期时间;-e 用户失效日期;-s 指定用户登录的shell解析器;-d 指定用户的家目录

直接写入创建:

openssl passwd -1 -salt admin 123456;#会给出密码的加密形式

echo 'admin0(用户名):(密码加密形式):0:0::/root::/bin/bash' >> /etc/passwd

设置密码:passwd 修改密码需要root权限

passwd 【参数】 <用户名>

-d 删除密码;-S 查询用户密码状态;-u 解锁用户密码;-l 锁定用户密码

删除用户:userdel

userdel 【参数】 <用户名>

-f 强制删除用户账户;-r 递归删除

切换登录用户:su

su 【用户名】

-c 仅执行一次命令,不切换用户身份

用户组管理命令:通常位于/etc/group

添加用户组:groupadd

groupadd 【参数】 <组名>

-g 创建的同时指定用户组ID

修改组属性:groupmod

groupmod【参数】 <组名>

-n 修改组名 groupmod new_group old_group;-g 修改新的GUI

设置用户组:gpasswd(用户组信息/etc/group)

gpasswd 【参数】 <组名>

-a 添加用户到组;-d 从组中删除

删除用户组:groupdel

groupdel 【参数】 <组名>

文件及文件夹权限管理:chmod

r ==读取文件的权限;w ==写入权限;x ==执行文件的权限;

r ==4;w ==2;x ==1;

u user 文件所有者;g group 文件所有者所在的组;o others 其他人;a all 所有用户。、

-代表文件;d代表目录;|代表软连接lrw-r--r-- l 链接文件

递归操作:-r chmod 【参数】 【u】【g】【a】【文件名或目录】

变更文件或目录的所有者或所属群组。

语法 chown [-r] [username]:[groupname] [filename]

四.磁盘管理

Linux磁盘分区类型

主分区:一块磁盘最多只有四个主分区。

扩展分区:每块硬盘最多只能有一个:主分区加扩展分区最多有四个;

三个主分区+扩展分区(逻辑分区)

扩展分区不能写入数据,只能包含逻辑分区。

逻辑分区

查看磁盘空间:df -h

Linux中主分区加扩展分区,最多只能有四个。

逻辑分区只能在扩展分区上。

查看磁盘:ls /dev/sd*

先 ls /dev/sd* 查看虚拟机原有的sd系统硬盘。

硬盘在Linux标识的命名规则:

*增加新硬盘*

(1)增加硬盘

先关闭CentOS虚拟机,在设置中添加硬盘。重启后用 ls /dev/sd*查看硬盘是否已经加上。

(2)Fidsk分区操作

a

调整磁盘的启动分区

p

显示当前磁盘的分区信息

d

删除磁盘分区

t

更改分区类型

l

显示所有支持的分区类型

u

切换所显示的分区大小的单位

m

查看所有指令的帮助信息

n

创建新分区

q

不保存更改,退出fdisk命令

w

把修改写入磁盘分区,然后退出fdisk命令

g

新建一个空的GPT分区表

o

新建一个空的DOS分区表

步骤:fdisk /dev/sdb

n

p

选择默认

w

此时在/dev/sdb下会出现sdb1

格式化操作:mkfs

mkfs|mkfs.xfs|mkfs.ext4 [选项] 分区的设备名

-t 文件系统类型,当命令名为mkfs时,指定要创建的文件系统的类型(如:xfs、ext4等)。

-c 建立文件系统前先检查坏块。

-V 输出建立文件系统的详细信息。

挂载使用:mount

删除分区:umount

五.补充

stat

用于显示文件或目录的信息

stat 【文件或者目录】

sort

将文件内容排序

sort -n 按照数字进行排序

sort -t 按照字典进行排序

last

last命令用于显示最近登录的用户信息。单独执行时,它会读取/var/log/wtmp的文件。last 【参数】 只显示【几】行。

sudo

sudo配置文件一般在/etc/sudoers中

通过修改大概100行左右的权限信息即可赋予

用户名 ALL=(ALL) ALL

计划任务

查看计划任务:crontab -l

编辑计划任务:crontab -e

删除计划任务:cronrab -r

查看指定用户的计划任务:crontab -u root -l

/etc/crontab配置文件中的格式为:

Linux运行级别

一般的Linux运行级别有七个,0-6

Linux0:系统停机状态,系统默认状态下是不能设置为0,否则不能正常启动。即为关机模式。

Linux3:完全的多用户状态(有NFS),登录后进入控制台的命令行模式。Linux很常见的运行级别。

Linux5:X11控制台,登录后进入图形的GUI模式。就是图形模式。

Linux6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。

配置静态IP地址

首先用命令查找自己的网络配置信息。(ip addr)

sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0(配置文件)

如果不存在可以用下列命令创建一个

sudo touch /etc/sysconfig/network-scripts/ifcfg-eth0

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

添加或者修改配置:

BOOTPROTO=static(设置为静态IP地址)

ONBOOT=yes(开启后就会自动启用该网卡)

IPADDR=(设置的静态IP地址)

NETMASK=(子网掩码)

GATEWAY=(网关)

DNS1=(DNS服务器)

DNS2=(备用DNS服务器)

sudo systemctl restart network(重启网络服务)

dhclient重新让DHCP分配IP地址

配置网卡时直接复制之前已有的网卡并且配置信息,删除UID以及修改名字。

ip a的命令可以查看网卡开放状态,如果关闭则打开。ipconfig * up/down

一些配置文件的路径

/etc/passwd存放用户信息的文件

/etc/shadow存放密码信息的文件

/etc/group存放用户组信息的文件

/etc/yum.repos.d/存放YUM源

/dev/sd*存放硬盘信息

/etc/crontab存放计划任务配置文件

/etc/hosts存放域名与IP地址之间的对应关系

/etc/services存放网络服务端口的文件

/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件

/etc/fstab设置开机自动安装文件系统的文件

.bash_history ls -a history存放历史命令文件

/var/log/secure (redhat¢os)

/var/log/auto.log(debian&ubantu)ssh日志文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值