centos基本命令及操作

1:基本知识

1.1:家目录作用

/

处于linux系统树形结构的最顶端,它是linux文件系统的入口,所有的目录、文件、设备都在 / 之下

/bin

bin是Binary的缩写。常用的二进制命令目录。比如 ls、cp、mkdir、cut等;和/usr/bin类似,一些用户级gnu工具

/boot

存放的系统启动相关的文件,例如:kernel.grub(引导装载程序)

/dev

dev是Device的缩写。设备文件目录,比如声卡、磁盘……在Linux中
一切都被看做文件。终端设备、磁盘等等都被看做文件 
设备文件: /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/cdrom

/etc

常用系统及二进制安装包配置文件默认路径和服务器启动命令目录 
passwd 用户信息文件
shadow  用户密码文件
group 存储用户组信息
fstab 系统开机启动自动挂载分区列表
hosts 设定用户自己的IP与主机名对应的信息

/home

普通用户的家目录默认存放目录 

/lib

库文件存放目录,函数库目录

/lost+found
只有centos6存在

默认为空,被FSCK(file system check用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查)用来放置零散文件(没有名称的文件) 当系统非法关机后,这里就会存放一些文件。
在centos6版本下,每个分区的挂载点下会有些目录

/mnt
/media

一般用来临时挂载存储设备的挂载目录,比如有cdrom、U盘等目录
在CENTOS7中会挂载到/run下面

/opt

表示的是可选择的意思,有些软件包也会被安装在这里 

/proc

操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。因此,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里 
查看咱们的CPU信息 
cat /proc/cpuinfo

/sys

系统目录,存放硬件信息的相关文件

/run

运行目录,存放的是系统运行时的数据,比如进程的PID文件

/srv

服务目录,存放的是我们本地服务的相关文件

/sbin

大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的  

/tmp

该目录用于存放临时文件,有时用户运行程序的时候,会产生一些临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和该目录的作用是相似的,不能存放重要数据,它的权限比较特殊 
[root@network ~]# ls –ld /tmp
drwxrwxrwt 10 root root 12288 Oct 3 20:45 /tmp/ 粘滞位(sticky bit)目录的sticky位表示这个目录里的文件只能被owner和root删除

/var

系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是一些变化的文件。比如/var下有/var/log目录用来存放系统日志的目录,还有mail、/var/spool/cron 

/usr

存放应用程序和文件,
/usr/bin 普通用户使用的应用程序
/usr/sbin 管理员使用的应用程序
/usr/lib 库文件Glibc(32位)
/usr/lib64 库文件Glibc

/lib
/lib64
都在/usr/目录下

这个目录里存放着系统最基本的动态链接共享库,包含许多被/bin/和/sbin/中的程序使用的库文件,目录/usr/lib/中含有更多用于用户程序的库文件。作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
注:lib***.a是静态库
     lib***.so是动态库
静态库在编译时被加载到二进制文件中
动态库在运行时加载到进程的内存空间中
简单的说:这些库是为了让你的程序能够正常编译运行的
其实类似于WIN中.dll文件,几乎所有的应用程序都需要用到这些共享库

2:用户与组

1.用户的分类
Linux用户三种角色
超级用户:root拥有对系统的最高的管理权限UID=0
系统用户:它是具有一定特权的用户,它们一般不需要用来登录系统
本地用户:具有一些普通权限,进行日常维护

UID的概念
系统用户UID:1-999(linux7版本) 1-499(linux6版本)
本地用户UID:1000+(linux7版本) 500+(linux6版本)
UID:是每个用户的身份标示,类似于每个人的身份证号码


用户配置文件

/etc/passwd

注释:记录了每个用户的一些基本属性,并且对所有用户可读,每一行记录对应一个用户,每行记录通过冒号进行分隔
文件内容结构
在这里插入图片描述
由于passwd不再保存密码信息,所以用x占位代表。


用户组文件

/etc/group

注释:用户组的所有信息存放地儿,并且组名不能重复


用户对应的密码信息

