Shell:
Shell:是一种命令解释器(将用户的命令解释成低级语言给内核),提供用户与内核进行交互操作的一种接口,是系统的用户界面
linux《==》 linux shell 《=》用户
系统级别:
cat /proc/version 显示Linux的版本号
gedit 文件名 (文本编辑器)
/dev/null 黑洞文件夹
man 命令 (查看命令帮助信息)
命令 --help (查看常见选项信息)
\ +回车 长命令分行写
history 【n】 查看最近n条命令【所有命令】
!n 执行某个命令(序号为n)
!! 执行上条命令
date 当前系统时间
date 月日时分年.秒【修改时间】
cal 显示日历【默认本月】
cal 月 年 【显示指定年份某月】 这个年份一定要输完整!!!
cd / 返回根目录
cd - 最近的两个目录切换
cd ~用户名 进入指定用户家目录
注意:root用户家目录:/root
普通用户家目录:/home/用户名
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 符号链接(软连接)
注意:硬链接不能连目录
- 软链接和硬链接删除都不会影响源文件,但是修改会影响
- 源文件删除时,软链接无法再访问,而硬链接可以(硬链接是源文件的映射,inode相同)
head 【-n】文件 【查看文件头部n行】
tail 【-n】 文件 【查看文件尾部n行】
默认都是10
cat 【-n】 【看文本文件,-n行号显示】
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 查找对象
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 目标目录 | 解压到指定目录 |
输出结果 > 文件名 (生成文本文件,可覆盖)
项目 | Value |
---|---|
> | 正确重定向 (覆盖) |
>> | 正确追加重定向(不覆盖) |
2> | 错误重定向 |
&> | 全部重定向 |
< | 输入重定向 |
cat < file.txt 读取文件,再将其显示出来
别名的有效期为用户退出为止
alias 别名 = ’ 命令 ’ (设置别名) !!等号两边不能有空格!!!
unalias 别名 (删除别名)
\命令 (才是命令本身) 例子:\ls
三种模式
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
例子:挂载光盘文件
mount -t iso9660 光盘文件名.iso 挂载点目录 -o loop
df 【】 | 查看文件系统磁盘空间占用大小 |
---|---|
-a | 所有 |
-T | 增加文件系统类型显示 |
-h | 易读 |
作业:正在执行的一个或多个相关进程(管道)
作业分为前台作业和后台作业,同一时刻每个用户只能有一个前台作业
手工启动:手动输入(命令后加&变为调度启动)
调度启动:系统按事先用户设置好的执行
(at、batch、cron调度)
ps 【】 | 查看当前前台的(静止) |
---|---|
a | 显示终端所有用户进程 |
l | 详细信息(父进程号、登陆终端号、进程优先级等) |
u | 以用户格式显示(CPU、内存使用率等) |
x | 显示后台进程信息 |
PID:进程号
TTY:终端号(字符界面tty1~tty6)
TIME:该进程消耗的CPU时间
CMD:正在执行的命令或进程
top 动态显示当前进程执行情况(按 q 推出)
jobs 【】 | 查看系统后台当前所有作业 |
---|---|
-p | 仅显示进程号 |
-l | 同时显示作业号和进程号 |
切到后台
切到前台
fg 【作业号】
杀死进程
kill 【-9】 PID号 (杀死单个进程)
强制杀死加 【-9】
killall 【-9】 进程名 (杀死同名所有进程)
时间表达法:
绝对时间表达法:
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 【选项】时间 | 指定时间运行一次脚本或命令 |
---|---|
-f | 文件名 |
-l | 显示等待执行的调度作业 == atq |
-d | 删除指定的调度作业 == atrm |
cron调度(可周期性作业)
crontab 【】 | 管理用户的crontab配置文件 |
---|---|
-e | 创建、编辑配置文件 |
-l | 显示配置文件的内容 |
-r | 删除配置文件 |
分钟 小时 日期 月份 星期 命令
系统日志文件:/var/log/…
时间标签 主机名 进程名 消息
必须以root的身份进行
一般用rpm -qa | less或 rpm -qa | grep ssl 浏览
rpm -q【】 软件包 | 多个软件包用空格隔开) |
---|---|
-i | 查看软件包的描述信息 |
-l | 显示已安装软件包中包含文件的文件名及安装位置 |
-a | 查看全部软件包 |
-f 文件或目录全路径名 | 显示文件或目录是通过安装哪一个软件包产生的 |
rpm -ivh 软件包全路径名
i 安装
v 显示安装详细信息
h 显示进度
是你出rpm软件包
rpm -e 软件包名(不能有后缀.rpm)
升级rpm软件包
rpm -U 升级安装
yum 【1】 | 管理软件包 |
---|---|
list | 列出已经安装和yum源中所有的软件包 |
info | 查看软件包信息 |
install | 安装软件 |
erase或remove | 删除软件 |
clean all | 清除yum缓存 |
查看主机名
hostname
临时设置主机名
hostname 新主机名
永久修改主机名需要在配置文件 /etc/sysconfig/network 中修改
service iptables stop 关闭linux防火墙
service 服务名 要执行的状态
start 启动服务
stop 停止服务
restart 重启服务
status 查询服务状态(可看pid 进程号)
chkconfig --list 【服务名】
独立运行服务:
chkconfig --level 运行级列表 服务名 on或者off
非独立运行服务:
chkconfig 服务名 on或off
(更改需要重新启动 xinetd 服务才能生效):
service xinetd restart
telnet 端口号23
明文传输,安全性低
ssh端口号22
文件给对面:
scp -r 自己源文件 用户名@目标IP:对方保存目录
从对面下载文件:
scp -r 用户名@目标IP:对方源文件 自己保存目录
注意点!!! ( :\ 中间不能有空格!!!!!文件路径一定要写对了!)
先安装 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 #查询域名信息工具
安装 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 允许未被拒绝的
在指令
Order deny,allow
Allow from 访问IP
Deny from all
< /Directory> #空格记得删除
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 删除用户
Alias /bbs “/opt/bbs/” 别名
Redirect /news http://172.17.130.120 重定向
http://IP地址:端口号
1、同一IP不同端口
记得在目录名下建立 index.html 文件
Listen 8000
Listen 8888
DocumentRoot /var/www/目录名
< /VirtualHost> #空格记得删除
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
DocumentRoot /var/www/vhost-ip3
< /VirtualHost>
DocumentRoot /var/www/vhost-ip4
< /VirtualHost>
ifconfig eth0:0 down #关闭设备
3、基于域名
vh1 CNAME dns #添加至正向解析文件
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服务器的配置
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
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:共享目录 加载点目录