【原创】 Linux 用户管理和服务管理

五、Linux用户管理和服务管理
一、用户管理命令
摘要:
用户信息文件: /etc/passwd
user1:x:500:500::/home/user1:/bin/bash
第一列:用户名
第二例:密码位(x代表设置了密码)
第三列:UID 用户ID
0: 超级用户
1-499: 系统用户(伪用户,不允许登录linux,绝对不允许删除,是用来启动linux服务或者命令或者程序的)
>500: 普通用户 (默认500-60000)
第四列:GID 初始组ID
第五列:用户说明
第六列:家目录
第七列:用户登录之后的权限
/bin/bash
影子文件: /etc/shadow (用户密码保存文件,权限000,root也要wq!才能保存)
组信息文件: /etc/group
sc : x : 500 :
组名:组密码位:组ID:组中附加用户
windows创建的用户都在user组
1、添加用户
useradd 用户名 添加用户
useradd 选项 用户名
选项:
-g 组名 指定初始组 不要手工指定
-G 组名 指定附加组,把用户加入组,使用附加组
-c 说明 添加说明
-d 目录 手工指定家目录,目录不需要事先建立
-s /bin/bash 手工指定用户登录之后的权限
-u uid: 指定UID
useradd -g aa bb 添加bb用户,同时指定初始组为aa
useradd -G user1 aa 添加用户aa,指定附加组为user1
gpasswd -a 用户名 组名
useradd -g 组名 用户名
user1:
初始组:每个用户初始组只能有一个,一般都是和用户名相同的组作为初始组
附加组:每个用户可以属于多个附加组,要把用户加入组都是加入附加组
2、设定密码
passwd 用户名
passwd 改变当前用户密码
passwd user1 改变user1用户密码
3、删除用户
userdel -r 用户名 -r连带家目录一起删除
4、添加组
groupadd 组名
5、删除组
groupdel 组名 注意:组中没有初始用户
6、把已经存在的用户加入组
gpasswd -a 用户名 组名 把用户加入组
gpasswd -d 用户名 组名 把用户从组中删除
二、用户相关命令
1、id 用户名 显示用户的UID,初始组合附加组
2、su - 用户名 切换用户身份 - 连带环境变量一起切换
env 查看Linux操作环境
三、ACL权限 用来解决用户对文件身份不足的问题
举例:/work 项目提交目录
所有者、所属组有提交更改创建权限,其他人无任何权限
leigong --> 所有者
lggroup --> 所属组
/work/ 权限 770
操作:
mkdir /work
chmod 770 /work/
useradd leigong
groupadd lggroup
gpasswd -a leigong lggroup (所有者加入组)
将所有者leigong加入到lggroup组中
gpasswd -a user1 lggroup (用户user1加入组)
将用户user1加入到lggroup组中
chown leigong:lggroup /work
ll -d /work/
1、getfacl 文件名 查询文件的acl权限
2、setfacl 选项 文件名 设定acl权限
-m 设定权限
-b 删除权限
班主任以5权限进到了work目录
删除facl权限
setfacl -m u:用户名:权限 文件名
setfacl -m g:组名:权限 文件名
setfacl -m u:aa:rwx /test 给test目录赋予aa是读写执行的facl权限
setfacl -m u:cc:rx -R soft/ 递归赋予acl权限,只能赋予目录
-R 递归
setfacl -b /test 删除acl权限
setfacl -x u:用户名 文件名 删除指定用户的ACL权限
3、setfacl -m d:u:bzr:5 -R /work/ acl设置默认权限 d(default)
注意:默认权限只能设置目录
注意:如果给目录赋予acl权限,两条命令都要输入
setfacl -m u:用户名:rx -R 文件名 只对已经存在的文件生效
setfacl -m d:u:bzr:rx -R 文件名 只对未来要新建的文件有效
四、输出重定向和多命令顺序执行
1、输出重定向 (把应该输出到屏幕的输出,重定向到文件)
> 覆盖的方式写进文件
>> 追加的方式写进文件
ls > aa 覆盖到aa
ls >> aa 追加到aa
ls fdhfjsolk 2>>aa 错误信息记录到aa文件 2 错误信息 注意:错误输出,不能有空格
掌握:
ls >> aa 2>&1 错误和正确都可以输入到aa,可以追加, 2&1把标准错误重定向到标准正确输出
ls >> aa 2>>/tmp/bb 正确信息输入aa,错误信息输入bb
五、服务和进程管理
进程管理三个主要任务:
判断服务器健康状态 正常、非法 top
查看所有正在运行的进程 ps pstree
强制终止进程 kill pkill
服务器合理资源范围 70/90:内存占用不超过70%,CPU占用不超过90%
一、进程查看
1、ps aux 查看当前系统所有运行的进程
-a 显示前台所有进程
-u 显示用户名
-x 显示后台进程
服务器遵循70/90原则,即内存占用率不超过70%,CPU占有率不超过90% !!!
user: 用户名
PID: 进程ID PID=1的进程永远是/sbin/init 系统启动的第一个进程
%CPU: CPU占用百分比
%MEM: 内存占用百分比
VSZ: 虚拟内存占用量 KB
RSS: 固定内存占用量
TTY: 登录终端 tty1-7本地终端 1-6字符,7图形;pts/0 - 255 远程终端
STAT: 进程状态 S:睡眠 D:不可唤醒 R:运行 T:停止 Z:僵死 W:进入内存交换 X:死掉的进程 <:高优先级 N:低优先级 L:被锁进内存 s:含子进程 +:位于后台 l:多线程
START: 进程触发时间
TIME: 占用CPU时间
COMMAND: 进程本身
2、pstree 查看进程树
pstree -p 查看进程树(包括inode号)
3、top
第一行:系统当前时间 系统持续时间 登录用户数量 1,5,15分钟之前的平均负载
第二行:进程总数 进程总数125个,1个运行,124个休眠
第三行:CPU占用率 %id空闲辈分比
第四行:内存使用 总共 使用 空闲 缓存
第五行:swap使用
可通过1,5,15分钟之前的平均负载、CPU空闲率、内存空闲率判断服务器的基本压力
操作命令:
M:内存排序
P: CPU排序
q: 退出
4、进程管理 终止进程 (没事别老杀进程,apache、mysql等进程都有启动终止命令)
kill 信号 PID 结束单个进程
-9 强制
killall -9 进程名 结束一类进程
pkill -9 进程名 结束一类进程
w 判断登录用户
pkill -9 -t 终端号 把某个终端登录的用户踢出去(只有超级用户才能提其他用户)
pkill -9 -t pts/0 把user1用户踢下去,踢完之后user1用户连接状态变成了红色
六、Linux服务管理
默认情况下,所有的服务管理命令(如:service、ntsysv、chkconfig)都不能识别源码包安装的服务
一、分类
RPM包安装的服务
1、独立的服务 (独立服务放在内存,直接响应速度快;缺点占内存)
启动:
A:service 服务名 start|stop|restart
B:/etc/rc.d/init.d/服务名 start 标准启动
自启动:
A:chkconfig --level 2345(开机级别) httpd on|off
B:vi /etc/rc.local
/etc/rc.d/init.d/httpd start (建议用第二个)
2、基于xinnetd的服务 (xinetd服务自己占内存,它管理的服务部占内存,缺点慢;;用得越来越少)
ntsysv
源码包安装的的服务
启动
/usr/local/apache2/bin/apachectl start
自启动
vi /etc/rc.local
/usr/local/apache2/bin/apachectl start
二、系统默认安装的服务
1、确定服务分类
chkconfig --list 查看RPM包安装的服务的自启动状态
运行级别:0-6
0 关机
1 单用户模式
2 不完全多用户,不包含NFS服务
3 完全多用户,字符界面
4 未分配
5 图形界面
6 重启
init 0 关机
init 6 重启
【原创】 Linux IP配置

