Linux(Centos7)系统基本操作

Linux(Centos7)系统基本操作

目录结构

- bin 普通用户使用的命令
- sbin 管理员使用的命令
- dev 设备文件
- proc  虚拟文件系统,反映内核进程信息实时状态
- usr 系统文件,类似C:Windows
  [注]: RHEL7 /bin /sbin /lib /lib64 都在此目录
- boot 启动文件
- etc 配置文件
- lib 库文件
- lib64库文件
- tmp 临时文件
- var 变化文件

注:设备挂载目录
- media 移动设备挂载点
- mnt 手工挂载点
- misc  automount进程挂载
- net  automount进程挂载

VIM

命令模式
光标定位
hjkl  //上下左右
0 $   //行首行尾
gg G  //文首文尾
3G    //进入第三行
文本编辑
y       //复制 yy 3yy ygg  yG
d       //删除 dd 3dd dgg  dG 
D       //从光标处删除到行尾
u       //undo撤销
r        //修改一个字符
可视块模式
块插入:      //选择块,I   在块前插入字符
块替换:      //选择块,r   输入替换的字符
块删除:      //选择块,d | x
块复制:      //选择块,y
扩展命令模式
读入文件/另存为
:w /路径          //另存为
:r /路径          //读文件到当前行后
:5 r /路径        //读文件到第5行后

文件管理

目录
mkdir -p   //递归创建
mkdir /home/{dir1,di2}  //意会
复制
cp -r      //递归拷贝
cp -rf     //覆盖不提示
删除
rm
-r    //递归
-f    //强制
-v    //详细过程
查看
cat
-n   //显示行号
-A   //包括控制字符
tail & head
head   //查看头 后跟 -数字

tail   //查看尾
-数字
-f   //动态查看

文件时间

-访问时间:atime  //查看内容
-修改时间:mtime  //修改内容
-改变时间:ctime  //修改权限
-删除时间:dtime  //文件删除时间

文件类型

ls -l
-    //普通文件
d    //目录文件
b    //设备文件(块设备)存储设备,如U盘等;
c    //设备文件 (字符设备) 打印机等。
p    //管道文件
l    //连接文件

附注

type
# type ll
file
# file /etc/hostname
/etc/hostname: ASCII text
stat
# stat /etc/hostname

用户管理

基本操作

查看登录信息
id
uid=0(root) gid=0(root) groups=0(root)
查看文件的owner(所有者)
ll /home/  

相关管理

用户组
groupadd    //创建
groupdel    //删除
用户
useradd    //创建
# -u                  //指定uid
# -d                  //指定家目录
# -s /sbin/nologin    //指定shell
# -G                  //创建目录指定附加组
# -g                  //指定组

userdel    //删除  -r 同时删除家目录和mail spoo
用户密码
passwd 用户名   //root可设置任何用户密码
passswd         //普通用户只能给自己修改密码
组成员管理
usermod -G  组  用户名    //覆盖原有的附加组 
usermod -aG hr niuniu2 //增加新的附加组
其他选项管理
usermod -s  /sbin/nologin   //修改登录Shell用户组
提权
su
举个栗子:
[alice@tiezhu ~]$ useradd u1
-bash: /usr/sbin/useradd: 权限不够
[alice@tiezhu ~]$ su - root
 password:
[root@tianyun ~]# useradd u1
sudo
sudo(选项)(参数)

文件权限

  • 权限对象 属主:u 属组:g 其他人:o
  • 基本权限类型 读:r , 4 写:w ,2 执行 : x ,1

基本权限 UGO

chown
chown   属主.属组   文件       //改属主、属组   -R 递归
chown   属主        文件       //改属主
chown       .属组   文件       //改属组
chgrp
chgrp      属组   文件       //改文件属组
chgrp   -R 属组   文件        //改文件属组
chmod
chmod u+x  文件     //属主增加执行
chmod a=rwx 文件    //所有人等于读写执行行
chmod 644  文件     //数字大法

基本权限 ACL

getfacl 、setfacl
举个栗子
# setfacl  -m  u(g,o):alice:rw  /home/test.txt     //增加ACL权限
# setfacl  -x  u(g,o):alice  /home/test.txt        //删除ACL权限
# setfacl  -b     /home/test.txt                   //删除所有ACL权限
# setfacl -R -m u:alice:rwx /home      //方法一                       
# setfacl -m d:u:alice:rwx /home       //方法二
            //赋予alice对/home读、写、执行权限

