Linux个人笔记(个人使用)

Linux系统初识

Shell:
Shell:是一种命令解释器(将用户的命令解释成低级语言给内核),提供用户与内核进行交互操作的一种接口,是系统的用户界面

linux《==》 linux shell 《=》用户

系统级别在这里插入图片描述
cat /proc/version 显示Linux的版本号
gedit 文件名 (文本编辑器)
/dev/null 黑洞文件夹

一、文件与目录(命令篇)

1、文件管理

查看命令帮助信息

man 命令 (查看命令帮助信息)
命令 --help (查看常见选项信息)

执行历史命令

\ +回车 长命令分行写

history 【n】 查看最近n条命令【所有命令】
!n 执行某个命令(序号为n)
!! 执行上条命令

日期与时间

date 当前系统时间
date 月日时分年.秒【修改时间】

cal 显示日历【默认本月】
cal 月 年 【显示指定年份某月】 这个年份一定要输完整!!!

目录切换

cd / 返回根目录
cd - 最近的两个目录切换
cd ~用户名 进入指定用户家目录
注意:root用户家目录:/root
普通用户家目录:/home/用户名

ls 查看

ls 查看目录、文件
-a 所有目录及文件(包括隐藏)
-t 按文件修改时间排序
-h 与 -l 结合使用,易读显示文件大小
-l 长格显示详细信息
-i 查看文件 inode 信息

创建目录

mkdir 创建单级目录
-p 创建多级

移动或命名

mv 源 目标 移动或命名

复制

cp 【-r】 源 目标 复制目录时必须用 -r

删除

rm 删除文件
-r 删除目录树(删除文件和目录)
-f 强制删除,无需询问

创建文件

touch 文件名 用于改变文件或目录的时间记录或创建空文件

查看文件或目录所占用的磁盘空间的大小

du 【目标】 查看文件或目录所占用的磁盘空间的大小
-a 目录及子目录和文件
-s 仅仅显示目录本身
-h 易读

硬链接与软链接

ln 【-s】 被链接的 链接 【默认硬链接】
-s 符号链接(软连接)
注意:硬链接不能连目录

  1. 软链接和硬链接删除都不会影响源文件,但是修改会影响
  2. 源文件删除时,软链接无法再访问,而硬链接可以(硬链接是源文件的映射,inode相同)

查看文件部分内容

head 【-n】文件 【查看文件头部n行】
tail 【-n】 文件 【查看文件尾部n行】
默认都是10

查看文本文件

cat 【-n】 【看文本文件,-n行号显示】

more与less

less 加载速度比 more 要快(不必读整个文件)
退出后 shell 不会保留 less 的内容,而 more 会

查看文件内容包含信息

wc 以 w l c 形式全显示
-w 单词个数(字数)
-l 行数
-c 字符数(字节数)
whereis 查找文件路径
-b 查二进制文件
-m 查命令手册
-s 查源代码文件
或者用which 查二进制文件

查看文件类型

file 文件

查找文件内容

grep 【1】 目标内容 文件名 Value
-i 忽略大小写
-v 反转查找
-n 显示查找结果行号

查找文件

find 路径 【-not】 表达式 表达式
查找文件 -name “文件名” 推荐加上引号“ ”
查找用户 -user 用户名
查找大小 -size +10 (大于10字节,默认等于)
查找修改时间 -mmin +120 (查120分钟前修改的)
查找后执行 -exec 命令 {} \;
查找类型 -type 类型

类型:
f 普通文件
d 目录
b 块设备文件
c 字符设备文件
l 符号链接文件

使用数据库查找文件或目录

先使用updatedb建立数据库
locate 查找对象

2、打包与拆包、压缩与解压

tar 【1】 包名 源 注意!-f一定要在命令最后面,否则报错!
-f 普通文件操作(必填)一定要放到最后面!
-t 查看包内文件
-x 释放包
-c小写 创建包
-r 添加至末尾
-z .gz格式打包(gzip)需要与-c同时使用
-j .bz2格式(bzip2)需要与-c同时使用
-v 详细信息
-C大写 解压到指定路径

解压到指定路径: tar xvf 包名 -C 指定路径

