学习目标:常用linux命令的使用(程序的部署,运维,分布式集群,大数据,云计算)
对服务器的管理,远程登录的常用软件有以下3款:
xshell
putty
secureCRT
**如何远程登录linux服务器
1、要知道目标linux服务器的ip地址
2、要让客户端跟目标服务器两者要能联网
3、要有一款ssh登录的客户端软件
4、启动ssh客户端软件进行登录
**登录之后的提示符:
[renwoxing@localhost ~]$
其中renwoxing是当前登陆者的用户名
localhost是本服务器的主机名
~ 是表示登陆者目前所处的目录,~就是指该登陆者的主目录/home/renwoxing
一、文件系统的管理
*输入命令的时候要常用tab键来补全
ls 查看目录信息 ( ls / )
ls -l 等价于 ll <l是L的小写,不是数字1>
路径的表示方法有“相对”和“绝对”
比如如果当前所处目录为 /home/renwoxing,要查看/home目录下的信息,可以有两种方法:
ls ../
ls /home
pwd 查看当前所处目录的绝对路径
cd 切换目录 (cd /) ,如果不带参数则切换到用户主目录 ~
mkdir 创建文件夹
mkdir -p a/b/c 如果要创建的文件夹的父目录不存在,则自动创建
rmdir 删除空文件夹 (只能删除空文件夹)
rm -r /a/b (删除非空文件夹)
删除文件
rm filename (rm -r 删除文件夹 rm -rf 强制删除文件或文件夹)
创建文件
touch a.avi 创建一个空文件
vi blabla.txt 用文本编辑器编辑一个文件并且保存
echo "angelababy,zhen de hen xihuan ni" > qingshu.txt 把左边的输出放到右边的文件里去
移动文件 修改文件名
mv a/wenjian1.txt b/file1.txt (移动文件的同时还修改了文件名)
拷贝文件
cp srcFile destFile
查看文本文件内容
cat wodeqingshu.txt
more wodeqingshu.txt 可以分页看(翻页:空格,往回翻:b ,退出: q或者 Ctrl+C)
less wodeqingshu.txt 不仅可以分页,还可以方便地搜索,回翻等操作(翻页:空格,往回翻:↑,往下翻:↓,退出:q)
tail -10 wodeqingshu.txt 查看文件的尾部的10行
程序打出的日志在生产实践中具有非凡的debug的意义
tail -f user.log 实时刷新显示文件的尾部
head -20 wodeqingshu.txt 查看文件的头部20行
二、权限管理
linux系统中对文件权限的描述机制:
d r w x r w x r - x
所有者 所属组 其他人
可以表示为二进制: 111 111 101
也可以表示为十进制: 7 7 5
修改权限
chmod u+rwx file 为file添加或取消所属用户的权限
(u代表所属用户 o代表其他用户 g代表所属组的成员用户)
chmod 567 file 用数字也可以表示权限
5 ---> 101 ---> r-x
修改文件的所有者owner(只能由root权限才能操作)
chown root:root file 将file的所有者改成hadoop用户,所属组改成hadoop组
上级目录的权限对本级文件或者文件夹的操作有约束
三、用户管理
添加用户
useradd itcast0830
必须设置密码才能正常登陆 passwd itcast0830
删除用户
userdel yun12 ----这样删除的时候,用户的主目录会被保留
userdel -r itcast -----删除用户的同时删除用户的主目录
修改用户属性
usermod -l itcast itcast0508 将itcast0508的登陆名改为itcast
usermod -g root itcast 将itcast的组改为root组
usermod -G hadoop,hellogrp itcast 给itcast添加两个组hadoop,root
usermod -d /home/itcast itcast将itcast0830的主目录改成/home/itcast
(要事先创建itcast目录,并且拷入环境变量文件)
----****----修改用户的密码
passwd itcast0830
添加用户组
groupadd heros
删除用户组
groupdel beauties
修改用户组属性
groupmod
查看当前登陆者的身份
whoami
查看当前用属的组
groups
四、常见系统管理(凡是涉及到修改,就一定要用root权限)
****
轻易不要使用su去切换到root的身份
普通用户使用sudo来执行root权限的命令
如,将ys用户添加到sudoers文件中去 vi /etc/sudoers
root ALL=(ALL) ALL
ys ALL=(ALL) ALL
保存时 使用wq! !是强制保存
磁盘空间信息查看
df -h 查看磁盘空间状态信息
du -sh * 查看指定目录下所有子目录和文件的汇总大小
进程信息查看
free 查看内存使用状况
top 查看实时刷新的系统进程信息
ps -ef 查看系统中当前瞬间的进程信息快照
ps -ef | grep myshell.sh 搜索myshell进程的信息
kill -9 pid 杀掉进程 (-9 表示强制杀死)
五、文件归档压缩(1:打包--归档; 2:压缩)
1、归档
tar -cvf testdir.tar testdir/
2、压缩
gzip testdir.tar
gzip file
bzip file
tar -czvf testdir.tar.gz testdir/
tar -xzvf testdir.tar.gz 解压到当前目录下
tar -xzvf testdir.tar.gz -C Downloads/ 解压到指定的Downloads目录下
六、网络管理
修改ip地址的配置
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改该配置文件即可改ip地址
或者在root权限下用setup指令通过一个带提示的伪图形界面来修改
查看ip地址
ifconfig
修改主机名
sudo vi /etc/sysconfig/network 修改其中的hostname配置项
要想立即生效 可以执行指令 hostname nidezhujiming
HOSTNAME=yun12-01
管理内网的"主机名---ip地址"本地映射
sudo vi /etc/hosts
192.168.2.250 yun12-01
重启网络服务
root权限下 service network restart
关闭防火墙服务 service iptables stop
关闭防火墙自动启动 chkconfig iptables off
修改系统的默认启动级别
vi /etc/inittab
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
~
用level 3 就启动全功能状态的字符界面
在命令行模式下,用startx可以手动启动图形界面(在服务器上操作)
查看当前的进程连接网络的信息
netstat -nltp
五、常用工具指令
wc 统计文本信息(行数,词数,字符数)
date 查看或者修改系统的日期和时间
echo 输出字符串或者变量的值
vi linux系统中最通用的文本编辑器
vi hello.world 进入文件编辑
进去之后处于非编辑模式,此时,要按一个i进入insert模式
在insert模式下,可以跟普通文本编辑器一样编辑内容
编辑完成之后,先按Esc退出insert模式,进入非编辑模式
然后再按 :进入底行命令模式,在底行命令中敲入wq并回车,即可保存
(保存文件的另一种模式: 按Esc退出insert模式,然后直接按快捷键保存—— shift + zz)
如果不保存,底行命令就用 q!
六、linux中的软件安装
jdk
将安装包解压到你的安装路径下
然后修改环境变量 sudo vi /etc/profile
然后 source /etc/profile 来生效
tomcat
Eclipse
mysql
redhat 公司的RPM方式的包管理 也是很常用的软件包管理器
rpm -qa | grep mysql
sudo rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps
sudo rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
/usr/bin/mysql_secure_installation 配置 数据库服务器
第三方使用 sftp 上传文件 alt+p
halt 关机 reboot重启
linux 经验:
1.linux 服务器“只能”挂载,不能关机
2.登录完服务器一定要logout
common sense:
常见的UNIX:
AIX --IBM,
HP-UX --HP,
solaris --SUN
常见的linux:
1. fedora RedHat CentOS SUSE gentoo 红旗 mandriva turbolinux RHEL enterprise
2. Debian Ubuntu
1. Linux分区包括主分区,扩展分区,逻辑分区,swap等
一般/boot和swap分区为主分区,其他为逻辑分区,但是也不一定。根分区一般为8G
/dev/cdrom -- 光驱
/dev/sda -- scsi硬盘
主分区为sda1-sda4 ----第一块scsi硬盘的1-4个主分区
逻辑分区为sda5-sda16
1~4为主分区或扩展分区
5~7为逻辑分区
2.
ifconfig eth0 --检查网卡ip是否生效
ifconfig eth0 ip -- 临时设置网卡ip
service network restart -- 网卡重启
telnet ip 端口号 -- 查看服务端口是否开启
3. ubuntu中没有默认为superman,如果想获得管理员权限,需要用sudo su ->根据提示输入密码
4. 安装源码包:.tar.gz
1.解压:sudo tar zxvf 压缩包名 --也可以是tar zvxf,看到解压过程
2.也可以解压缩包到home:->cd /home->cd 文件夹名字/->./vmware-install.pl,然后下一步下一步
3. 查看结果 lsmod | grep vmblock
5. 设置共享文件夹:
共享文件夹被建立在/mnt/hgfs目录下,添加工具:sudo apt-get install open-vm-dkms,然后:sudo mount -t vmhgfs .host/ /mnt/hgfs,
这时/mnt/hgfs里就有share文件夹了
6. ls -- 列出当前目录下的所有文件夹和文件
ls -l --长格式显示 -> long
ls -a --显示所有文件(包含隐藏文件) ->all
ls -al --长格式显示(包含隐藏文件) ->all long
ls -hl --文件大小显示为常见大小单位 B KB MB ->human-readable
ls -ahl --
ls -d --查看目录属性 -- 貌似没作用
附加:
ll -- 同ls -l
ls -lR 目录 --递归查看目录
ls -l 文件名 -- 查看文件属性
7. cd ~ 进入当前用户的家目录 /root /home/aa/
cd (回车)-- 到家目录
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
pwd --显示当前所在目录--得到绝对路径
mkdir 目录名 --建立目录
mkdir -p 11/22/33/44/ 递归建立目录
mkdir ariel briel criel --同时建立多个目录,中间用空格隔开,同时建立多个文件也是如此
mkdir dirctory{1..8} -- 集合操作
touch 文件名 --建立文件,再次touch是修改时间
touch file{1..10} --{}集合操作符 // 创建file1-file10十个文件
vi file1(文件名) --修改文件
rmdir 目录名 --删除空目录
rm 文件名 --删除文件 --提醒是否删除空(一般)文件...选择y or n
rm -rf 目录名 --删除目录和文件
rm -r 目录名 --递归删除目录
rm -f 目录名 --强制删除
tree 目录名 --显示指定目录下所有内容的目录树
-a -- 显示文件加目录树
8. linux常见目录
普通用户的Desktop -- /home/ariel/Desktop
root用户的桌面在 -- /root/Desktop
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录,启动相关文件
/dev 设备文件保存目录 -- device装置,设备
/etc 配置文件保存目录 --
/home 普通用户的家目录
/lib 系统库保存目录 -- library 图书馆
/mnt 系统挂载目录
/media 挂载目录
/root 超级用户的家目录
/tmp 临时目录 --temporary 临时的,暂时的
/sbin 命令保存目录(超级用户才能使用的目录)
/proc 直接写入内存的
/sys
/usr 系统软件资源目录
/usr/bin/ 系统命令(普通用户)
/usr/sbin/ 系统命令(超级用户)
/var 系统相关文档内容
/var/log/ 系统日志位置
/var/spool/mail/ 系统默认邮箱位置
9. 如果配置静态ip,则添加如下内容:
auto eth0
iface eth0 inet static
address 192.168.33.201
netmask 255.255.255.0
gateway 192.168.33.1 (在新打开的文件中直接加入这些内容 然后保存退出即可)
要是配置生效,需要重启网卡:
ifconfig eth0 down
ifconfig eth0 up
若还有没有配置成功,则需重启下网络服务
/etc/init.d/network restart
service network restart
10. ctrl+c 强制中断
11. clear 清空当前屏幕,->ctrl+l
12. centos中设置ip:
setup->网络配置 -- tab键切换出来
13. touch 文件名 --创建文件,或者修改文件时间
rm -rf ——删除文件
14. cat 文件名 --查看文件内容
-n --列出行号
15. more 文件名 ——分屏显示内容 空格——向下翻页 b——向上翻页 q——退出
16. head 文件名 ——显示文件头
-n (1.2.3)行数 指定显示文件头几行
17. tail 文件名 ——显示文件尾部
-n 同上
18. ln -s —快捷方式
-- 软连接
ln -s 源文件 目标文件 文件名都必须写绝对路径 [link]
-- 硬连接
ln 源文件 目标文件 文件都必须写绝对路径 [link]
19. root用户的桌面在/root/Desktop
20. cp -a 源文件 目标位置 -- -pdr 复制目录加文件连带文件属性
-r ——复制目录连带子目录
-p -连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
21. mv 源文件 目标位置 --移动文件或目录
mv 源文件名 新文件名 --修改文件名或者目录
22. man 命令名 -- 帮助命令 --进入man以后,输入q退出
命令 --help 查看命令的常用选择 --两个-
23. whereis 命令名 -- 查找命令的位置
which 命令 -- 查找命令的命令,能看到相关别名,但不能查看文件
locate 文件名 -- 在保存文件名的数据库中按文件名查找
updatedb -- 强制更新数据库
24. z --搜索命令
find 查找位置 -name 文件名 -- 如果没有指定目录,则表示在当前目录下查找
-user 用户名
-group 组名
-nouser 找没有属主的文件
-size 按照文件大小 +50k:大于50K , -50k:小于50k, 50k:等于50k --默认单位是数据块
大于50M小于100M-- +50M -a -size -100M -M必须大写 ,k必须小写
-type 类型 按照文件类型查找f:普通 d:目录 |:链接
--- 如果要加通配符,要在通配符外加引号 -name "^aabb*"
eg: find /root -perm 644 按照权限查找
-iname 按照文件名查找,不区分大小写
-mtime 修改时间
-inum --inode - i节点
-- 查找文件并删除
find /var/log/ -mtime +10 -exec rm -rf {} ;
-- 查找文件并同时列出详细信息
find /home -name test.php -exec ls -l {} ; -- 必须有;
25. grep “字符串” 文件名 查找符合条件的字串行,文件名可给绝对路径
-i “root” /etc/passwd
-v 反向选择 -- eg:grep -v "^#" file.txt // 返回文件中没有以"#"开头的行
-i 忽略大小写
grep “key” 文件名
grep “a*” 文件名 匹配整个文档,包括空白行
26. 管道符:
命令1 | 命令2 命令1的执行结果作为命令2的执行条件
netstate -an | grep ESTABLISHED | wc -l 统计正在连接的网络连接数量
more 文件名 | grep "字串" -- 提取含有“字串”的行
27. netstat 查看网络状态的命令
-t 查看tcp端口
-u 查看udp端口
-l 监听
-n 以ip和端口号显示,不用域名和服务名显示
28. 压缩和解压缩
.gz .bz2 .zip -- linux 可以识别的最常见的压缩格式
.tar.gz .tar.bz2 -- 常见的压缩和打包命令
-- 解压 .tar 文件 ------tar xvf 文件名
压缩同时打包
tar -zcvf 压缩文件名 源文件
-z --识别.gz格式
-c 压缩 -- compress
-v 显示压缩过程
-f 指定压缩之后的文件名
--eg:tar -zcvf aa.tar.gz aa
解压缩同时解打包
tar -zxvf 压缩文件名
-x 解压缩
--eg:tar -zxvf aa.tar.gz
--------------------------------------------------
压缩同时打包
tar -jcvf 压缩文件名 源文件
-j --识别为.bz2格式
解打包同时解压缩
tar -jxvf 压缩文件名
-------------------------------------------------
压缩.zip
zip 压缩包名 文件名
解压缩.zip
unzip 压缩包名
--------------------------------------------------
.tar 打包
tar -cvf 打包文件名 源文件
-c 打包
-v 显示打包过程
-f 指定产生后的文件名
tar 解包
tar -xvf 打包文件名
-x 解打包
-v 显示解打包过程
-f 指定产生后的文件名
--------------------------------------------------
查看不解包
tar -ztvf 压缩文件名
tar -jtvf 压缩文件名
-t 只查看不解压
指定解压缩位置 解压时追加目录路径
tar -zxvf 压缩文件名 -C/tmp
30. 关闭和重启命令
sync 数据同步
shutdown -h now 没有特殊情况使用此命令
shutdown -r now 重启
reboot --重启
31. 挂载命令
linux 中所有存储设备都必须挂载使用,包括硬盘
光盘挂载 --光盘不能自动挂载
/dev/sda1 第一个scsi硬盘的第一分区
/dev/cdrom 光盘 --快捷方式
/dev/hdc 光盘 --源文件
1. mount -- 查看所有挂载的设备
mount -t 文件系统 设备描述文件 挂载点(已经存在空目录,保证光盘在光驱中)
mount 【-t iso9660】/dev/cdrom-设备文件 /mnt/cdrom--挂载点
2. 光盘卸载
umount /dev/cdrom
或者umount /mnt/cdrom --强调:退出挂载目录(cdrom),才能卸载
3,挂载U 盘
fdisk -l //查看所有分区,确定U 盘的设备文件名
mount -t vfat /dev/sdb1 /mnt/usb
-t vfat-->fat32
fat--->fat16
//linux 默认情况下不识别ntfs 格式,如果要使用,必须重新编译内
32. 网路命令:
1. ping 测试网络连通性
ping -c 次数 -s 包大小 ip 探网路畅通 (-c 需要加上哦)
eg : ping -c 10 -s 1000 192.168.140.168
2. ifconfig 查询本机网络信息
33. 权限管理
1 权限位
-rw-r--r-- 1 root root 0 08-11 01:45 aa
权限位是十位
第一位: 代表文件类型
- 普通文件
d 目录文件 -- dir
l 链接文件 -- link
九位 所有者权限u(ser 属组权限g(roup 其他人权限o(ther
r 读 4
w 写 2
x 执行 1
7->读写执行 6->读写 5->读,执行
4->只读 3->写执行 2->写 1->执行
2 修改权限
chmod ----change mode
chmod u+x aa --u-user aa文件的属主加上执行权限
chmod u-x aa -- 移除aa文件属主的执行权限
chmod g+w,o+w aa --g-group 对aa文件的组加上写权限,其他人也加上写权限
chmod u=rwx aa -- 对aa文件的属主加上全部权限
-R --递归修改
chmod 755 aa
chmod 644 aa
3 权限意义:
1)权限对文件的含义
r:读取文件内容
w:编辑、新增、修改文件内容
但是不包含删除文件
x:可执行
/tmp/11/22/abc ---------
2)权限对目录的含义
r:可以查询目录下文件名
w:具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,
重命名此目录下文件和目录,剪切
x:可以进入目录
chmod -R 777 /dir -- 对/dir目录及其目录下的所有文件为所有用户加上全部权限
4 属主和属组命令
chown ------change owner
chown 用户名 文件名 改变文件属主
chown user1 aa user1必须存在
--chown :user1 aa 改变属主同时改变属组
// chgrp 改变属组 --change group
chgrp 组名 文件名 --改变文件的属组
useradd 用户名 添加用户
passwd 用户名 设定用户密码
--------------------------------------------------------------------------------
34. vi编辑器 --zhcon中文插件
vim --- 全屏幕纯文本编辑器
别名 alias 命令=‘命令别名’
alias vi='vim'
1.linux 用户环境变量配置文件
#vi /root/.bashrc --修改环境变量配置文件
要想生效必须重新登录 logout->
2. vi 的三种模式:
命令模式
-- 1.光标移动
:n -- 移动到第几行
gg -- 移动到文件头
G -- 移动到文件尾
^ -- 移动到行首
$ -- 移动到行尾
-- 2.删除字母
x -- 删除单个字母
nx -- 删除n个字母
-- 3.删除整行 相当于剪切
dd -- 删除单行
ndd -- 删除多行
dG -- 从光标所在行删除到文件尾
-- 4.复制
yy -- 复制单行
nyy -- 多行复制
-- 5.粘贴
p -- 粘贴
P(大写) -- 粘贴到光标前
-- 6.撤销
u -- 撤销
ctrl+r -- 反撤销
-- 7.显示行号
:set nu -- 显示
:set nonu -- 不显示:
-- 8.颜色开关
:syntax off --关
:syntax on --开
-- vi配置文件
~/.vimrc 手工建立的,vi配置文件
-- 9.查找
/查找内容
n -- 下一个
N -- 上一个
-- 10.替换
:1,10s/old/new/g -- 替换1到10行的所有old为new
:%s/old/new/g -- 替换整个文件的old为new
-- 11.注释
:1,5s/^/#/g -- 注释1-5行
:1,5/^#//g -- 取消注释
:1,5/^///g -- 文件头加入//
输入模式
a --追加,光标之后
i --插入,在光标之前
o -- 在下行插入
O -- 在上行插入
末行模式
:
:q --不保存直接退出
:q! --强制不保存退出
:wq /:x-- 保存退出
:wq! -- 强制保存退出,只有管理员能用
35. 安装软件:
1. 源码包
优点:开源,自由定制
缺点:编译时间长,一旦报错很难解决
2. 脚本安装包
3. 二进制rpm包
36. 二进制rpm包 --在挂载光盘中,首先挂载 mount -t iso9660 /dev/cdrom /mnt/cdrom
优点:安装速度快,简易
缺点:自定义性差,库文件依赖性--www.rpmfind.net找其目录
包全名: 包名-版本号-发布次数-适合的linux平台-硬件平台.rpm
如果我们操作的是未安装包,那么必须使用全包名,而且要使用绝对路径
如果我们操作的对象是已经安装的包,那么必须使用包名,但是任何路径都可以执行
--安装:
rpm -ivh 包全名 --install -- 安装rpm包 库文件依赖 www.rpmfind.net
rpm -Uvh 包全名 --update --升级,也可以直接安装
--卸载:
rpm -e 包名 -- 卸载rpm包,先卸载依赖包、、、、、
rpm -e --nodeps 包名 -- 强制卸载,只允许试验使用
--检查:
rpm -q 包名 -- 检查包是否安装
rpm -qa | grep 包名 -- 检查所有安装包,提取符合条件的包
rpm -qi 包名 -- 查询包的信息 -i--information
rpm -qip 包全名 -- 查询未安装包的信息
rpm -ql 包名-- 查询包中文件的安装位置 -l--list
rpm -qlp 包全名 -- 查询没有安装的包,打算安装的位置
rpm -qf 系统文件名 -- 查询系统文件属于哪个包 -f -- file
-- 启动httpd服务
1. service httpd restart|start|stop|status -- 不是标准命令
2. /etc/rc.d/init.d/httpd start|restart|stop|status-- 绝对路径启动,标准启动模式
37. yum 包 -- 跟的只有包名
yum 包 --自动补全库文件,联网安装 -- 不允许卸载
yum -y install 包名 -- 安装
-- yum -y remove 包名 -- 卸载,一般不允许
yum -y update 包名 -- 更y新升级
yum list --查询所有可以安装的包
光盘作为yum源:
1.cd /etc/yum.repos.d/
(mv CentOS-Base.repo CentOS-BS.repo.bak--修改文件名)
2. mount /dev/hdc /mnt/cdrom
-- 如果没有网络,先使修改--(mv) CentOS-Base.repo文件名为CentOS-Base.repo.bak使其使用失效,
-- 从而使系统使用CentOS-Media.repo文件
3. vi /etc/yun.repos.d/CentOS-Media.repo
baseurl=file:///mnt/cdrom --指定yum源位置
enabled=1 --源文件生效
gpgcheck=0 --rpm验证不生效
pkill -9 yum-updatesd 如果yum报错正在升级,执行此命令,强制杀死升级进程
yum -y install gcc (gcc是c语言编译器,不装gcc,源码包不能安装)
38. 源码包安装
1. 远程传输工具winscp传输apache到linux
httpd
2. 安装
1.解压
2.cd 解压目录--tar zxvf 文件名
3.查看安装文档 -- INSTALL README -- 里面有每一个源码包的配置文件
4.编译前准备
./configure --prefix=/usr/local/apache2(名)--安装路径
功能:
1.检测系统环境,生成makefile
2.定义软件选项
-- 若安装中报错,使用make clean退出安装
5.编译
make
6.编译安装
make install
3. 启动
/usr/local/apache2/bin/apachectl start --源码包apaceh的启动方式
4. 删除
直接删除安装目录
39. date 查看系统时间
date -s 20130220 设定日期
date -s 09:30:00 设定时间
du -sh 目录名 统计目录大小
-s 和
-h 习惯单位
40. 普通用户转换到root用户
su - root -- - 连带环境变量一起切换
sudo su
-------------------------------------------------------------------------------
41.用户操作
用户信息文件: vi /etc/passwd
-- 七列:
briel : x : 501:501 : briel :/home/briel:/bin/bash
| | | | | | |
用户名:密码位:UID:GID:用户说明:用户家目录:用户登录之后的权限
UID -- 用户ID, >500为普通用户
GID -- 初始值ID
影子文件:/etc/shadow
组信息文件:/etc/group
briel: x : 501 :
| | |h |
组名 :密码位:组ID:组中附加用户
1. -- 添加用户
useradd 【选项】 用户名
选项:
-g -- 指定初始组,一般不手工指定
*-G -- 指定附加组,把用户加入组,一般使用附加组
-c -- 添加说明
-d -- 手工指定家目录,不需要事先建立
-s -- /bin/bash 手工指定用户登录之后的权限
-- eg useradd -G ariel(附加组) briel(用户) --添加用户briel,同时指定附加组为ariel(初始组为briel)
初始组:每个用户初始组只能有一个,一般都是和用户名相同的组作为初始组
附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组
2. -- 添加密码
passwd 用户名
普通用户修改自己的密码:
passwd -> 当前密码->新密码->新密码
3. -- 删除用户
userdel -r 用户名 --连带家目录一起删除
4. -- 添加组
groupadd 组名
5. -- 删除组
groupdel 组名 注意:组中没有初始用户才能删除
6. -- 把已经存在的用户加入组
gpasswd -a 用户名 组名 -- 把用户加入组 -add
gpasswd -d 用户名 组名 -- 把用户从组中删除 -delete
42. 用户相关命令
1.id 用户名 -- 显示用户的UID,初始值,附加组
id ariel -- uid=500(ariel) gid=500(ariel) groups=500(ariel)
*2. su - 用户名 -- 连带环境变量一起切换
43. ACL权限:
1. getfacl 文件名 -- 查询文件的acl权限
2. setfacl 选项 u:用户名:权限 文件名 -- 设定acl权限
-m -- 设定权限
-b -- 删除权限
--eg:
setfacl -m u:用户名:权限 文件名/目录
setfacl -m g:组名:权限 文件名/目录
-- 给特定用户设定acl权限
setfacl -m u:ariel:rwx 文件名/目录
*setfacl -m u:ariel:rwx -R 目录 -- 递归赋予acl权限,只能赋予目录
-- 删除权限
setfacl -b 文件名/目录 -- 删除acl权限
--注意: 更该或删除某个用户对某个文件的acl权限时,只需要给这个用户重新赋予acl权限 空是---
-- acl 默认权限 注意:默认权限只能赋予目录
// setfacl -m d:u:用户名:rwx -R 目录名 --d--default -- 对未来要新建的文件生效
--注意:如果给目录赋予acl权限,两条命令都要输入
/********************************************************
-R 递归
-m u:用户名:-R 权限 只对已经存在的文件生效
-m d:u:用户名:-R 权限 只对未来要新建的文件生效
*********************************************************/
44. 输出重定向
1.输出重定向:
把应该输出到屏幕的内容保存在文件里
> 覆盖写 >> 追加写
ls 【目录】 > 文件名 -- 输出信息覆盖写到文件中
ls 【目录】 >> 文件名 -- 输出信息追加写到文件中
ls gdlslga 2>>文件名 -- 错误信息输出到文件中 强调:错误输出,不能有空格
2 --错误信息
*掌握的知识:
ls 【目录】>> 文件名 2>&1 --错误和正确信息都输入到文件中,可以追加写
2>&1 --把标准错误重定向到标准正确信息中输出
ls 【目录】 >> 文件名1 2>>/home/test/文件名2 -- 正确信息输出到文件1中,错误信息输出到文件2中
45. 服务和进程管理
一. 进程查看
1. ps aux --查看当前系统所有运行的进程
-a 显示前台所有进程
-u 显示用户名
-x 显示后台进程
-------------------------
user:用户名
pid:-- 进程id。PID 1 init 系统启动的第一个进程
%CPU -- cpu占用百分比
%MEM -- 内存占用百分比
VSZ -- 虚拟内存占用量 KB
RSS -- 固定内存占有量
tty -- 登录终端 tty1-7 本地终端 1-6 字符 7图形 pts/0-5 alt+F1-F7
stat -- 状态 S:睡眠 D:不可唤醒 R:运行 T:停止 Z:僵死 W:进入内存交换 X:死掉的进程 <:高优先级 N:低优先级 L:被锁进内存 s:含子进程 +:位于后台 l:多线程
start -- 进程触发时间
time -- 占用cpu时间
command -- 进程本身
2. pstree -- 查看进程树
3. top --
第一行:系统当前时间 系统持续时间 登录用户 1,5,15分钟之前的平均负载
第二行:进程总数
第三行:CPU占用率 %id 空闲百分比
第四行:内存使用: 总共 使用 空闲 缓存
第五航:swap使用
操作命令: M 内存排序
P CPU排序
q 退出
4. 进程管理 --终止进程
kill --信号 PID -- 结束单个进程
-9 --强制
killall -9 进程名 -- 结束一类进程
pkill -9 进程名
pkill -9 -t 终端号 -- 把某个终端登录的用户踢出
pkill -9 -t tty1 --把本地登录终端1登录用户踢出
二.linux 服务管理
1.分类
系统默认安装的服务 --rpm包
--1. 独立的服务
--2. 基于xinetd的服务,xinetd是系统超级守护进程
源码包安装的服务
2. 系统默认安装的服务;
*chkconfig --list --查看服务的自启动状态
运行级别:0-6
0 关机
1 单用户模式
2 不完全多用户,不包含NFS服务
3 完全多用户 字符界面
4 未分配
5 图形界面
6 重启
init 0 关机
init 3 字符界面
init 5 startx 图形界面
init 6 重启
3. 独立的服务器管理
①启动:
/etc/rc.d/init.d/服务名 start|stop|restart|status
--eg /etc/rc.d/init.d/httpd start
service 服务名 start|stop|restart|status
②自启动
*chkconfig --level 2345 服务名 on|off
*推荐:vi /etc/rc.local---->/etc/rc.d/rc.local
/etc/rc.d/init.d/httpd start
②图框:ntsysv --所有系统默认安装服务都可以使用ntsysv命令进行自启动管理
-- 空格键添加* tab键切换
4. *源码包安装的服务
1. 绝对路径启动:
/usr/local/apache2/bin/apachectl start
2. 自启动
vi /etc/rc.local
/usr/local/apache2/bin/apachectl start
-- apache配置文件
- vi /etc/httpd/conf/httpd.conf --ServerName localhost
三、计划任务
echo 11 >> /root/aa --在aa文件中追加11,一会定时任务验证用
*循环定时任务
crontab -e 编辑定时任务
* * * * * 命令
10 * 31 * * 命令 // 每月的31号每小时的第10分钟执行
10 * * * * 命令 // 每小时的第十分钟执行
5 4 * 5-10 * 命令 // 每月的5-10号的凌晨4点零分执行
*/10 * * * * 命令 // 每十分钟执行一次
5 4 1,15 * * 命令 // 每月的1号和15号的凌晨4点零5分执行
-- 日期和星期不要同时指定,会超出预期
5 4 10 * 5 命令
crontab -e 0 0 * * * /sbin/reboot --- 每天的0点钟重启
第一个*:一小时中第几分钟 0-59
第二个:一天中第几个小时 0-23
第三个:一个月中第几天 1-31
第四个:一年第几个月 1-12
第五个:一周中星期几 0-6
注意:
crontab -l --查看系统定时任务
crontab -r -- 删除定时任务
注意事项:
选项都不能为空,必须填入,不知道的值使用通配符*表示任何时间
每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔
间隔固定时间执行书写为*/n格式
命令应该给出绝对路径
星期几何第几天不能同时出现
最小时间范围是分钟,最大时间范围是月
四 系统运行级别
*1 dmesg -- 查看系统启动信息--相当于硬件管理
cat /var/log/dmesg 系统启动信息日志
dmesg | grep eth0 查看eth0信息
dmesg | grep CPU 查看cpu信息
2 系统运行级别
0 关机
1 单用户
2 不完全多用户,不含NFS
3 完全多用户
4 保留
5 图形界面
6 重启
runlevel 查询系统运行级别
init 运行级别 改变运行级别 init 0 init 6
*修改系统默认运行级别
vi /etc/inittab init配置文件
id:3:initdefault: 系统默认运行级别
补充知识:
1. df -h -- 查看分区使用情况
2. du -h -- 统计目录大小
3. du -sh -- 统计文件大小
------------------------------------------------------------------------------------------------
46. 常见网络端口:
20、21 -- ftp服务,文件共享
22 -- ssh服务 安全远程网络管理
23 -- telnet服务
25 -- smtp: 简单邮件传输协议 --发信
110 -- pop3 : 邮件协议 -- 发信
80 -- www 网页服务
3306 -- mysql 端口
53 -- DNS端口
/etc/services -- 查看端口
端口数量 --tcp 65535 udp --65535
telnet ip 端口号 -- 测试端口是否可以正常连接
ctrl +l 退出测试
47. 抓包命令:
48.vsftp搭建:
1.安装:
>rpm -ivh -vsftpd……
>yum -y install vsftpd
2.ftp用户:
就是系统用户,密码也是系统密码
3.相关文件:
配置文件:/etc/vsftpd/vsftpd.conf
用户访问控制:/etc/vsftpd/ftpusers --写入此文件的用户都不能访问ftp服务器
/etc/vsftpd/chroot_list --不存在,需要手工建立 定义是否把用户限制在家目录
4. 配置文件配置
/etc/vsftpd/vsftpd.conf
1 主机相关配置
listen_port=21 监听端口
connect_from_port_20=YES 数据传输端口
ftpd_banner= 欢迎信息
2 匿名用户登录 在linux下识别为 ftp 用户
anonymous_enable=YES 允许匿名用户登录,一般禁用
3 本地用户
local_enable=YES 允许系统用户登录
write_enable=YES 允许上传
local_umask=022 默认上传权限
local_max_rate=300 上传限速
4 限制用户访问目录
chroot_local_user=YES 只有此句,所有用户限制在家目录下
chroot_local_user=YES 如有三句话,只有文件chroot_list中的用户可以访问任何目录,其他用户限制在家目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
5.重启服务:
service vsftpd restsrt
ftp客户端使用
ftp ip
get 文件名 下载
put 文件名 上传 不能上传和下载目录
49.linux常用命令:
1. w -- 查询当前登录服务器的所有用户
2. who -- 查询登录用户
3. last -- 查询登录系统相关信息,重启动时间
4. lastlog -- 显示所有用户最后一次的登录时间
5. write 用户名 -- 给在线用户写信息
write root tty1
内容
//ctrl+d 保存、发送
6. wall -- 对所有在线用户说话
7. telnet ip 端口 测试端口是否可以正常连接
ctrl+] ----------- quit
8. netstat -tlun 查看本机所有监听端口
-t tcp -u udp -l 监听 -n 以IP 和端口号显示