/etc/shadow

注释:因为passwd文件对所有用户是可读的,为安全起见把密码从passwd中分离出来放入这个单独的文件,该文件只有root用户拥有读权限,从而保证密码安全性

该文件只有root用户可以访问采用MD5加密算法
在这里插入图片描述


2.1:用户管理
添加用户
useradd 用户名

-c	 		注释用户设置对账户的注释说明文字
-d		    主目录指定用来取代默认的/home/username的主目录
-m			若主目录不存在,则创建它。-r与-m相结合,可为系统账户创建主目录 
-M			不创建主目录
-e date 	指定账户过期的日期。日期格式为MM/DD/YY
-f days 	帐号过期几日后永久停权。若指定为-,则立即被停权,若为-1,则关闭此功能
-g 			用户组 指定将用户加入到哪个用户组,该用户组必须存在
-G 			用户组列表 指定用户同时加入的用户组列表,各组用逗分隔
-n			不为用户创建私有用户组
-s shell	指定用户登录时使用的shell,默认为/bin/bash
-r			创建一个用户ID小于500的系统账户,默认不创建对应的主目录
-u 			用户ID手动指定新用户的ID值,该值必须唯一,且大于499
-p password 为新建用户指定登录密码。此处的password是对应登录密码经MD5加密后所得到的密码值,不实真实密码原文,因此在实际应用中,该参数选项使用较少,通常单独使用passwd命令来为用户设置登录密码。
useradd -r -d 用户路径 用户名

删除用户
userdel 用户名

-r	为可选项,若带上该参数,则在删除该账户的同时,一并删除该账户对应的主目录。

设置用户密码
passwd 用户名

-d 		删除用户密码
-l 		锁定用户密码
-u 		解锁账户密码
-S		要查询当前账户的密码是否被锁定

2.2:用户组管理
创建用户组
groupadd 用户组名

若命令带有-r参数,则创建系统用户组,该类用户组的GID值小于1000;
若没有-r参数,则创建普通用户组,其GID值大于或等于1000

删除用户组
groupdel 用户组名


用户添加到指定的组,使其成为该组的成员

gpasswd -a  用户账户	用户组名

从用户组中移除某用户

gpasswd -d 用户账户	用户组名

添加用户组管理员
gpasswd -A 用户账户 要管理的用户组


2.1:用户组的权限

设置文件或目录的拥有者

chown 用户名:用户组  文件夹或文件

2.修改文件或文件夹权限
chmod 权限 文件或文件夹

u =用户(user),g=组(group),o=其他(other),a=所有(all) 
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

r   w   x
4   2   1

r w x 的含义,
r(read)是只读权限,w(write)是写的权限,x(execute)是可执行权限,
---是没有任何权限。

3:防火墙

4:文件的增删改查

查看文件
命令:ls

ls【选项】目录或文件
	-a显示所有文件(包括隐藏文件)
	-l 显示详细信息

创建目录
命令:mkdir

mkdir【选项】目录名
	-p 递归创建目录

创建文件
命令:touch


显示当前工作目录
命令:pwd


切换目录
命令:cd

cd 目录名

复制文件或目录
命令:cp

cp【选项】目录名
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
-p 把源文件或目录下的所具有的权限一同复制 到 目标目录或文件
-r 复制目录

移动文件或目录
命令:mv


删除文件或目录
命令:rm

rm【选项】目录名
-f  强制删除,没有提示
-r  删除目录
	* 代表所有

查看文件的内容
命令:cat
命令:tail
查看文件后几行

tail [选项] [文件]
-f 循环读取
-c<数目> 显示的字节数
-n<行数> 显示行数

命令:head
查看文件前几行

head [选项] [文件]
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数

命令:less
分页显示


查询文件
命令:find

语法:
find [目录] –name 内容

输出显示
命令:echo

5:硬盘配置

硬盘分区
命令:fdisk

fdisk  【硬盘路径】

p、打印分区表。
n、新建一个新分区。
d、删除一个分区。
q、退出不保存。
w、把分区写进分区表,保存并退出。