gzip 【1】文件 生成 .gz文件
-v 详细信息
-d 解压 == gunzip
bzip2 【1】文件 生成 .bz2文件
-v 显示压缩比例
-d 解压 == bunzip
zip【-m】压缩包名 文件 -m是压缩后删除源文件【默认不删除】
unzip 【1】压缩包 解压文件到当前目录
-l 查看压缩文件内容
-d 目标目录 解压到指定目录

3、输出重定向

输出结果 > 文件名 (生成文本文件,可覆盖)

项目 Value
> 正确重定向 (覆盖)
>> 正确追加重定向(不覆盖)
2> 错误重定向
&> 全部重定向
< 输入重定向

cat < file.txt 读取文件,再将其显示出来

4、alias命令别名

别名的有效期为用户退出为止
alias 别名 = ’ 命令 ’ (设置别名) !!等号两边不能有空格!!!
unalias 别名 (删除别名)

\命令 (才是命令本身) 例子:\ls

5、vi 编辑器

三种模式

  1. 命令模式 (首先进入的模式)
  2. 插入模式 (按 ESC 键进入命令模式)
  3. 末行模式 (在命令模式下按 :开启,wq存盘退出,q! 不存盘退出,w 文件名 自定义文件名保存)

二、用户、组与文件权限的管理

用户、组与文件权限的管理

UID GID
超级用户 0 0(root组)
系统用户 1~499 1~499(系统组)
普通用户 500~60000 500~60000(基本组和附加组)
用户账号 /etc/passwd
用户密码 /etc/shadow
用户组账号 /etc/group
用户组密码 /etc/gshadow

用户账号
账号名称:密码(MD5加密):UID:GID:用户全名:主目录:shell

用户密码
在这里插入图片描述

用户组账号
组名:组加密口令:GID:组员(用 . 隔开)

用户组密码保存在/etc/gshadow配置文件中

用户添加

useradd 【1】用户名 嗯嗯
-d 目录名 指定用户主目录
-e YYYY-MM-DD 失效日期
-g 用户组 指定用户基本组
passwd 【】用户名
-d 清除密码
-l 锁定用户
-u 解锁用户

userdel 【-r】 用户名 (删除用户,但不删除主目录)
-r是删除用户同时删除该用户的主目录

usermod 【】 用户名 Value
-l 新名 $1600
-L 锁定
-U 解锁用户

group 【-g】组名 (创建用户组,指定GID号)

groupmod -g 新GID 用户名
groupmod -n 新名 旧名
groupdel 组账号名 (删除组账号)

gpasswd 【】用户名 组名 Value
-a 加入一个用户(到附加组)
-d 从组移除
-M 添加多个用户 (用逗号 “,” 隔开)
-A 给组指派管理员

用户切换

su 【用户名】 (默认切换到root用户)
当前用户为root时,切换其他不需要口令
su - 同时使用新用户的环境变量
切记注意区分 su 与 su - 的区别!!!!

在这里插入图片描述
在这里插入图片描述

修改文件或目录的权限

rwx
修改文件或目录的权限(root用户和文件拥有者才有权限改)
chmod 【ugoa】【±=】【rwx】 文件或目录
选项间不能存在空格!!!
例如:chmod u+x,g+w,o+w hello (hello 为文件名)
u 拥有者
g 拥有者所属的用户组
o 其他用户
a 所有的
在这里插入图片描述
chgrp 组 文件名 (修改文件所属的组)
chwon 【-R】新属主【:新属组】 文件或目录

chown angel:angel /目录
设置 /目录 的属主为angel用户和angel用户组

三、磁盘管理

硬盘接口类型:
并行:IDE
串行:SATA(家用电脑) SCSI(服务器)U盘 USB硬盘

磁盘设备文件名:
/dev/hdX Y 并行
/dev/sdX Y 串行
X:以a开始命名
Y:主分区或拓展分区序号(1~4) 逻辑分区在拓展分区里面(5~…)

在这里插入图片描述
ls /lib/modules/2.6.32-642.e16.x86_64/kernel/fs/
可查看Linux内核支持哪些文件系统

磁盘分区挂载

挂载点就是进入那个磁盘分区的进入的 目录点

创建磁盘分区
fdisk /dev/sdb (打开一个交互菜单,要自己去操作)
挂载分区(文件系统)
mount 【-t 文件系统类型】 设备名 挂载点目录
查看挂载命令: mount

  1. 先需要一个现成的空目录
  2. 再挂载硬盘分区

