学习Linux的第二天(补更)

与Linux相处的第一天
对不起 我有好几天没有理Linux了因为最近好像是在学Hadoop学习Hadoop的更新也会在学习Linux中更新出来 今天更新的是第二天补更 所以今天将会是一个高产的一天
Linux常用命令
一。基本日常操作命令
linux的文件系统:
1、整个文件系统有一个顶层目录: /
bin:存放一些可执行的程序(命令)
boot: 存放系统启动所需要的一些文件
dev:系统中的设备(硬件在linux中通过“文件”来标识)
etc:存放配置文件的地方
home:用户目录的总目录,比如用户hadoop的主目录: /home/hadoop
lib lib64: 系统库目录
mnt:用于挂载外部存储设备的文件
root:是root用户的主目录
sbin:存储一些系统级的可执行命令,只有拥有root权限的用户才能执行
tmp:系统自带的一个临时目录
usr:unix shared resources,共享资源目录

1、查看当前所在的工作目录的全路径 pwd
[test@hdp-node-01 ~]$ pwd
/home/test

2、查看当前系统的时间 date
[test@hdp-node-01 ~]$ date +%Y-%m-%d
2016-05-18
[test@hdp-node-01 ~]$ date +%Y-%m-%d --date="-1 day" #加减也可以 month | year
2016-05-17
设置时间
date -s “2019-08-28 9:19” ## 修改时间
修改时间后,需要写入硬件bios才能在重启之后依然生效
hwclock -w

3、查看有谁在线(哪些人登陆到了服务器)
who 查看当前在线
[test@hdp-node-01 ~]$ who
root tty1 2016-05-18 11:46
hadoop tty3 2016-05-18 11:46
hadoop pts/0 2016-05-18 10:57 (192.168.33.1)

last 查看最近的登陆历史记录
[test@hdp-node-01 ~]$ last -3
hadoop tty3 Wed May 18 11:46 still logged in
root tty1 Wed May 18 11:46 still logged in
hadoop pts/0 192.168.33.1 Wed May 18 10:57 still logged in

4、关机/重启
关机(必须用root用户)
shutdown -h now ## 立刻关机
shutdown -h +10 ## 10分钟以后关机
shutdown -h 12:00:00 ##12点整的时候关机
halt # 等于立刻关机

重启
shutdown -r now
reboot # 等于立刻重启

5、清屏
clear ## 或者用快捷键 ctrl + l

6、退出当前进程
ctrl+c 有些程序也可以用q键退出

7、挂起当前进程
ctrl+z ## 进程会挂起到后台
jobs ## 查看job列
bg jobid ## 让进程在后台继续执行
fg jobid ## 让进程回到前台
kill jobid ##杀掉

8、echo
相当于java中System.out.println(userName)
二。目录操作
1 查看目录信息
ls / ## 查看根目录下的子节点(文件夹和文件)信息
ls -al ## -a是显示隐藏文件 -l是以更详细的列表形式显示
ls -l 有一个别名: ll 可以直接使用ll <是两个L>
补充:路径的表示方法有两种:绝对路径: /xx/yy
相对路径:… 相对于当前目录的上级
. 当前路径

2 切换工作目录
cd /home/hadoop ## 切换到用户主目录
cd ~ ## 切换到用户主目录
cd 什么路径都不带,则回到用户的主目录

cd - ## 回退到上次所在的目录
3 创建文件夹
mkdir aaa ## 这是相对路径的写法
mkdir /data ## 这是绝对路径的写法
mkdir -p aaa/bbb/ccc ## 级联创建目录

4 删除文件夹
rmdir aaa ## 可以删除空目录
rm -r aaa ## 可以把aaa整个文件夹及其中的所有子节点全部删除
rm -rf aaa ## 强制删除aaa

