• linux笔记(一)


    学习目标:常用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 和端口号显示

  • 相关阅读:
    无编译/无服务器,实现浏览器的 CommonJS 模块化
    程序员如何在工作中自我增值
    软件架构被高估,清晰简单的设计被低估
    为什么会产生微服务架构?
    版本管理Git和SVN的介绍及其优缺点
    13.递归第一次
    12.二叉树的序遍历
    12.二叉树的序遍历
    10.十进制转m进制
    10.十进制转m进制
  • 原文地址:https://www.cnblogs.com/520502-thy/p/14885904.html
Copyright © 2020-2023  润新知