高级权限

  • sudo 针对某个用户以root的身份执行某些命令
  • suid 任何用户执行有suid权限程序(eg:/usr/bin/rm)时都在以root身份在运行。
特殊位
  • suid针对文件/程序时,具备临时提升权限。 4
  • sgid针对目录时。该目录具备继承属组的特性。2
  • sticky针对目录设置,该目录内容只有root和属主可删除 1
设置方式
字符
# chmod u+s fiel
# chmod g+s dir
# chmod o+t dir
数字
# chmod 4777 fiel
# chmod 7777 file
# chmod 2770 dir
# chmod 3770 dir
文件属性chattr
chattr +a  file     //只可追加
chattr +i  file     //不可更改、重命名、删除
chattr +A  file     //不可更改访问时间(atime)
+ -      //追加 移除

进程管理

查看进程

静态查看
# ps aux |less
USER    PID %CPU  %MEM   VSZ    RSS  TTY   STAT  START  TIME  COMMAND
root    1   0.0   0.0    2164   648  ?     Ss    08:47  0:00  init [5] 
USER     运行进程用户               
PID      进程ID                
%CPU     CPU占用率
%MEM     内存占用率
VSZ      占用虚拟内存
RSS      占用实际内存
TTY      进程运行终端
STAT     进程状态
START    进程的启动时间
TIME     进程占用CPU总时间
COMMAND  进程文件、进程名
R  运行
S  可中断睡眠
D  不可中断睡眠
T  停止进程
Z  僵尸进程
X  死掉的进程
查看指定进程PID
# pidof   进程名
进程树
pstree
动态查看
# top
# top -d 1                 //每一秒刷新
# top -d 1 -p 10123        //查看指定进程的动态信息
# top -d 1 -u  user        //查看指定用户的进程
# top -d 1 -b -n >top。txt //将两次top信息写入到文件
h|?   帮助                       <   >   向前 向后
M      查看内存使用排序            z       彩色
P      按CPU使用排序               W      保存top环境设置
N      以PID的大小排序
R      对排序进行反转
f      自定义显示字段
1      显示所有CPU负载
信号控制进程
# kell  -1       重新加载配置
# kill  -9       强杀
# kill  -15      正常终止
# kill  -18/-19  继续/暂停

进程优先级nice

使用tiop更改
# top   输入r  
(-20高)  ---0--- (19低)
使用shell更改
# ps  aux  //查看pid
# renice  -20 pid  //更改

管道及重定向

重定向

输出重定向
>                   //覆盖
>>                  //追加
&> /dev/null        //重定向到空
输入重定向
# cat   >file  <
>内容
>内容
>EOF 

管道

|
|tee  #tee命令就像管道的T接头。

查找压缩

文件查找

grep:文件内容过滤  
find: 文件查找
which:命令查找
which
查找tree 命令位置
# which tree
/bin/tree
find
公式:find   [path...]  [options]  [expression]  [action]
      名字    路径        选项        表达         行动
name       //名字           (a/m/c)time   //访问时间、修改时间、改变时间
size       //大小           user/group    //用户、组
maxdeoth   //目录           perm          //权限
按文件名
# find    /   -name     "name"
# find    /   -iname    "name"       //忽略大小写
按文件大小
# find    /    -size  +5M       //大于5M
# find    /    -size   5M       //等于5M
# find    /    -size  -5M       //小于5M
指定查找目录深度
# find  / -maxdepth 3 -a -name "ifcfg-en*"   //三层
按时间查找
# find  /  -mtime(-atime/ctime)   +5(5/-5)  //时间超过(等于、小于)5天
按属主、属组
# find   /   -user   jack     //属主是jack的文件
# fian   /   -group  hr       //属组是hr的文件
# find   /    -nouser         //缺失UID的文件
按文件权限
  • 普通权限
# find  /   -prem    644      //精确权限
# find  /   -prem   -644      //包含权限即可
  • 特殊权限
# find /usr/bin /usr/sbin -perm -4000 -ls //包含set uid
# find /usr/bin /usr/sbin -perm -2000 -ls //包含set gid
# find /usr/bin /usr/sbin -perm -1000 -ls //包含sticky
找到后处理动作
-print     //打印(默认选项)
-ls        //列出
-exec      //后跟自定义shell命令
-ok        //后跟自定义shell命令

文件打包及压缩