5 修改文件夹名称
mv aaa angelababy
mv本质上是移动
mv install.log aaa/ 将当前目录下的install.log 移动到aaa文件夹中去
三。文件操作
1 创建文件
touch somefile.1 ## 创建一个空文件
echo “i miss you,my baby” > somefile.2
##利用重定向“>”的功能,将一条指令的输出结果写入到一个文件中,会覆盖原文件内容,如果指定的文件不存在,则会创建出来

echo “huangxiaoming ,gun dan” >> somefile.2

将一条指令的输出结果追加到一个文件中,不会覆盖原文件内容

补充:
1/在linux的命令行界面中,如何将一个程序“最小化”(挂起):ctrl+z
2/如何将一个已挂起的程序恢复到前台
可以先用jobs查看挂起程序列表
再用 fg 1 把编号为1的程序恢复到前台

2 vi文本编辑器
1、最基本用法
vi somefile.4
1/ 首先会进入“一般模式”,此模式只接受各种命令快捷键,不能编辑文件内容
2/ 按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容
3/ 编辑完成之后,按Esc键退出编辑模式,回到一般模式;
4/ 再按:,进入“底行命令模式”,输入wq命令,回车即可保存退出

2、常用快捷键
一些有用的快捷键(在一般模式下使用):
a 在光标后一位开始插入
A 在该行的最后插入
I 在该行的最前面插入
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 删除一行
3dd 删除3行
yy 复制一行
3yy 复制3行
p 粘贴
u undo 撤销
ctrl + r redo向前撤回

v 进入字符选择模式,选择完成后,按y复制,按p粘贴
ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴
shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴

3、查找并替换
(在底行命令模式中输入)
1显示行号
:set nu
2 隐藏行号
:set nonu
3 查找关键字
/you ## 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)

4
😒/sad/bbb ## 查找光标所在行的第一个sad,替换为bbb
😒/sad/bbb/g ## 替换查找光标所在行的所有sad为bbb
:%s/sad/bbb ## 查找文件中所有行的第一个sad,替换为bbb
:5,KaTeX parse error: Expected 'EOF', got '#' at position 20: …doop/root/g #̲# 将第5行到最后一行的had…s/hadoop/root/c ## 将第一行到最后一行的hadoop替换为root(有提示)

3 拷贝/删除/移动
cp somefile.1 /home/hadoop/
cp目录
cp -R 目录1 目录2
rm /home/hadoop/somefile.1
rm -rf /home/hadoop/somefile.1
mv /home/hadoop/somefile.1 …/

4 查看文件内容
cat somefile 一次性将文件内容全部输出(控制台)

分页查看文件的命令:
more somefile 可以翻页查看, 下翻一页(空格) 上翻一页(b) 退出(q)
less somefile 可以翻页查看,下翻一页(空格) 上翻一页(b),上翻一行(↑) 下翻一行(↓) 可以搜索关键字(/keyword)
跳到文件末尾: G
跳到文件首行: gg
退出less : q

tail -10 install.log 查看文件尾部的10行
tail +10 install.log 查看文件 10–>末行
tail -f install.log 小f跟踪文件的唯一inode号,就算文件改名后,还是跟踪原来这个inode表示的文件
tail -F install.log 大F按照文件名来跟踪

head -10 install.log 查看文件头部的10行

5 打包压缩
1、gzip压缩
gzip a.txt

2、解压
gunzip a.txt.gz
或 gzip -d a.txt.gz

3、bzip2压缩
bzip2 a.txt

4、解压
bunzip2 a.txt.bz2
bzip2 -d a.txt.bz2

5、打包:将指定文件或文件夹打成一个文件
tar -cvf bak.tar ./aaa
将/etc/password追加文件到bak.tar中®
tar -rvf bak.tar /etc/password

6、解包
tar -xvf bak.tar

7、打包并压缩
tar -zcvf a.tar.gz aaa/ bb/ c.txt

8、解包并解压缩(重要的事情说三遍!!!)
tar -zxvf a.tar.gz

解压到/usr/下
tar -zxvf a.tar.gz -C /usr

9、查看压缩包内容
tar -ztvf a.tar.gz