例子:挂载光盘文件
mount -t iso9660 光盘文件名.iso 挂载点目录 -o loop

查看文件系统磁盘空间占用大小

df 【】 查看文件系统磁盘空间占用大小
-a 所有
-T 增加文件系统类型显示
-h 易读

四、进程管理

1、进程管理

作业:正在执行的一个或多个相关进程(管道)
作业分为前台作业和后台作业,同一时刻每个用户只能有一个前台作业

进程启动

手工启动:手动输入(命令后加&变为调度启动)
调度启动:系统按事先用户设置好的执行
(at、batch、cron调度)

查看进程

ps 【】 查看当前前台的(静止)
a 显示终端所有用户进程
l 详细信息(父进程号、登陆终端号、进程优先级等)
u 以用户格式显示(CPU、内存使用率等)
x 显示后台进程信息

PID:进程号
TTY:终端号(字符界面tty1~tty6)
TIME:该进程消耗的CPU时间
CMD:正在执行的命令或进程

top 动态显示当前进程执行情况(按 q 推出)

jobs 【】 查看系统后台当前所有作业
-p 仅显示进程号
-l 同时显示作业号和进程号

进程前后台切换

切到后台

  1. CTRL+z 挂到后台并暂停
  2. bg 【作业号】 将一个在后台暂停的命令,变成继续执行
  3. 命令+ &

切到前台
fg 【作业号】

杀死进程

杀死进程
kill 【-9】 PID号 (杀死单个进程)
强制杀死加 【-9】
killall 【-9】 进程名 (杀死同名所有进程)

free显示内存和交换分区的相关信息

在这里插入图片描述

2、进程调度

时间表示

时间表达法:
绝对时间表达法:
5:30pm 5/1/11 (时间+月/日/年)
17:30 1.5.11 (时间+日.月.年)
17:30 05012011 (时间+月日年)
相对时间表达法:
now+1 hour (从现在起1小时后)
4:30pm+2 days (2天后的4:30pm)

wall 消息 (给所有用户终端发送消息)

at 调度

at 【选项】时间 指定时间运行一次脚本或命令
-f 文件名
-l 显示等待执行的调度作业 == atq
-d 删除指定的调度作业 == atrm

cron 调度

cron调度(可周期性作业)

crontab 【】 管理用户的crontab配置文件
-e 创建、编辑配置文件
-l 显示配置文件的内容
-r 删除配置文件

分钟 小时 日期 月份 星期 命令

系统日志管理

系统日志文件:/var/log/…
时间标签 主机名 进程名 消息

五、软件管理

1、rpm 软件包的安装

rpm软件包:
在这里插入图片描述

2、YUM 管理工具

必须以root的身份进行
一般用rpm -qa | less或 rpm -qa | grep ssl 浏览

查询指定的软件包是否已安装

rpm -q【】 软件包 多个软件包用空格隔开)
-i 查看软件包的描述信息
-l 显示已安装软件包中包含文件的文件名及安装位置
-a 查看全部软件包
-f 文件或目录全路径名 显示文件或目录是通过安装哪一个软件包产生的

在这里插入图片描述

安装rpm软件安装包

rpm -ivh 软件包全路径名
i 安装
v 显示安装详细信息
h 显示进度
是你出rpm软件包
rpm -e 软件包名(不能有后缀.rpm)
升级rpm软件包
rpm -U 升级安装

利用YUM管理软件包

先建立YUM源
在这里插入图片描述

yum 【1】 管理软件包
list 列出已经安装和yum源中所有的软件包
info 查看软件包信息
install 安装软件
erase或remove 删除软件
clean all 清除yum缓存

在这里插入图片描述

六、Linux网络配置(网络及服务器篇)

在这里插入图片描述查看主机名
hostname
临时设置主机名
hostname 新主机名
永久修改主机名需要在配置文件 /etc/sysconfig/network 中修改

1、Linux网络配置

在这里插入图片描述
在这里插入图片描述
纯数字显示 route -n

网络诊断

在这里插入图片描述
service iptables stop 关闭linux防火墙

2、网络服务管理

service 服务名 要执行的状态
start 启动服务
stop 停止服务
restart 重启服务
status 查询服务状态(可看pid 进程号)

查看服务状态

