设为首页 收藏本站
查看: 898|回复: 0

[经验分享] Linux 增强

[复制链接]

尚未签到

发表于 2019-2-17 10:59:16 | 显示全部楼层 |阅读模式
  1. 查找命令
1.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 'linux' test.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 字符的内容行
1.2 . 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 的文件
1.3 . 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 相关的所有文件
  1.4 . 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 源文件  
1.5 . 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. su、sudo
2.1 . su
su 用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是 root
向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

  su 在不加任何参数,默认为切换到 root 用户,但没有转到 root 用户根目录下;su 加参数 - ,表示默认切换到 root 用户,并转到 root 用户根目录下。

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

退出返回之前的用户:exit

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

  使用 root 用户编辑/etc/sudoers 文件,给普通用户授权

命令行输入 visudo,打开/etc/sudoers 文件,加入如下的内容,保存。
这样普通用户就可以使用 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 命令就可以执行。

3. 挂载(mount)命令
在 linux 操作系统中,挂载是指将一个设备(通常是存储设备)挂接到一个
已存在的目录上。要访问存储设备中的文件,通过访问这个挂载目录来访问。命令格式:mount [-t vfstype] [-o options] device dir
-t vfstype 指定文件系统的类型。mount 会自动选择正确的类型。常用类型有:光盘镜像 iso9660、linux 文件网络共享 nfs 等等。
-o options 主要用来描述设备或档案的挂接方式。常用的参数有: loop:用来把一个文件当成硬盘分区挂接上系统                ro:采用只读方式挂接设备  
rw:采用读写方式挂接设备device 要挂接(mount)的设备
dir 设备在系统上的挂接点(mount point) 案例:挂载光驱
将设备/dev/cdrom 挂载到 挂载点/mnt/cdrom 中案例:挂载光盘镜像文件(.iso)
  案例:卸载 umount
umount /mnt/cdrom

4. 本地 yum 源
yum(Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及
CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 机制的强大之处在于 yum 源。yum 源相当是一个目录项,当我们使用 yum机制安装软件时,若需要安装依赖软件,则 yum 机制就会根据在 yum 源中定义好的路径查找依赖软件,并将依赖软件安装好。
yum 源分为网络 yum 源和本地 yum 源。
yum 源配置文件有两个。一是直接配置在/etc/yum.conf 中,其中包含一些主要的配置信息。另外就是/etc/yum.repos.d/下的 xx.repo 后缀文件, 默认都会被加载进来。
案例:使用 CentOS 镜像创建本地 yum 源
1、挂载 iso 镜像,拷贝所有文件至本地 yum 目录mkdir /dev/centios /mnt/local_yum
mount -o loop /root/CentOS-6.7-x86_64-bin-DVD1.iso /dev/centios cp -r /dev/centios/* /mnt/local_yum/
  2、修改 yum 源配置  
cd /etc/yum.repos.d/  
rename .repo .repo.bak *.repo
cp CentOS-Base.repo.bak CentOS-Local.repo vi CentOS-Local.repo
[local_yum]
name=This is a local repo baseurl=file:///mnt/local_yum enabled=1
  gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
3、更新 yum 配置

[table]
yum clean  all yum repolist all
通过上面的步骤操作,已经可以使用本地 yum 源了。有需要进行安装的软件包就可以直接运行”yum install xxx“进行安装了。
还可以参考附件资料,使用 DVD1 和 DVD2 镜像共同制作本地 yum 源。
5. 系统服务管理
service --status-all # 查看系统所有的后台服务进程service sshd status # 查看指定的后台服务进程的状态service sshd stop  
service sshd start service sshd restart
配置后台服务进程的开机自启
chkconfig httpd on ## 让 httpd 服务开机自启chkconfig httpd off ## 让 httpd 服务开机不要自启
6. 网络管理6.1 . 主机名配置
查看主机名hostname
修改主机名(重启后无效) hostname hadoop
修改主机名(重启后永久生效) vi /ect/sysconfig/network
6.2 . IP地址配置
方式一:setup
用 root 输入 setup 命令,进入交互式修改界面
Minimal 安装的系统没有安装 setuptool 软件,可 yum 安装后使用。yum install setuptool ntsysv system-config-securitylevel-tui yum install system-config-network-tui system-config-keyboard
方式二:修改配置文件(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0 使修改文件的网络配置生效:
service network restart 重启网络服务reboot 重启计算机
方式三:ifconfig 命令(重启后无效) ifconfig eth0 192.168.12.22
6.3 . 域名映射
/etc/hosts 文件用于在通过主机名进行访问时做 ip 地址解析之用。
所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的 ip 地址配置在/etc/hosts 文件中。
  6.4 . 网络端口监听
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 端口和连接
  7. 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 ## 加入开机自动启动
7.1 . 命令格式
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.
7.2 . 配置说明、实例









          • 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




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673508-1-1.html 上篇帖子: Vmware、Linux 基础 下篇帖子: Linux源码安装Java
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表