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 命令也会禁止

2. 2.1查找命令——linux基础增强,Linux命令学习的更多相关文章

  1. 【Hadoop离线基础总结】linux基础增强

    linux基础增强 查找命令 grep命令  (print lines matching a pattern) 概述: grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打 ...

  2. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  3. 《Linux基础知识及命令》系列分享专栏

    <Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...

  4. Linux基础知识与命令1(su passwd)

    一.Linux的基本原则 1.linux由一个个目的单一的小程序组成,我们一般需要组合小程序来完成复杂的任务 2.Linux的一切都是文件(文件类似于一棵树,包括外设,接口) 3.Linux尽量避免捕 ...

  5. Linux基础与Linux下C语言编程基础

    Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...

  6. Linux基础-兄弟连Linux

    Linux基础增强与辅助知识梳理... ------------ Linux学习基础需要学习那些知识 学习Linux对于程序开发的好处 怎样开始学习Linux Linux的学习方法参考 Linux系统 ...

  7. 【转】Linux基础与Linux下C语言编程基础

    原文:https://www.cnblogs.com/huyufeng/p/4841232.html ------------------------------------------------- ...

  8. SLAM+语音机器人DIY系列:(一)Linux基础——1.Linux简介

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  9. 后端程序员必备的 Linux 基础知识+常见命令(近万字总结)

    大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令. 如果文章有任何需要 ...

  10. linux 基础知识及命令总结

    1.mkdir   创建目录 -p 创建多级目录  mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...

随机推荐

  1. wpf实现仿qq消息提示框

    原文:wpf实现仿qq消息提示框 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/article/details/5052 ...

  2. Symfony——如何使用Assetic实现资源管理

    1. 安装和启用 从Symfony 2.8开始,Assetic不再包含在Symfony Standard Edition中.在使用其任何功能之前,请在您的项目中安装执行此控制台命令的 AsseticB ...

  3. MIT墙上的格言(如果你把任务留到最后一分钟,那么你一定能在一分钟内完成任务)

    1,永远不能忘记傅立叶变换. Never far no can forget Fuliye changer. 2,盲目的研究者就像法拉第和麦克斯韦之间的电学家一样无所适从. Blind Eye's r ...

  4. 潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据

    原文:潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据 目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中 ...

  5. C# WPF 中用代码模拟鼠标和键盘的操作

    原文:C# WPF 中用代码模拟鼠标和键盘的操作 原文地址 C#开发者都知道,在Winform开发中,SendKeys类提供的方法是很实用的.但是可惜的是,在WPF中不能使用这个方法了. 我们知道,在 ...

  6. WPF 4 日期选择器(DatePicker)

    原文:WPF 4 日期选择器(DatePicker)      前一篇<WPF 4 日历控件(Calendar)> 中我们对日历控件的使用方式有了基本了解,本篇将继续介绍WPF 4 中另一 ...

  7. Fabric-Crashlytics-Android 注意点

    Fabric-Crashlytics-Android 注意点 非发布版本关闭Fabirc 官方文档中有这方面的介绍,有助于在开发过程中,提高编译速度和避免上报不必要的Crash 链接 一共两步 第一步 ...

  8. 命令行程序如何获取HINSTANCE?

    main() { HINSTANCE hinst = GetModuleHandle(NULL); }

  9. Qt在各平台上的搭建qt-everywhere(Qt for windows7-64bit, Ubuntu 12.04-32bit, 嵌入式x86平台, 嵌入式arm平台)

    下载地址:http://download.qt.io/ 当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助,前面是*号的表示默认参数. +号表示该功能要求被评估,评估 ...

  10. 用 eric6 与 PyQt5 实现python的极速GUI编程(35篇PyQT和200多篇Python)

    [题记] 我是一个菜鸟,这个系列是我的学习笔记. PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错. eric6 ...