chkconfig --list 【服务名】
独立运行服务:
chkconfig --level 运行级列表 服务名 on或者off
非独立运行服务:
chkconfig 服务名 on或off
(更改需要重新启动 xinetd 服务才能生效):
service xinetd restart

3、远程登陆管理

telnet 端口号23
明文传输,安全性低
ssh端口号22

文件给对面:
scp -r 自己源文件 用户名@目标IP:对方保存目录
从对面下载文件:
scp -r 用户名@目标IP:对方源文件 自己保存目录
注意点!!! ( :\ 中间不能有空格!!!!!文件路径一定要写对了!)

4、DNS服务器的配置

先安装 bind bind-chroot

1、服务端主配置文件
/var/named/chroot/etc/named.conf
2、正向解析数据文件
/var/named/chroot/var/named/正向文件.zone
3、反向解析数据文件
/var/named/chroot/var/named/反向文件.zone
4、DNS客户端配置文件
/etc/resolv.conf

1、配置服务端主配置文件
/var/named/chroot/etc/named.conf

options{
directory "/var/named";    #唯一的区域文件的地址
};
zone "服务器域名(正向文件).com." IN {
        type master; 
        file "正向文件.zone";
};
zone "DNS服务器IP网段反写.in-addr.arpa" IN {
        type master;
        file "反向文件.zone";
};

2、编辑正向解析数据文件
/var/named/chroot/var/named/正向文件.zone

$TTL    86400  
@    IN SOA  dns.主机名.com.   root.管理员电子邮件地址.com. (
                                               2015111701     #最后两个数字不能超过10!
                                        3H
                                        15M 
                                        1W 
                                        1D )
            IN NS           dns.服务器域名(正向文件).com.
dns     IN A            服务器IP
www     IN A            服务器IP
ftp     IN A            服务器IP
*.域名.com.     IN A            域名IP    #泛域名解析
域名.com.     IN A            域名IP    #指定域名解析
                                                                                                             

3、编辑反向解析数据文件
/var/named/chroot/var/named/反向文件.zone

$TTL    86400
@    IN SOA  dns.服务器域名.com.   root.服务器域名.com. (
                                             2015111701
                                      3H              
                                      15M
                                      1W              
                                      1D )
              IN NS      dns.服务器域名(正向文件).com.
106    IN      PTR     dns.服务器域名(正向文件).com.
90     IN      PTR     www.服务器域名(正向文件).com.
91     IN      PTR     ftp.服务器域名(正向文件).com.

4、启动
service named restart
5、配置DNS客户端配置文件
/etc/resolv.conf
加入:
nameserver DNS服务器IP地址(可以设置为自己)
6、测试DNS
nslookup www.服务器域名.com #获得IP地址
nslookup 服务器IP地址 #获得域名
host www.服务器域名.com #域名测试工具
dig www.服务器域名.ccom #查询域名信息工具

5、Web服务器的配置

安装 httpd
/etc/httpd/conf/httpd.conf   apache服务器主配置文件
/var/www/ 默认Web站点的根目录
/var/www/html      网页文档的默认根目录
/var/log/httpd/access_log   访问日志文件
/var/log/httpd/error_log    错误日志文件
.htaccess基于目录的配置文件,包含其所在目录的访问控制和认证等参数

1全局环境(Section1:Global Environment)
2主服务器配置(Section 2:Main server configuration)
3虚拟主机(Section 3:Virtual Hosts)

ServerRoot 相对根目录
Timeout 响应时间(默认 60)
MaxKeepAliveRequests 单个服务最多请求次数(0 表示无限制)
Listen 服务器监听端口号(默认 80)

ServerAdmin 邮件地址(默认 root@rhel(主机名) )
DocumentRoot 文档根目录(访问入口)
DirectoryIndex 访问目录下默认文档(如 index.html )

访问控制(基于主机)

Order allow,deny 拒绝未被允许的
Order deny,allow 允许未被拒绝的
在指令<Directory “/var/www/html”>前添加:

<Directory “/var/www/html/文档名”>
Order deny,allow
Allow from 访问IP
Deny from all
< /Directory> #空格记得删除

访问控制(基于认证)

<Directory “/var/www/html/文档名”>
AllowOverride None #不使用.htaccess文件
AuthName “restricted stuff”
AuthType Basic #使用Basic认证
AuthUserFile /etc/httpd/users #认证用户文件名保存路径
Require valid-user
< /Directory> #空格记得删除

