前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux学习从入门到精通

Linux学习从入门到精通

原创
作者头像
硅谷子
修改2020-12-21 10:28:58
2.4K0
修改2020-12-21 10:28:58
举报
文章被收录于专栏:BigdataBigdata

1、Linux入门

1.1、主机名配置

查看主机名

代码语言:shell
复制
hostname 

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

hostname hadoop

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

代码语言:shell
复制
vi /ect/sysconfig/network

1.2、IP配置

方式一:修改配置文件(重启后永久生效)

代码语言:shell
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth0 

使修改文件的网络配置生效:

service network restart 重启网络服务

reboot 重启计算机

方式二: ifconfig 命令(重启后无效)

代码语言:shell
复制
ifconfig eth0 192.168.12.22

1.3、域名映射

在使用ping命名时,通常是使用: ping 域名

那么如果在node-1服务器上,去ping node-2服务器,怎么实现?

有两种实现方式:1、ping IP地址 2、ping 主机名

想要使用ping 主机名的方式,需要配置主机名和ip地址的映射:

/etc/hosts 文件用于在通过主机名进行访问时做 ip 地址解析之用。

所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的 ip 地址 配置在/etc/hosts 文件中。

Windows系统中的hosts:

1.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 端口和连接

测试:

注意:使用service iptables stop 停止防火墙

2. 文件上传、下载

在涉及 Linux 相关的开发中,经常需要进行 linux 和 Windows 之间的文件、 安装包等上传和下载操作。 sftp 和 lrzsz 是使用比较广泛的两种方式。

2.1、SFTP

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帮助命令查看

2.2、lrzsz

lrzsz 是一款在 linux 里可代替 sftp 上传和下载的程序。

Centos系统中,可直接 yum -y install lrzsz 程序会自动安装好(推荐使用yum安装),也可以下载安装包离线进行安装,详细参考”文档资料à离线安装lrzsz.txt”

上传文件:命令行输入 rz, 打开上传文件会话窗口

下载文件:sz 下载文件路径

3. Linux查找命令

3.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 字符的内容行

3.2、find

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 查看。

3.3、locate

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

如果是精简版 CentOS 系统需要安装 locate 命令

代码语言:shell
复制
yum -y install mlocate

updatedb 命令来创建 locate 命令依赖的数据库

代码语言:shell
复制
updatedb

使用实例:

代码语言:shell
复制
locate /etc/sh 

搜索 etc 目录下所有以 sh 开头的文件

代码语言:shell
复制
locate pwd

查找和 pwd 相关的所有文件

3.4、whereis

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 源文件

3.5、which

which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

使用实例:

which pwd 查找pwd命令所在路径

代码语言:shell
复制
/bin/pwd 

which java 查找path中java的路径

代码语言:shell
复制
/root/apps/jdk1.8.0_65/bin/java 

which是根据使用者所配置的PATH变量内的目录去搜寻可运行档, 所以,不同的PATH配置内容所找到的命令会不一样。

小结:

grep 文本搜索工具。是利用正则表达式去匹配搜索

find 最常用的查找方式。 查找当前目录结果

locate 比find快(原因:有一个数据库。 缺点:实时性差) 建议:在locate前使用updatedb

whereis 查找程序名称

which 查找PATH环境变量

4. crontab配置

在开发中,经常会遇到一种情况:某个程序需要在一个特定的时间点去执行。这时就需要用到定时器功能,而在Linux系统中提供了一个类似于定时器的小工具:crontab

crontab 是 Unix 和 Linux 用于设置周期性被执行的指令。 通过 crontab 命令,可以在固定间隔时间执行指定的系统指令或 shell 脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。

crontab 安装:

代码语言:shell
复制
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 ## 加入开机自动启动

4.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

4.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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1、主机名配置
  • 1.2、IP配置
  • 1.3、域名映射
  • 1.4、网络端口监听
  • 2. 文件上传、下载
    • 2.1、SFTP
      • 2.2、lrzsz
      • 3. Linux查找命令
        • 3.1、grep
          • 3.2、find
            • 3.3、locate
              • 3.4、whereis
                • 3.5、which
                • 4. crontab配置
                  • 4.1、命令格式
                    • 4.2、配置说明、实例
                    相关产品与服务
                    命令行工具
                    腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档