三、Linux IP地址配置
一、IP地址配置
1、配置IP
执行 setup
选择网络配置
选择设备配置
选择eth0 --> 回车
配置IP
Ok-->Save-->Save&Quit-->Quit
重启网络配置 service network restart
2、启用网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=no 修改为 ONBOOT=yes
重启网络配置 service network restart
3、修改虚拟机网络连接方式(只针对虚拟机生效)
把虚拟机网络连接方式选择桥接
4、选择桥接到哪一块网卡
编辑---虚拟网络编辑器---桥接到有线网卡
5、UUID(唯一识别符)(只针对刻录镜像)
如果执行以上重启网络,最后一行失败,执行以下
vi /etc/sysconfig/network-scripts/ifcfg-eth0
5.1、删除mac地址行重启一下就会换算UUID ,不要删除UUID 会导致无法连接
5.2、删除UUID绑定文件
rm -rf /etc/udev/rules.d/70-persistent-net.rules
5.3、重启 reboot
【原创】 Linux 软件安装

四、Linux 软件安装
一、软件包安装
服务器安装原则:最小化安装、使用什么软件安装什么、尽量不卸载
软件包选择原则:
如果软件安装之后,是给大量客户端提供访问的,建议源码包安装
如果软件安装之后,是给本机或者少量用户访问,建议二进制包
1、软件包分类
1.1 源码包:
优点:开源、自由定制、本机编译,所以效率高
缺点:编译时间长,一旦报错,很难解决
1.2 二进制包:(也叫rpm包)
优点:安装速度快,简易
缺点:不再开源、自定义性差、软件效率低、依赖性...
a包--->b包--->c包 树形依赖
a包--->b包--->c包--->a包 环形依赖
库文件依赖 去 http://www.rpmfind.net 找
2、rpm安装,两种安装方式(手工RPM命令安装和yum在线安装,yum是二进制的在线安装方式)
2.1 手工RPM命令安装
2.1.1 包命名
包名-版本号-发布次数-适合linux系统.适合的硬件平台.rpm
E16 ---> RHEL6
包全名:操作没有安装的软件包,软件包使用包全名 gvfs-fuse-1.4.3-12.el6.i686.rpm(完整名字是包全名)
包名:操作的是已经安装的软件包使用包名 gvfs-fuse(英文是包名)
2.1.2 依赖性
2.1.3 安装
rpm -ivh 包全名(绝对路径)
-i 安装 -v 显示详细信息 -h 显示进度
安装位置:默认位置 rpm安装最好不要指定安装位置(有卸载命令),源码包一定要指定安装位置(源码包没有卸载命令,直接删除安装目录)
rpm -Uvh 包全名
-U 升级
启动程序:
/etc/rc.d/init.d/httpd restart 其他linux启动命令
service httpd restart redhat linux转悠命令,其他Linux没有
2.1.4 卸载
rpm -e 包名
在生产服务器不管是安装还是卸载都不允许强制,必须正确解决依赖性
2.1.5 查询
a:查询软件包是否安装
rpm -q 包名 查询包是否安装
rpm -qa | grep httpd 显示所有安装包
b:查询包信息
rpm -qi 包名 查询包的信息 -p 未安装的包
rpm -qip 包全名 查询没有安装包的信息 -i information
c:查询软件安装位置
rpm -ql 包名 查询包中文件的安装位置 l -->list 列表的意思
rpm -qlp 包全名 查询没有安装的包,如果安装会安装的位置
d:查询系统文件属于哪个包
rpm -qf 系统文件名
2.1.6 启动httpd服务
service httpd start|stop|restart|status RedHat版本专有命令
/etc/rc.d/init.d/httpd start 标准启动
2.1.7 网页目录
/var/www/html
3、yum在线安装(前提条件能连网)
3.1 基本命令
yum -y install 包名 安装 -y 自动回答yes
yum -y remove 包名 卸载 当它不存在,不要乱卸载,不知道被谁依赖了,卸载一时爽,一直卸载一直爽,linux系统下再装回去一个软件可就要老命了
yum -y update 包名 升级
yum list 查询所有可以安装的包
3.2 光盘作为yum源
3.2.1 cd /etc/yum.repos.d/
默认网络yum源生效,在本机不能连网的时候让光盘yum源生效,网络yum源改名
3.2.2 mount /dev/sr0 /mnt/cdrom
3.2.3 vi /etc/yum.repos.d/
baseurl=file:///mnt/cdrom/ 指定yum源位置
enabled=1 yum源文件生效
gpgcheck=1 rpm验证不生效
本地光盘yum源起作用
pkill -9 yum-updatesd 如果yum报错正在升级,执行此命令,强制杀死升级进程
yum -y install gcc (gcc是C语言编译器,不装gcc,源码包不能安装,并且安装gcc只能rpm方式安装)
4、源码包安装
问题1:是否可以在一台电脑中既安装RPM包Apache,又安装源码包Apache?
答:可以,安装位置不一样,RPM包默认安装位置,源码包手工指定安装位置,一般 /usr/local/apache2/,只能启动一个80端口。
问题2:源码包和RPM包如何选择?
答:如果服务对大量客户端提供访问,建议用源码包,如果服务只给少数人访问,建议RPM包
问题3:源码包从哪里来?
答:官方网站下载
问题3:如何把windows文件拷贝到linux系统中?
答:1、远程传输工具winscp或者一些其他工具传输到linux
4.1 使用传输工具把源码包从windows传输到linux系统
4.2 安装
4.2.1 解压
4.2.2 cd 到解压目录
4.2.3 查看安装文档
INSTALL README
4.2.4 编译前的装备
./configure --prefix=/usr/local/apache2
功能:
1.检测系统环境 生成Makefile
2.定义软件选项
4.2.5 编译 make clean
make
4.2.6 编译安装 (在这一步之前报错只需要执行make clean就行,这一步报错需要make clean, 并且删除apache2目录重来)
make install
报错判断:
第一:安装过程是否停止
第二:注意 error warning no 等错误报警
4.3 启动
/usr/local/apache2/bin/apachectl start
4.4 删除
直接删除安装目录
RPM包和源码包的区别:
启动:
RPM包:service httpd start|stop|resrart
/etc/rc.d/init.d/httpd start
源码包: /usr/local/apache2/bin/apachectl start
网页:
RPM包: /var/www/html/
源码包: /usr/local/apache2/logs/
5.其他
5.1 date 查看系统时间
date -s 20130310 设定日期
date -s 16:20:00 设定时间
5.2 du -sh 目录名 统计目录大小(统计的文件大小是准确的,包括垃圾文件、缓存等)
-s 总和
-h 习惯单位
5.3 df -h 统计分区大小 (统计的分区剩余空间是准确的,统计硬盘容量)
【原创】 Vi编辑器

