• 2. linux基础增强,Linux命令学习:查找命令、用户用户组、su与sudo、权限管理、系统管理、网络管理


    2.1、查找命令

    grep命令
    grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并
    把匹配的行打印出来。
    格式: grep [option] pattern [file]
    可使用 —help 查看更多参数。
    使用实例:
    ps -ef | grep sshd 查找指定 ssh 服务进程
    ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身
    ps -ef | grep sshd –c 查找指定进程个数
    cat a.txt | grep -f b.txt 从文件中读取关键词进行搜索
    输出 a.txt 文件中含有从 b.txt 文件中读取出的关键词的内容行
    cat a.txt | grep –nf b.txt 从文件中读取关键词进行搜索,显示行号
    grep -n 'hello' a.txt  从文件中查找关键词,并显示行号
    cat test.txt |grep ^u 找出以 u 开头的行内容
    cat test.txt |grep ^[^u] 输出非 u 开头的行内容
    cat test.txt |grep hat$ 输出以 hat 结尾的行内容
    cat test.txt |grep -E "ed|at" 显示包含 ed 或者 at 字符的内容行

    find命令

    find 命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
    find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所
    有文件),将它们全都显示在屏幕上。
    实际参数很多,可使用 —help 查看。
    使用实例:
    find . -name "*.log" -ls 在当前目录查找以.log 结尾的文件, 并显示详细信息。
    find /root/ -perm 777 查找/root/目录下权限为 777 的文件
    find . -type f -name "*.log" 查找当目录,以.log 结尾的普通文件
    find . -type d | sort 查找当前所有目录并排序
    find . -size +100M 查找当前目录大于 100M 的文件

    Locate命令

    locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法
    是先建立一个包括系统内所有档案名称及路径的数据库。之后当寻找时就只需查
    询这个数据库( /var/lib/locatedb)。
    Linux 系统自动创建这个数据库, 默认每天自动更新一次,所以使用 locate
    命令查不到最新变动过的文件。为了避免这种情况,可以在使用 locate 之前,
    先使用 updatedb 命令,手动更新数据库。
    如果是精简版 CentOS 系统需要安装 locate 命令
    yum -y install mlocate
    updatedb 命令来创建 locate 命令依赖的数据库
    updatedb
    使用实例:
    locate /etc/sh
    搜索 etc 目录下所有以 sh 开头的文件
    locate pwd
    查找和 pwd 相关的所有文件

    whereis命令

    whereis 命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位
    置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。
    whereis 和下 locate 一样,会从数据库中查找数据,而不是像 find 命令那
    样,通过遍历硬盘来查找。
    使用实例:
    whereis ls 将和 ls 文件相关的文件都查找出来
    ls: /bin/ls /usr/share/man/man1/ls.1.gz
    whereis -m ls 查找 ls 命令说明文档路径
    whereis -s ls 查找 ls 源文件

    which命令

    which 命令的作用是在 PATH 变量指定的路径中,搜索某个系统命令的位置,
    并且返回第一个搜索结果。
    使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪
    一个位置的命令。
    使用实例:
    which pwd 查找 pwd 命令所在路径
    /bin/pwd
    which java 查找 path 中 java 的路径
    /root/apps/jdk1.8.0_65/bin/java
    which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档, 所以,
    不同的 PATH 配置内容所找到的命令会不一样

    2.2、用户与用户组

    添加普通用户

    useradd   hadoop    #   这个就表示我们创建了一个普通用户

    passwd   hadoop    # 表示我们需要给hadoop这个普通用户分配一个密码,密码需要自己设置

    添加用户组:groupadd  storm  表示我们自己添加了一个storm的组

    2.3、su与sudo

    su的使用

    切换用户:linux当中可以使用su来切换不同的用户角色

    su   root   表示我们需要切换成其他用户,需要使用密码

    添加用户组:groupadd  storm  表示我们自己添加了一个storm的组

    su 用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是 root
    向普通或虚拟用户切换不需要密码, 反之普通用户切换到其它任何用户都需要密
    码验证。
    su 在不加任何参数,默认为切换到 root 用户,但没有转到 root 用户根目
    录下; su 加参数 - ,表示默认切换到 root 用户,并转到 root 用户根目录下。

    su 不足: 如果某个用户需要使用 root 权限、则必须要把 root 密码告诉此

    用户。
    退出返回之前的用户

     

    sudo使用

    sudo 是为所有想使用 root 权限的普通用户设计的。可以让普通用户具有临
    时使用 root 权限的权利。只需输入自己账户的密码即可。当然这个普通用户必
    须在/etc/sudoers 文件中有配置项、才具有使用 sudo 的权利。
    没有配置权限之前,普通用户无法进行 root 权限操作

    使用 root 用户编辑/etc/sudoers 文件,给普通用户授权
    命令行输入 visudo,打开/etc/sudoers 文件,加入如下的内容,保存。

    hadoop  ALL=(ALL)       ALL

    这样普通用户就可以使用 sudo 执行 root 权限的命令了。

    sudo 的工作过程如下:
    1.当用户执行 sudo 时,系统会主动寻找/etc/sudoers 文件,判断该用户是
    否有执行 sudo 的权限
    2. 确认用户具有可执行 sudo 的权限后,让用户输入用户自己的密码确认
    3. 若密码输入成功,则开始执行 sudo 后续的命令


    如果想要更加精准的控制,就需要理解配置中的含义。
    hadoop ALL=(ALL) ALL
    第一个 ALL 是指网络中的主机, 我们可以指定主机名, 这样 hadoop 只可以
    在此主机上执行后面的命令。第二个括号里的 ALL 是指目标用户,也就是以谁的身份去执行命令。最后一个 ALL 是指命令名了。
    例如,我们想让 hadoop 用户在 node-23 主机上以 allen 的身份执行 kill 命令, 就这样编写配置文件:
    hadoop node-23=(allen) /bin/kill
    案例:只允许 hadoop 用户以 root 身份在 node-23 上执行 ls 、 cat 命令,
    并且执行时候免输入密码。
    配置文件中:
    hadoop node-23=NOPASSWD: /bin/ls, /bin/cat

    执行非 ls 、 cat 命令也会禁止

    而 cat 命令就可以执行。

    2.4、linux的权限管理

    chown -R hadoop:hadoop abc.txt  改变某个文件或者文件夹的所属的用户以及用户组

    第一个参数  -R   表示我们递归的进行改变

    第二个参数 hadoop:hadoop  表示我们的用户以及用户组

    第三个参数:我们需要改变的文件或者文件夹

    chmod  改变文件的执行权限

    chmod 777 abc.txt    表示给某个文件赋予所有人的所有权限

    l  chmod(change mode) 功能:变更文件或目录的权限。

    l  语法:chmod [参数] [<权限范围><符号><权限代号>]

           -R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。

    n  权限范围的表示法如下:

                  u:User,即文件或目录的拥有者。

                  g:Group,即文件或目录的所属群组。

                  o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。

                  a:All,即全部的用户,包含拥有者,所属群组以及其他用户。

    n  符号:

                  + 添加权限

    -取消权限

    n  有关权限代号的部分,列表于下:

                  r:读取权限,数字代号为"4"。

                  w:写入权限,数字代号为"2"。

                  x:执行或切换权限,数字代号为"1"。

                  -:不具任何权限,数字代号为"0"。

    mkdir xxx

    ll | grep xxx

    chmod u-rwx xxx    #取消xxx目录,用户“读写执行”权限

    chmod g-rwx xxx     #取消xxx目录,组“读写执行”权限

    chmod 777 xxx      #给xxx目录添加所有权限

    2.5、系统服务管理

    service iptables status  #查看防火墙状态

    service  iptables stop  #关闭防火墙

    service --status-all # 查看系统所有的后台服务进程
    service sshd status # 查看指定的后台服务进程的状态
    service sshd stop
    service sshd start
    service sshd restart
    配置后台服务进程的开机自启或关闭

    chkconfig iptables on  #配置防火墙开机开启

    chkconfig iptables off #配置防火墙开机关闭
    chkconfig httpd on ## 让 httpd 服务开机自启
    chkconfig httpd off ## 让 httpd 服务开机不要自启

    2.6、网络管理

    主机名配置

    查看主机名

    hostname

    修改主机名(重启后无效)

    hostname hadoop

    修改主机名(重启后永久生效)

    vi /ect/sysconfig/network

    HOSTNAME=node01.hadoop.com

    IP 地址配置

    方式一: setup(强烈不建议使用)

    用 root 输入 setup 命令,进入交互式修改界面

    Minimal 安装的系统没有安装 setuptool 软件,可 yum 安装后使用。

    yum install setuptool ntsysv system-config-securitylevel-tui

    yum install system-config-network-tui system-config-keyboard

    方式二:修改配置文件(重启后永久生效,强烈建议使用)

    修改IP地址:
    vi /etc/sysconfig/network-scripts/ifcfg-eth0 

    ONBOOT=yes

    BOOTPROTO=static

    IPADDR=192.168.221.100

    NETMASK=255.255.255.0

    GATEWAY=192.168.221.1

    DNS1=8.8.8.8

    修改mac地址:

    vim /etc/udev/rules.d/70-persistent-net.rules

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:3a:57:a5", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

     

    方式三: ifconfig 命令(重启后无效,强烈不建议使用)

    通过ifconfig命令可以临时更改我们的ip地址,但是服务器重启之后无效
    ifconfig eth0 192.168.12.22

    域名映射

    /etc/hosts 文件用于在通过主机名进行访问时做 ip 地址解析之用。
    所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的 ip 地址
    配置在/etc/hosts 文件中

    vim /etc/hosts

    127.0.0.1   localhost

     

    192.168.221.100 node01.hadoop.com node01

    网络端口监听

    netstat 是一款命令行工具, 用于列出系统上所有的网络 socket 连接情况,
    包括 tcp, udp 以及 unix socket,另外它还能列出处于监听状态(即等待接入
    请求)的 socket。 如想确认 Web 服务有没有起来,可查看 80 端口有没有打开。
    示例:
    常见参数:
    -a (all)显示所有选项,默认不显示 LISTEN 相关
    -t (tcp)仅显示 tcp 相关选项
    -u (udp)仅显示 udp 相关选项
    -n 禁用域名反向解析功能,只显示 ip
    -l 仅列出有在 Listen (监听) 的服务状态
    -p 显示建立相关链接的进程信息
    -ep 可以同时查看进程名和用户名
    netstat –nlpt 获取进程名、进程号以及用户 ID

     

    只列出监听中的连接
    netstat –tnl 可以看到处于监听状态的 TCP 端口和连接

    netstat -nltp查看所有的监听的端口

    crontab 配置

    crontab 是 Unix 和 Linux 用于设置周期性被执行的指令。 通过 crontab 命
    令,可以在固定间隔时间执行指定的系统指令或 shell 脚本。时间间隔的单位可

     

    以是分钟、小时、日、月、周及以上的任意组合。
    crontab 安装:
    yum install crontabs
    服务操作说明:
    service crond start ## 启动服务
    service crond stop ## 关闭服务
    service crond restart ## 重启服务
    service crond reload ## 重新载入配置
    service crond status ## 查看 crontab 服务状态:
    chkconfig crond --list ## 查看 crontab 服务是否已设置为开机启动
    chkconfig crond on ## 加入开机自动启动

    通过crontab配置虚拟机时钟同步

    crontab  -e

    */1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com

    命令格式

    crontab [-u user] file
    crontab [-u user] [ -e | -l | -r ]
    参数说明:
    -u user:用来设定某个用户的 crontab 服务
    file: file 是命令文件的名字,表示将 file 做为 crontab 的任务列表文件
    并载入 crontab。
    -e:编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前
    用户的 crontab 文件。
    -l:显示某个用户的 crontab 文件内容。 如果不指定用户,则表示显示当前
    用户的 crontab 文件内容。
    -r:删除定时任务配置,从/var/spool/cron 目录中删除某个用户的 crontab
    文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
    -i:在删除用户的 crontab 文件时给确认提示。
    命令示例:
    crontab file [-u user] ## 用指定的文件替代目前的 crontab。
    crontab -l [-u user] ## 列出用户目前的 crontab.
    crontab -e [-u user] ## 编辑用户目前的 crontab.

    配置说明、实例

    * * * * * command
    分 时 日 月 周 命令
    第 1 列表示分钟 1~59 每分钟用*或者 */1 表示
    第 2 列表示小时 0~23( 0 表示 0 点)
    第 3 列表示日期 1~31
    第 4 列表示月份 1~12
    第 5 列标识号星期 0~6( 0 表示星期天)
    第 6 列要运行的命令
    配置实例:
    */1 * * * * date >> /root/date.txt
    每分钟执行一次 date 命令
    30 21 * * * /usr/local/etc/rc.d/httpd restart
    每晚的 21:30 重启 apache。
    45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart
    每月 1、 10、 22 日的 4 : 45 重启 apache。
    10 1 * * 6,0 /usr/local/etc/rc.d/httpd restart
    每周六、周日的 1 : 10 重启 apache。
    0,30 18-23 * * * /usr/local/etc/rc.d/httpd restart
    每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache。
    * 23-7/1 * * * /usr/local/etc/rc.d/httpd restart
    晚上 11 点到早上 7 点之间,每隔一小时重启 apache

  • 相关阅读:
    (转载)CentOS 6.5使用aliyun镜像来源
    (转载) Linux五种IO模型
    (转载)django 访问url报错Forbidden (CSRF cookie not set.): xxx 问
    (原创)性能测试中,Oracle服务器定位CPU使用率高的瓶颈(SQL)
    oracle AWR性能监控报告生成方法
    MQ、JMS以及ActiveMQ的了解和认识
    coding.net及git的使用方式
    【转载】zookeeper使用和原理探究(一)
    shell执行mysql的脚本(包括mysql执行shell脚本)
    mikadonic-建立互信
  • 原文地址:https://www.cnblogs.com/elevenapple/p/11163319.html
Copyright © 2020-2023  润新知