1、Linux入门
查看主机名
hostname
修改主机名 (重启后无效)
hostname hadoop
修改主机名 (重启后永久生效)
vi /ect/sysconfig/network
方式一:修改配置文件(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
使修改文件的网络配置生效:
service network restart 重启网络服务
reboot 重启计算机
方式二: ifconfig 命令(重启后无效)
ifconfig eth0 192.168.12.22
在使用ping命名时,通常是使用: ping 域名
那么如果在node-1服务器上,去ping node-2服务器,怎么实现?
有两种实现方式:1、ping IP地址 2、ping 主机名
想要使用ping 主机名的方式,需要配置主机名和ip地址的映射:
/etc/hosts 文件用于在通过主机名进行访问时做 ip 地址解析之用。
所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的 ip 地址 配置在/etc/hosts 文件中。
Windows系统中的hosts:
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 端口和连接
测试:
注意:使用service iptables stop 停止防火墙
在涉及 Linux 相关的开发中,经常需要进行 linux 和 Windows 之间的文件、 安装包等上传和下载操作。 sftp 和 lrzsz 是使用比较广泛的两种方式。
sftp 是 Secure File Transfer Protocol 的缩写, 安全文件传送协议。 可以为传输文件提供一种安全的网络的加密方法。 sftp为SSH 的其中一部分, 本身没有单独的守护进程, 使用 sshd 守护进程(端口号默认是 22)来完成相应的连接和答复操作
SecureCRT远程连接至CentOS后,按 alt+p 即可打开sftp会话窗口
常用的sftp命令有:
pwd 和 lpwd
pwd 是看 sftp 服务所在机器(即 CentOS) 默认的当前目录
lpwd 是看 Windows 本地默认目录
ls 和 lls
ls 查看 sftp 服务器默认当前目录下内容
lls 是看 Windows 默认当前文档目录下内容
put 盘符:/目录/文件名.后缀名
把 Windows 上文件上传到 sftp 服务器的默认当前目录下
put -r 盘符:/目录/
把 Windows 上文件夹中的所有文件上传到 sftp 服务器的默认当前目录下
get 文件名.后缀名
把 sftp 服务器当前目录下的文件下载到 windows 当前目录下
get -r 目录名
把 sftp 服务器当前目录下的所有文件下载到 windows 当前目录下
说明: sftp中其它命令的使用方法,可以使用Help帮助命令查看
lrzsz 是一款在 linux 里可代替 sftp 上传和下载的程序。
Centos系统中,可直接 yum -y install lrzsz 程序会自动安装好(推荐使用yum安装),也可以下载安装包离线进行安装,详细参考”文档资料à离线安装lrzsz.txt”
上传文件:命令行输入 rz, 打开上传文件会话窗口
下载文件:sz 下载文件路径
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 字符的内容行
find是最常见的查找命令。find 命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
find的使用格式如下:
$ find <指定目录> <指定条件> <指定动作>
- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录
- <指定条件>: 所要搜索的文件的特征
- <指定动作>: 对搜索结果进行特定的处理
如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
使用实例:
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 的文件
实际参数很多,可使用 -help 查看。
locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/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命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
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命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
使用实例:
which pwd 查找pwd命令所在路径
/bin/pwd
which java 查找path中java的路径
/root/apps/jdk1.8.0_65/bin/java
which是根据使用者所配置的PATH变量内的目录去搜寻可运行档, 所以,不同的PATH配置内容所找到的命令会不一样。
小结:
grep 文本搜索工具。是利用正则表达式去匹配搜索
find 最常用的查找方式。 查找当前目录结果
locate 比find快(原因:有一个数据库。 缺点:实时性差) 建议:在locate前使用updatedb
whereis 查找程序名称
which 查找PATH环境变量
在开发中,经常会遇到一种情况:某个程序需要在一个特定的时间点去执行。这时就需要用到定时器功能,而在Linux系统中提供了一个类似于定时器的小工具: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 [-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
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。