硬盘格式化
命令:mkfs

选项		说明
-V			显示详细执行过程
-t			指定文件系统类型,默认ext4
fs-options	传递给真正的文件系统构建器的特定选项。虽然没有保证,但大多数文件系统构建器都支持下列选项
-l filename	从指定文件中读取坏块列表
-c			创建文件系统之前进行坏道检测
-v			显示详细执行过程

举例:

mkfs -t xfs /dev/sdb1

挂载硬盘
命令:mount

-a    挂载 /etc/fstab 中的所有文件系统
-r    只读挂载
-w    读写挂载
-t    指定挂载的文件系统类型 

查看硬盘uuid
命令:blkid


永久挂载硬盘
配置文件位置/etc/fstab


卸载硬盘
命令:umount

-a 卸除/etc/mtab中记录的所有文件系统。
-h 显示帮助。
-n 卸除时不要将信息存入/etc/mtab文件中。
-r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-t<文件系统类型> 仅卸除选项中所指定的文件系统。
-v 执行时显示详细的信息。
-f  强制卸载(硬盘占用)

6:vim编辑器命令

命令:vim

wq   	保存退出   
wq! 	  保存退出       
q   	 退出
q!  	  强制退出       
dd  	 删除当前行列     
gg  	 移动到第一行
G		跳转最后一行       
ggVG 	 权限         
i		插入文件内容

u 		复原前一个动作
Ctrl+r 	重做上一个动作

7:sed命令(文件内容处理)

命令:sed
语法:sed[选项]“命令”文件

举例:

(1)删除某行

#删除第一行
sed '1d' test.txt
#删除最后一行
sed '$d' test.txt
#删除第一行到第二行
sed '1,2d' test.txt

(2)显示某行

#显示第一行
[root@bogon z3]# sed -n '1p' test.txt
#显示最后一行
[root@bogon z3]# sed -n '$p' test.txt
#显示第一行到第二行
[root@bogon z3]# sed -n '1,2p' test.txt

(3)使用模式进行查询

#查询包括关键字ruby所在所有行
sed -n '/ruby/p' test.txt
#查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义
sed -n '/\$/p' test.txt

(4)增加一行或多行字符串

cat test.txt

Hello!
ruby is me,welcome to my blog.
End

#第一行后增加字符串"drink tea"
sed '1a drink tea' test.txt

Hello!
drink tea
ruby is me,welcome to my blog. 
End

#第一行到第三行后增加字符串"drink tea"
sed '1,3a drink tea' test.txt

Hello!
drink tea
ruby is me,welcome to my blog.
drink tea
end
drink tea

#第一行后增加多行,使用换行符\n
sed '1a drink tea\nor coffee' test.txt
   
Hello!
drink tea
or coffee
ruby is me,welcome to my blog.
end

(5)代替一行或多行

#第一行代替为Hi
sed '1c Hi' test.txt

Hi
ruby is me,welcome to my blog.
End

#第一行到第二行代替为Hi
sed '1,2c Hi' test.txt

Hi
end

(6)替换一行中的某部分
格式:sed ‘s/要替换的字符串/新的字符串/g’ (要替换的字符串可以用正则表达式)

#替换ruby为bird
[root@bogon z3]# sed -n '/ruby/p' test.txt | sed 's/ruby/bird/g' 


#删除ruby
[root@bogon z3]# sed -n '/ruby/p' test.txt | sed 's/ruby//g'

(7)插入

#在文件test.txt中最后一行直接输入"bye"
[root@bogon z3]# sed -i '$a bye' test.txt
[root@bogon z3]# cat test.txt

Hello
ruby is me,welcome to my blog.
end
bye

(8)删除文档中匹配行

sed -i '/匹配字符串/d'  filename  

(9)替换匹配行中的某个字符串

sed -i '/匹配字符串/s/替换源字符串/替换目标字符串/g' filename

猜你喜欢

转载自blog.csdn.net/weixin_47768822/article/details/110533835