创建认证用户和密码(用户与Linux用户没有对应关系)
/etc/httpd/users
htpasswd ( ) /etc/httpd/user 用户名
-c 仅在创建第一个使用
-D 删除用户

别名与URL重定向

Alias /bbs “/opt/bbs/” 别名
Redirect /news http://172.17.130.120 重定向

虚拟主机

http://IP地址:端口号

1、同一IP不同端口

记得在目录名下建立 index.html 文件

Listen 8000
Listen 8888
<VirtualHost 202.127.50.120:8000>
DocumentRoot /var/www/目录名
< /VirtualHost> #空格记得删除

<VirtualHost 202.127.50.120:8888>
DocumentRoot /var/www/目录名
< /VirtualHost> #空格记得删除

重启服务器之前使用 setenforce 0

2、不同IP地址
创建两个设备别名
ifconfig eth0:0 IP1 netmask 255.255.255.0
ifconfig eth0:1 IP2 netmask 255.255.255.0

<VirtualHost 202.12.5.100(IP1)>
DocumentRoot /var/www/vhost-ip3
< /VirtualHost>
<VirtualHost 202.12.5.120(IP2)>
DocumentRoot /var/www/vhost-ip4
< /VirtualHost>

ifconfig eth0:0 down #关闭设备

3、基于域名
vh1 CNAME dns #添加至正向解析文件

6、邮件服务器的配置

1.配置DNS
正向和反向加入 mail.域名.com
2.配置postfix
安装postfix
postfix主配置文件
/etc/postfix/main.cf

myhostname = mail.rhel.com   邮件服务器主机名
mydomain = rhel.com          该主机申请的域名
myorigin = $mydomain      发件人所在的域名
inet_interfaces = all           接口设置(所有的网络接口都开放)
mydestination = $mydomain   邮件的收件地址
mynetworks = 192.168.1.0/24   可信任的IP地址范围
home_mailbox = Maildir/    邮件存储位置和格式

3.配置dovecot
安装dovecot
配置文件
/etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp
login_trusted_networks = 192.168.1.0/24 指定允许登录接收邮件的网段地址

/etc/dovecot/conf.d/

mail_location = maildir:~/Maildir

重启dovecot
4.配置squirrelmail软件包和汉化语言包
5.Apache服务器的配置

7、FTP服务器的配置

1.安装vsftpd
2.配置主配置文件
/etc/vsftpd/vsftpd.conf

访问:

gftp 自己服务器IP

匿名用户只能下载/var/ftp下的文件,不能上传

限制所有的本地用户都不可切换到主目录以外的目录

chroot_local_user=YES

只设置指定的用户不可切换到主目录以外的目录

Chroot_list_enable=YES
Chroot_list_file=/etc/vsftpd/chroot_list (存放用户名的文件,每个用户占一行)
chroot_local_user=NO

控制用户是否允许切换到上级目录
chroot_list_enable=YES/NO
chroot_local_user=YES/NO

chroot_list_enable= chroot_local_user= 结果
YES YES 仅列出可切
YES NO 仅列出不可切
NO YES 所有不可切
NO NO 所有可切

控制访问(IP)
/etc/hosts.allow
添加 vsftpd:IP

/etc/hosts.deny
添加 vsftpd:ALL

再去主配置文件下添加
tcp_wrappers=YES

文件上传
write_enable=YES
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
1、先在 /var/ftp 下创建文件
2、修改上传文件的权限,增加其他用户的写权限(chmod)

限制本地用户登陆
在这里插入图片描述
编辑ftpusers文件
/etc/vsftpd/ftpusers

8、NFS服务器(网络文件系统)

1、安装 nfs rpcbind
2、创建共享文件夹
3、配置主配置文件 /etc/exports

写以下三行:
1、共享的目录路径
/tmp/share1

2、共享计算机网段(255.255.255.0 填24)
192.168.0.0/24

3、共享的权限
ro sync

ro(只读) rw(可读可写) sync(同步,即同步写入数据到内存与硬盘中)

先重启rpcbind,再重启nfs

4、创建加载点(目录)
5、挂载
mount -t nfs serverip:共享目录 加载点目录

猜你喜欢

转载自blog.csdn.net/m0_46141590/article/details/105890136