二、Vi编辑器使用
一、Vi编辑器简介
1、vim(vi增强版本) 全屏幕纯文本编辑器(只能写文字,写字符)
alias 起别名,临时生效,重启会消失
vi /root/.bashrc 环境变量配置文件
alias vi='vim'
二、使用vim
1、vi模式
vim 文件名
按一个字母a,光标会向后面退一格,进入到插入模式,按ESC退出插入模式;按一个字母i,光标在原来位置;按一个字母o,会换到下一行
命令--->输入 a追加,i:插入,o:打开(会向下换一行)
命令--->末行 :w(保存) :q(不保存退出) :wq(保存退出) !强制 :q!(任何用户都可以使用) :wq!(只有root用户才可以使用)
2、命令模式操作
2.1、光标移动 hjkl (依次左、下、上、右)
:n移动到第几行
gg 两个小写的'g'移动到整个文件首
G 大写'G'移动到整个文件尾
^ (shift+6) 或者Home 光标移动到行首
$ (shift+4) 或者End 光标移动到行尾
2.2、删除字母
x删除单个字母,nx删除n个字母
2.3、删除整行、剪切
dd删除单行
ndd删除多行
p 小p粘贴到光标后面
P(英文状态shift+p) 大P粘贴到光标前面
dG从光标所在删除到文件尾 (删除之后u撤销)
2.4、复制
yy 复制单行
nyy 复制多行
2.5、撤销
u 撤销
ctrl+r 反撤销
2.6、显示行号
:set nu 显示行号
:set nonu 不显示行号
2.7、颜色开关
:syntax off 关闭颜色
:syntax on 打开颜色
2.8、显示隐藏符号(非打印字符)
:set list 显示影藏字符
:set nolist 关闭隐藏字符
vi配置文件
~/.vimrc 手工建立的vi配置文件
~ 登录用的的家目录
2.9、查找内容
/搜索的字符内容 向下查找
n下一个 下一个 N(shift+n) 上一个 上一个
2.10、替换 s
^ 行首符
:1,10s/lg/leigong/g 替换1行到10行的所有lg为leigong
:%s/lg/leigong/g 替换整个文件的lg为leigong
g范围内替换所有,没有加g只替换找到的第一个,后面的就不会管了
:1,5s/^/#/g 注释1到5行
:1,5s/^#//g 取消注释
:1,5s/^/\/\//g 文件头加入//
【原创】 Linux常用命令