10、打包并压缩成bz2
tar -jcvf a.tar.bz2

11、解压bz2
tar -jxvf a.tar.bz2
四。查找命令
1 常用查找命令的使用
1、查找可执行的命令所在的路径:
which ls
2、查找可执行的命令和帮助的位置:
whereis ls

我是谁,当前登录的用户是谁
whoami

3、从某个文件夹开始查找文件
find / -name “hadooop*”
find / -name “hadooop*” -ls
5、查找并删除
find / -name “hadooop*” -ok rm {} ;
find / -name “hadooop*” -exec rm {} ;
6、查找用户为hadoop的文件和文件夹还有隐藏文件
find /usr -user hadoop -ls
查找用户为hadoop的文件/还有隐藏文件
find /home -user hadoop -type f -ls

7、查找用户为hadoop的文件夹
find /home -user hadoop -type d -ls
8、查找权限为777的文件
find / -perm -777 -type d -ls

**、显示历史命令
history

2 grep命令
重点使用方法:
ls /etc | grep profile

1/ 基本使用
cat /etc/passwd
查询包含niu的行
grep niu /etc/password
grep aaa ./*.txt

2/ cut截取以:分割保留第七段
grep niu /etc/passwd | cut -d: -f7

3/ 查询不包含niu的行
grep -v niu /etc/passwd

4/ 正则表达包含niu
grep ‘niu’ /etc/passwd

5/ 正则表达(点代表任意一个字符)
grep ‘h.*p’ /etc/passwd

6/ 正则表达以niu开头
grep ‘^niu’ /etc/passwd

7/ 正则表达以niu结尾
grep ‘niu$’ /etc/passwd

正则表达式的简单规则:
. : 任意一个字符
a* : 任意多个a(零个或多个a)
a? : 零个或一个a
a+ : 一个或多个a
.* : 任意多个任意字符
. : 转义.
o{2} : o重复两次

查找不是以#开头的行
grep -v ‘^#’ a.txt | grep -v ‘^$’

以h或r开头的
grep ‘1’ /etc/passwd

不是以h和r开头的
grep -v ‘2’ /etc/passwd
grep ‘[hr]’ /etc/passwd

不是以h到r开头的
grep ‘[h-r]’ /etc/passwd
五。文件权限的操作
1 linux文件权限的描述格式解读
drwxr-xr-x (也可以用二进制表示 111 101 101 --> 755)

d:标识节点类型(d:文件夹 -:文件 l:链接)
r:可读 w:可写 x:可执行
第一组rwx: ## 表示这个文件的拥有者对它的权限:可读可写可执行
第二组r-x: ## 表示这个文件的所属组用户对它的权限:可读,不可写,可执行
第三组r-x: ## 表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行

2 修改文件权限
chmod g-rw haha.dat ## 表示将haha.dat对所属组的rw权限取消
chmod o-rw haha.dat ## 表示将haha.dat对其他人的rw权限取消
chmod u+x haha.dat ## 表示将haha.dat对所属用户的权限增加x
chmod a-x haha.dat ## 表示将haha.dat对所用户取消x权限

dr-xrwxr-x.
Drwxr-xr-x.
也可以用数字的方式来修改权限
chmod 664 haha.dat
3 6 4
-wx rw- r–
111
22+21+2*0
就会修改成 rw-rw-r–
如果要将一个文件夹的所有内容权限统一修改,则可以-R参数
chmod -R 770 aaa/
3 修改文件所有权
<只有root权限能执行>
chown angela aaa ## 改变所属用户
chown :angela aaa ## 改变所属组
chown angela:angela aaa/ ## 同时修改所属用户和所属组

补充:
r: 对文件来说,是可读取内容;对文件夹来说,是可以ls
w: 对文件来说,是可修改文件的内容;对文件夹来说,是可以在其中创建或者删除子节点
x: 对文件来说,是能否运行这个文件;对文件夹来说,是能否cd进入这个目录
六。基本的用户管理

需要我们掌握的:
添加一个用户:
1、 useradd spark
2、 passwd spark 根据提示设置密码;
即可
删除一个用户:
userdel -r spark 加一个-r就表示把用户及用户的主目录都删除

1 添加用户
添加一个tom用户,设置它属于users组,并添加注释信息
分步完成:useradd tom
usermod -g users tom
usermod -c “hr tom” tom
一步完成:useradd -g users -c “hr tom” tom

设置tom用户的密码
passwd tom

2 修改用户
修改tom用户的登陆名为tomcat
usermod -l tomcat tom

将tomcat添加到sys和root组中
usermod -G sys,root tomcat

查看tomcat的组信息
groups tomcat

3 用户组操作
每一个用户都有一个primary组,同时还可以属于很多的普通组

添加一个叫america的组
groupadd america

将jerry添加到america组中
usermod -g america jerry

将tomcat用户从root组和sys组删除
gpasswd -d tomcat root
gpasswd -d tomcat sys

将america组名修改为am
groupmod -n am america

4 为用户配置sudo权限
用root编辑 vi /etc/sudoers
在文件的如下位置,为hadoop添加一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL

然后,hadoop用户就可以用sudo来执行系统级别的指令
[hadoop@shizhan ~]$ sudo useradd huangxiaoming
七。系统管理操作
1 挂载外部存储设备
可以挂载光盘、硬盘、磁带、光盘镜像文件等
1/ 挂载光驱
mkdir /mnt/cdrom 创建一个目录,用来挂载
mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom/ 将设备/dev/cdrom挂载到 挂载点 : /mnt/cdrom中

[root@hadoop1 cdrom]# cd /mnt/cdrom/
** 存储空间查看
df -h
2 统计文件或文件夹的大小
du -sh /mnt/cdrom/packages ## 统计指定路径下的所有子目录和文件的大小
df -h 查看磁盘的剩余空间

3 系统服务管理
service --status-all # 查看系统所有的后台服务进程
service sshd status # 查看指定的后台服务进程的状态
service sshd stop
service sshd start
service sshd restart

配置后台服务进程的开机自启
chkconfig httpd on ## 让httpd服务开机自启
chkconfig httpd off ## 让httpd服务开机不要自启
4 系统启动级别管理
vi /etc/inittab

#Default runlevel. The runlevels used are:
#0 - halt (Do NOT set initdefault to this)
#1 - Single user mode
#2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#3 - Full multiuser mode ## 没有图形界面的全功能的多用户的启动级别
#4 - unused
#5 - X11 ## 有图形界面的启动级别
#6 - reboot (Do NOT set initdefault to this)

id:3:initdefault: ## 配置默认启动级别
##通常将默认启动级别设置为:3
5 进程管理
top
free
ps -ef | grep ssh
kill -9 2358 ## 将指定进程号的进程杀死

练习题:通过命令实现,将sshd的进程号查询出来后杀掉

注意:grep搜索关键词的时候会把自己也搜索出来,对比以下两种写法
八。SSH免密登录配置
补充:虚拟机克隆
1、停掉原虚拟机
2、在vmware的机器列表原虚拟机上点右键,选择管理–克隆
3、在新机器中修改网卡硬件信息,及网卡的ip配置
修改网卡硬件信息:
vi /etc/udev/rules.d/70-persistent-net.rules
删掉eth0那一条,更改eth1为eth0
修改ip配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0
删掉HWADDR
删掉UUID
更改IPADDR的值
1 SSH工作机制
1、相关概念
SSH 为 Secure Shell(安全外壳协议) 的缩写。
很多ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而SSH就是专为远程登录会话和其他网络服务提供安全性的协议。

SSH的具体实现是由客户端和服务端的软件组成的
服务端是一个守护进程(sshd),他在后台运行并响应来自客户端的连接请求。
客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

2、认证机制
从客户端来看,SSH提供两种级别的安全验证。
第一种方式(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。

第二种方式(基于密钥的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
2 密钥登陆方式配置

vi /etc/hosts
Ip hadoop1
Ip hadoop2

假如 A 要登陆 B
在A上操作:
1/ 首先生成密钥对
ssh-keygen (提示时,直接回车即可)
2/ 再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中
ssh-copy-id B

3 ssh常用功能
1、远程登陆会话

ssh root@192.168.33.101
ssh 192.168.33.101

2、远程拷贝文件
scp ./xixi.txt 192.168.33.101:/root/
scp -r ./aaa/ 192.168.33.101:/root/

3、远程执行命令
ssh 192.168.33.101 “echo 1111 > /root/6666.txt”
九。网络管理
1 主机名配置
1/ 查看主机名
hostname
2/ 修改主机名(重启后无效)
hostname hadoop

3/ 修改主机名(重启后永久生效)
vi /ect/sysconfig/network

2 IP地址配置
修改IP地址
1/ 方式一:setup
用root输入setup命令,进入交互式修改界面

2/ 方式二:修改配置文件
(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
3/ 方式三:ifconfig命令
(重启后无效)
ifconfig eth0 192.168.12.22

3 域名映射
在IP网络中如果要通过一个主机名(域名)来访问一台主机,需要把这个主机名解析成对应的IP地址
4 网络服务管理
1/ 后台服务管理
service network status 查看指定服务的状态
service network stop 停止指定服务
service network start 启动指定服务
service network restart 重启指定服务

2/ 设置后台服务的自动启动管理
chkconfig 查看所有服务器自启配置
chkconfig iptables off 关掉指定服务的自动启动
chkconfig iptables on 开启指定服务的自动启动

3/ 防火墙管理
关闭防火墙:service iptables stop
查看防火墙:service iptables status
启动防火墙:service iptables start
禁止防火墙开机自动启动: chkconfig iptables off
5 系统中网络进程的端口监听情况
netstat -nltp
** 补充:Linux的网卡坏了怎么办
1、先删掉旧网卡
vi /etc/udev/rules.d/70-persistent-net.rules
2、halt linux系统
3、通过vmware卸载原来的网卡,再新增一块网卡
4、70-persistent-net.rules 里面会自动生成那块新网卡的硬件信息
5、编辑网卡的配置文件/etc/sysconfig/network-script/ifcfg-eth0
删掉其中的UUID HWADDR
并且修改IP配置等,如下:
DEVICE=“eth0”
BOOTPROTO=none
ONBOOT=“yes”
TYPE=“Ethernet”
IPADDR=192.168.33.20
PREFIX=24
GATEWAY=192.168.33.1
DNS1=192.168.33.1
NAME=“System eth0”
6、service network restart 重启网络服务即可
Linux 上常用软件安装
Linux系统软件安装方式
Linux上的软件安装有以下几种常见方式:
1、二进制发布包
软件已经针对具体平台编译打包发布,只要解压,修改配置即可

2、RPM发布包
软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装

3、Yum在线安装
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上存在的rpm软件,并且会自动解决软件安装过程中的库依赖问题
(注:类似于maven)

4、源码编译安装
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署
JAVA软件安装——JDK安装
1、上传jdk压缩包
通过sftp工具上传即可
2、解压jdk压缩包
tar -zxvf jdk-7u67-linux-x64.gz -C /usr/local/
3、修改环境变量PATH
vi /etc/profile
在文件最后加两行:
export JAVA_HOME=/usr/local/jdk1.7.0_67
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
4、让环境变量生效
source /etc/profile
即可
结束语
这是第二天学习Linux的内容 今天还会更新Linux学习第二天的内容下面分享下今天的情侣头像有需要的朋友请自行保存
在这里插入图片描述
在这里插入图片描述
喜欢的同学请点赞收藏加转发 因为今天工作量蛮大的 请同学们原谅字迹潦草 谢谢 你的支持是对我最大的帮助


  1. hr ↩︎

  2. hr ↩︎

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值