打包压缩
# tar -cf    test.tar           //打包      
# tar -czf   test.tar.gz        //z是gzip
# tar -cjf   tset.tar.bz        //j是bzip
# tar -cJf   test.tar.xz        //J是xzip
解压
# tar xf  test.tar.xz   //不显示详细信息  
       ↑------xvf 可显示详细信息
# tar xvf test.tar.bz  -C   /tmp  //-C重定向到目录 /tmp

软件包管理

软件包类型

  • 源码包 需编译
举个栗子   nginx-1.12.1.tar.gz 
  • 二进制包 已编译
举个栗子    mysql-community-common-5.7.12-1.el7.x86_64.rpm
# 在RedHat/Centos 平台常见的二进制包类型为rpm,工具为rpm,rpmbuild ,在线安装方式为yum

rpm包管理

获得rpm包的途径
  • RedHat光盘或官方网站 ftp://ftp.redhat.com
  • rpmfind.net
  • 相应软件官方网站 如http://www.mysql.com
rpm包结构
举个栗子
ntfs-3g-2011.4.12-5.el5.x86_64.rpm  

软件包名    版本号(Version)    发布版本(Release)   系统平台
ntfs-3g      2011.4.12             5.el5          x86_64
使用RPM工具管理RPM包
安装
# rpm -ivh local_path(本地路径)   //本地安装
# rpm -ivh url_path(url)     //网络安装
额外选项
--nosignature       //不检验软件包的签名
--force             //强制安装软件包       yum reinstall
--nodeps           //忽略依赖关系
查询
rpm  -q      ntfs-3g            查询指定包是否安装
rpm  -qa    |grep ntfs          查询某个包
rpm  -qa     ntfs-3g            查询ntfs-3g安装的文件
rpm  -qf     /usr/bin/ntfs-3g   查询该文件属于哪个rpm包
rpm  -wc     ntfs-3g            查询某个包安装的配置文件
rpm  -qd     vsftpd             查看安装的帮助文档     
卸载
rpm  -e ntfs-3g

YUM

基础源
路径
# ls   /etc/yum.repos.d/    //路径
命令
# yum install   包名        //安装
# yum update    包名        //升级包
# yum remove    包名        //卸载包  
# yum info      包名        //查看包信息
# yum clean     all         //清理本地缓存
# yum clean     plugins     //清除插件缓存
# yum makecache             //重建缓存
# yum provides  /bin/mv     //查看文件来自哪个包
# yum  repolist             //显示所有yum仓库
# yum  disabled(enabled)    //显示可用仓库
# yum list                  //列出可安装的包
# yum list updates          //显示可更新的包
# yum list installed        //显示已安装的包
# yum list recent           //列出仓库最近增加的包
阿里源
http://mirrors.aliyun.com/
163源
http://mirrors.163.com
epel
yum -y install epel-release
官方源
如 nnginx
# vim   /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

tar源码包

获得途径

官方网站 如:

 Apache: www.apache.org   
 Nginx: www.nginx.org
 Tengine: tengine.taobao.org
安装源码包

^注1: 以编译安装tengine为例
^注2: 准备、解压、配置、编译、安装。

部署Tengine  /Nginx服务器/WEB服务器
1. 下载源码包,准备软件包
2.准备编译环境如编译器gcc、make
# yum -y install   gcc   make   zlib-devel  pcre  pcre-devel  openssl-devel
(pcre: 支持正则表达式,地址重写rewrite)

3.解压
# useradd www
# tar xvf tengine-2.2.0.tar.gz
# cd tengine-2.2.0
4.配置
./configure \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_ssl_module \
--with-pcre  
5.编译
# make
6.安装
# make install

7启动测试
# /usr/local/nginx/sbin/nginx //启动nginx服务器
# systemctl stop firewalld
看到网页,说明部署成功。 

系统版本信息

uname

# uname   用于打印当前系统信息 内核版本号、硬件架构、主机名称和操作系统类型等)

-a  显示全部信息
-m  显示电脑类型
-n  显示网络上的主机名
-r  显示操作系统发行编号
-s  显示操作系统名称
-v  显示操作系统版本    

cat 命令

# cat /etc/redhat-release    //查看版本当前操作系统发行版信息
# cat /proc/version          //查看当前操作系统版本信息
# cat /proc/cpuinfo          //查看cpu相关信息,包括型号、主频、内核信息等

查看位数

# getconf LONG_BIT     //查看运行在哪个位数下,但并不代表CPU不支持其他位数

你可能感兴趣的:(运维)