一、Linux常用命令
一、linux命令的格式
1、命令 [选项] [参数] (选项是调整命令的功能,参数是这个命令操作的对象)
ls -al anaconda-ks.cfg(参数) 文件、目录、进程可以作为参数
ls list 显示目录下内容
ls -a 显示所有文件(包含隐藏文件)
ls -al 长格式显示所有文件
ls -h 文件大小显示为常见大小单位 B KB MB
ls -d 显示目录本身,而不是里面的子文件
ls -i +文件名 显示文件的inode号
ls -l 长格式显示
-rw------- 1 root root 1190 08-10 23:37 anaconda-ks.cfg
第一项: 权限位
第二项: 1 引用计数(对没目录来说代表目录下的子目录,对文件没什么毛用)
第三项: root 所有者
第四项: root 属组
第五项: 大小
第六项 最后一次修改时间
第七项 文件名
2、提示符
[root@localhost src]#
[当前登录用户@主机名 当前所在目录]#
# 超级用户
$ 普通用户
用户家目录 管理员家目录 /root 普通用户家目录 /home/用户名
二、目录操作命令
1、cd 切换所在目录 列:cd /home
相对路径:参照当前所在目录,进行查找。一定要先确定当前所在目录。 root]#cd ../usr/local/src
绝对路径:cd /usr/local/src 从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置
cd 或者cd ~ 进入当前用户的家目录 超级用户 /root 普通用户 /home/aa/
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
2、pwd 显示当前所在目录
3、linux常见目录
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录 ,启动相关文件
/dev 设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
/root 超级用户的家目录
/tmp 临时目录
/sbin 命令保存目录(超级用户才能使用的目录)
/proc 直接写入内存的 (内存沾满之后会死机,重启会消失,不要随便动内存)
/sys 直接写入内存的
/usr 系统软件资源目录
/usr/bin/ 系统命令(普通用户)
/usr/sbin/ 系统命令(超级用户)
/var 系统相关文档内容
/var/log 系统日志位置
/var/spool/mail/ 系统默认邮箱位置
/var/lib/mysql/ 默认安装的musql库文件目录
4、建立目录
mkdir 目录名
mkdir -p 11/22/33 递归创建目录
5、删除目录
rmdir 目录名 (只能删除空目录)
rm 文件名 删除文件
rm -rf 目录 (删除文件和目录)
-r 递归 删除目录
-f 强制
6、tree 目录名 显示指定目录下所有内容的目录树
三、文件操作命令
1、创建空文件或修改文件时间
touch 文件名
2、删除文件
rm -rf 文件名
-r 删除目录
-f 强制
3、cat 文件名 查看文件内容;从头到尾
cat -n 文件名 列出行号
空格向下翻页,b向上翻页,q退出
linux本机 shift+PageUp 向上翻页,shift+PageDown 向下翻页
4、more 文件名 分屏显示文件内容
5、head 文件名 显示文件头
head -n 行数 文件名 显示指定文件头几行
head -n 20 test1 显示文件头20行
head -20 test1 显示文件头20行
6、tail 文件名 显示文件尾
tail -f 文件名 监听文件尾,不退出
快捷键
ctrl + c 强制终止
ctrl + l 清屏
ctrl + u 光标所在删除到行首
ctrl + y 粘贴删除的内容
ctrl + a 光标移动到行首
ctrl + e 光标移动到行尾
7、链接文件(类似于windows的快捷方式)
ln -s 原文件 目标文件 文件名都必须写绝对路径
ln -s /root/mymulu/test1 /tmp/bols
更改原文件软链接数据也更改,更改软链接原文件数据也一样更改,删除原文件软链接打不开,删除软链接原文件不影响。
四、文件和目录都能操作的命令
1、rm删除 删除文件或目录
2、cp复制
cp 原文件 目标位置
-r 复制目录
-p 连带文件属性复制
-d 若原文件是链接文件,则复制链接属性
-a 相当于 -pdr
cp -a /root/mymulu/test2 /tmp/t2
3、mv 剪切或改名
mv 原文件 目标位置
mv /root/mymulu /tmp/mymulu 剪切
mv /root/mymulu /root/my1 原文件位置和目标文件位置在同一个目录下就是改名
五、权限管理
1、权限位
-rw-r--r--. 1 root root 11 Mar 2 13:36 test2
权限位十位:
第一位:文件类型,(- 普通文件;d 目录文件;l 链接文件;c 设备字符文件 )
第二位到第十位(共九位权限位)
九位 属主权限u(user) 属组权限g(group) 其他人权限o(other)
r 读 4
w 写 2
x 执行 1
2、chmod 修改权限
chmod u+x test1 test1文件的属主加上执行权限
chmod u-x test1
chmod g+w ,o+w test1
chmod u=rwx test1
chmod 755 test1
chmod 644 test1
777 绝对不允许在服务器给目录赋予777权限
3、权限的意义
3.1、权限对文件的含义
r:读取文件内容 对应命令: cat more head tail
w:编辑、新增、修改文件内容(不包含删除文件内容) 对应命令: vi、echo
x:可执行 对文件来说最高权限是执行权限
给hello.sh文件赋予755权限,并且执行它
执行文件两种方式,1、绝对路径方式 2、相对路径方式
3.2、权限对目录的含义
r:可以查询目录下文件名 对应命令:ls
w:具有修改目录结构的权限。如新建文件和目录,删除此目录下得文件和目录,重命名此目录下得文件和目录,剪切, 对应命令:touch rm mv cp ,对目录来说最高权限是写权限
x:可以进入目录 对应命令:cd
目录可用权限: (必须要有查看权限和进入目录权限)
0 最小权限
5 基本权限
7 最大权限
4、属主和属组命令 chown
chown 用户名 文件名 改变文件属主
chown user1 aa1 user1用户必须存在
chown user1:user1 aa1 改变属主的同时改变属组
useradd 用户名 添加用户 (在添加用户的时候默认会添加一个和用户名一样的组)
passwd 用户名 设定用户密码
六、帮助命令
1、man 命令 查看命令的帮助
man ls
2、命令 --help
touch --help 查看命令的常见选项
七、查找命令
1、whereis 命令名 查找命令的命令,同时看到帮助文档的位置
它在哪?
它是干嘛的
2、find 搜索命令
按照“文件名”查找 -name
find 查找位置 选项 文件名
find / -name abc 按照文件名查找
按照“用户”查找 -user
find . -user root 查找当前目录所有者是root的文件
find . -group root 查找当前目录所属组是root的文件
find / -nouser 查找/目录下没有属主的文件
Linux中没有所有者的文件,以下两种是正常的:
1、外来文件(U盘、光盘)
2、极少内核产生的文件
/proc /sys /mnt/cdrom/ 除了这三个目录
通配符:
* 匹配任意内容
? 匹配任意一个内容
[] 匹配任意一个中括号里面的内容
正则:
* 前一个字符匹配任意多次
. 匹配任意一个字符
.* 匹配任意内容
? 前一个字符匹配0次或1次
[] 匹配中括号内任意一个字符
通配符:用来匹配查找文件名,通配符是完全匹配,必须一模一样(用来匹配字符串),完全匹配(find查找)
正则: 用来匹配文件里的内容,是包含匹配(grep查找)
按照“文件大小”查找 -size
-size 按照文件大小查找 +50k,大于50k,-50k,小于50k,50k,等于50k k(千字节必须小写),M(兆字节必须大写)
-size n[cwbkMG](选项)
File uses n units of space. The following suffixes can be used: 文件使用n个空间单位。可以使用以下后缀:
‘b’ for 512-byte blocks (this is the default if no suffix is used) b是选项默认的,不加单位则按照512字节作为一个数据块搜索
‘c’ for bytes 按照字节搜索
‘w’ for two-byte words 双字节,按照一个字搜索
‘k’ for Kilobytes (units of 1024 bytes) “k”表示千字节(1024字节的单位)按照千字节搜索
‘M’ for Megabytes (units of 1048576 bytes) “M”表示兆字节(单位为1048576字节)按照兆字节搜索
‘G’ for Gigabytes (units of 1073741824 bytes) “G”表示千兆字节(单位为1073741824字节)按照千兆字节搜索
find . -size -1k 在当前目录查找小于1k字节的文件
按照“文件类型”查找 -type
-type 类型 按照文件类型查找 f:普通文件 d:目录 l:链接文件
find . -type f
find . -type d
按照“权限”查找 -perm
find . -perm 644
按照“文件名不区分大小写”查找 -iname
find . -iname abc
按照“i接点”查找 -inum
find . -inum 786119 知道i节点去查找文件名
ls -i 知道文件名去查找i节点
按照“修改时间”查找 -mtime
-10,10天内;+10,10天前;10,第10天
在查找出的结果中,直接进行命令操作
长格式显示1天内m2目录下面创建的文件和目录
3、grep "字符串" 文件名 查找符合条件的字串
grep "root" /etc/passwd
grep -v "root" /etc/passwd -v反向选择(取反),在/etc/passwd 中不存在root 字符的
4、管道符
命令1 | 命令2 命令1的执行结果作为命令2的执行条件 (管道符的作用和-exec的作用一模一样,find命令不支持管道符,所以专门开发了-exec命令)
只要加了管道符,不论前面是文件还是内容,全都当做文件内容来处理,使用grep搜索查找
netstat -an | grep ESTABLISHED | wc -l 统计正在连接服务器的网络连接数量
补充命令:
netstat 查看网络状态的命令
-t 查看tcp端口 (tcp通信,需要进行三步,A问B你在吗,B答复A我在,A再给B回复我要发数据了,可靠)
-u 查看udp端口 (udp,A直接发数据给B,速度快)
-l 监听
-n 以IP和端口号显示,不用域名和服务名显示
netstat -tuln 查看本机开启的服务
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 按照连接数量,统计哪个ip地址连接数量多,可以用来屏蔽排除非法攻击
八、压缩和解压缩
1、linux可以识别的常见压缩格式
.gz .bz2
2、常见的压缩和打包命令
.tar.gz (压缩性能相对较差,但是速度更快) .tar.bz2 (算法先进,压缩出来结果更小,但是更占用时间)
linux不靠扩展名区分文件类型,而是靠权限,建议linux系统下压缩包严格区分扩展名
tar -zcvf 压缩文件名 源文件
tar -zcvf aa.tar.gz aa
-z 识别.gz格式
-j 识别.bz2格式
-c 压缩
-x 解压缩
-v 显示压缩过程
-f 指定压缩包名
-t 只查看不解压
查看不解包
tar -ztvf aa.tar.gz 查看不解包
tar -jtvf aa.tar.bz2
指定到解压位置
tar -jxvf aa.tar.bz2 -C /tmp/
九、关闭和重启命令
服务器绝对不允许关机,只能重启,并且服务器应该定时重启,保证服务器状态归零
1、shutdown -h now 没有特殊情况,禁止使用此命令
shutdown -h 关机
shutdown -r now 立即重启 (shutdown -r 重启,最安全的重启命令,会保存正在运行的服务然后再重启)
shutdown -r 16:00 16:00重启 -r(reboot)
windows设置关机,shutdown -s -t 200(秒)
2、reboot 重启
十、挂载命令
linux所有存储设备都必须挂载使用,包括硬盘
挂载:给你的分区找到一个硬件名,创建一个目录,把它连起来
/dev/sr0<------->cdrom
1、mount 挂载
mount -t 文件系统 设备描述文件 挂载点(已经存在的空目录)
mount -t iso9660 /dev/sr0 /mnt/cdrom/ 默认挂载选项
mount /dev/sr0 /mnt/cdrom/ 简写挂载
光盘挂载
/dev/sda1 第一个scsi硬盘的第一个分区
/dev/cdrom 光盘
/dev/hdc 光盘 centos5.5
/dev/sr0 光盘 centos6.x
/dev/sr0 设备文件名 /mnt/cdrom/ 才是盘符
mount直接回车,查看当前已经挂载的设备
2、umount 卸载
umount /mnt/cdrom 强调:退出挂载目录,才能卸载
十一、网络命令
1、ping 测试网络连通性
ping -c 次数 ip 探测网络通畅
2、ifconfig 查询本机网络信息
Linux脚本中 #是注释 唯独一句 #!/bin/bsah 不是注释, 标注下面是shell语句开始...
十二、centOs7防火墙操作命令
1、防火墙开启、关闭、禁用
(1)设置开机启用防火墙:systemctl enable firewalld.service
(2)设置开机禁用防火墙:systemctl disable firewalld.service
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld
(5)检查防火墙状态:systemctl status firewalld
2、使用firewall-cmd 配置端口
(1)查看防火墙状态:firewall-cmd --state
(2)重新加载配置:firewall-cmd --reload
(3)查看开放的端口:firewall-cmd --list-ports
(4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
命令含义:
–zone #作用域
–add-port=9200/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
(5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent
【原创】 Linux系统测试网络带宽

linux系统下测试带宽
第一步、安装speedtest
在linux操作系统下执行下载命令: wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
第二步、授权
chmod a+rx speedtest.py
mv speedtest.py /usr/local/bin/speedtest
chown root:root /usr/local/bin/speedtest
第三步、使用speedtest命令测速
执行命令:speedtest