第一天:Linux的相关知识1
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一天:Linux的相关知识1相关的知识,希望对你有一定的参考价值。
一、Linux目录结构
二、Linux命令的分类
三、Linux常用命令
1、日常操作命令
**查看当前所在的工作目录
pwd
**查看当前系统的时间
date
date +%Y-%m-%d
date +%T
date +%T-%m-%d" "%T
**查看日历
cal 2012
**查看有谁在线(哪些人登录到了服务器)
who 查看当前在线
last 查看最近的登录历史记录
lastlog 查信息系统中所有用户最近一次登录信息
**查找可执行的命令
which ls
**查找可执行的命令和帮助的位置
**快捷键
ctrl+c:停止进程
ctrl+l:清屏
ctrl+r:搜索历史命令
ctrl+q:退出
2、文件系统命令
**
ls / 查看根目录下的子节点(文件夹和文件)信息
ls -al -a是显示隐藏文件 -l是以更详细的列表形式显示
**查看文件信息
file a.txt
**切换目录
cd 进入目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
cd /home
**创建文件夹
mkdir aaa 这是相对路径的写法
mkdir -p bbb/ccc 递归创建
mkdir /date 这是绝对路径的写法
例子:
①在根目录下创建一个itcast的文件夹
在/itcast目录下创建src和WebRoot两个文件夹
分别创建:mkdir /itcast/src
mkdir /itcast/WebRoot
同时创建:mkdir /itcast/{src,WebRoot}
②进入到/itcast目录,在该目录下创建.classpath和README文件
分别创建:touch .classpath
touch README
同时创建:touch {.classpath,README}
**删除文件夹
rmdir 可以删除空目录
rm -r bbb 可以把bbb整个文件夹及其中的所有子节点全部删除
rm -rf aaa 强制删除aaa
删除当前目录下扩展名是java的文件
rm -f *.java
**修改文件夹名称
mv aaa angelababy
**移动文件
mv test.txt src/Student.java 将test.txt移动到src目录下,并修改文件名为Student.java
**创建文件
touch somefile.1 创建一个空文件
echo "i miss you,my baby">somefile.2 利用重定向">"的功能,将一条指令的输出结果写入到一个 文件中,会覆盖原文件的内容
echo "hugximing,gun dan">>somefile.2 将一条指令的输出结果追加到一个文件中,不会覆盖原文 件内容
例子:
①在/itcast目录下面创建一个test.txt文件,同时写入内容"this is test"
echo "this is test">test.txt
查看一下test.txt的内容
cat test.txt
more test.txt
less test.txt
向README文件追加写入"please read me first"
echo "please read me first">>README
②将test.txt的内容追加到README文件中
cat test.txt>>README
**复制文件
cp a.txt /etc/b.txt
cp -r /itcast /itcast-bak 拷贝/itcast目录下的所有文件到/itcast-bak
**查看单词
wc -w README 查看README文件中多少个单词
wc -l README 查看README文件中有多少行
**查看文件详情
stat a.txt
**命令设置别名(重启后无效)
alias ll="ls -l" 设置别名
unalias ll 取消设置
如果想让别名重启后仍然有效,需要修改
vi ~/.bashrc
**查找文件(需要更新库:updatedb)
locate b.txt
**查找命令
查找当前目录下及其子目录下扩展名是java的文件
find -name *.java
从根目录开始找
find / -name "hadoop*"
find / -name "hadoop*" -ls
查找并删除
find / -name "hadoop*" -ok rm {} \;
find / -name "hadoop*" -exec rm {} \;
查找用户为hadoop的文件
find /usr -user hadoop -ls
查找用户为hadoop并且(-a)拥有组为root的文件
find /usr -user hadoop -a -group root -ls
查找用户为hadoop或者(-o)拥有组为root并且是文件夹类型的文件
find /usr -user hadoop -o -group root -a -type d
查找权限为777的文件
find / -perm -777 -type d -ls
在/etc下查找hadoop文件
grep hadoop /etc
用vi文本编辑器来编辑生成的文件
******最基本用法
vi somefile.4
1、首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容
2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容
3、编辑完成之后,按Esc键退出编辑模式,回到一般模式
4、再按:,进入“底行命令模式”,输入wq命令,回车即可
*****一些常用的快捷键(在一般模式下使用):
a 在光标后一位开始插入
A 在该行的最后插入
l 在该行的最前面插入
0(零) 光标跳到文件当前行的开头
$ 光标跳到文件当前的行的末尾
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 删除行,如果5dd,则一次性删除光标后的5行
yy 复制当前行,负责多行,3yy表示复制当前行附近的3行
p 粘贴
v 进入字符选择模式,选择完成后,按y复制,按p粘贴
crtl+v 进入块选择模式,选择完成后,按y复制,按p粘贴
shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴
查找并替换 (在底行命令模式中输入)%s/sad/88888888% 效果:查找文件中所有sad,替换为 888888
/you 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置 (按N定位到上一个)
:1,$s/hadoop/root/g 将第一行到最后一行的hadoop替换为root
:1,$s/hadoop/root/c 将第一行到最后一行的hadoop替换为root(有提示)
:w b.txt 文件另存为b.txt
:w >> b.txt 将内容追加到b.txt
:e! 恢复到最初的状态
ctrl+u (undo) 撤销修改
ctrl+r (redo) 恢复
3、文件权限的操作
****linux文件权限的描述格式解读
drwxr-xr-x (也可以用二进制表示111 101 101 -->755)
d:标识节点类型(d:文件夹 -:文件 |:链接)
r:可读
w:可写
x:可执行
第一组rwx:表示这个文件的拥有者对它的权限:可读可写可执行
第二组r-x:表示这个文件的所属组对它的权限:可读,不可写,可执行
第三组r-x:表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行
****修改文件权限
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 664 haha.dat 就会修改成rw-rw-r--
如果要将一个文件夹的所有内容权限统一修改,则可以用-R参数
chmod -R 770 aaa/
将当前目录下的所有文件与子目录皆设为任何人可读取
chmod -R a+r *
目录没有执行权限的时候普通用户不能进入
文件只有读写权限的时候普通用户是可以删除的(删除文件不是修改它,是操作父级目录),只要父级目录有执行和修改的权限
**修改用户组
将a.txt的用户者设为hadoop,组的拥有者设为angela
chown hadoop:angela a.txt
将当前目录下的所有文件与子目录的用户的使用者都设为hadoop,组拥有者皆设为angela
4、基本的用户管理
****添加用户
useradd angela
要修改密码才能登录
passwd angela 按提示输入密码即可
添加一个tom用户,设置它属于hadoop组,并添加注释信息
分步完成:useradd tom
usermod -g hadoop tom
usermod -c "hr tom" tom
一步完成:useradd -g hadoop -c "hr tom" tom
设置tom用户的密码
passwd tom
修改tom用户的登录名为tomcat
usermod -l tomcat tom
将tomcat添加到hadoop和root组中
usermod -G hadoop,root tomcat
查看tomcat的组信息
groups tomcat
添加一个jerry用户并设置密码
useradd jerry
passwd jerry
添加一个america的组
groupadd america
将jerry添加到america组中
将tomcat用户从root组和hadoop组删除
gpasswd -d tomcat root
gpasswd -d tomcat hadoop
将america组名修改为am
groupmod -n am america
**为用户配置sudo权限
用root编辑vi /etc/sudoers
在文件的如下位置:为hadoop添加一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
然后,hadoop用户就可以用sudo来执行系统级别的指令
5、传输文件
***使用sftp工具传输文件
alt+p 调出后,用put命令上传
上传(如果不cd指定目录,则上传到当前用户的主目录):
sftp>cd /home/
sftp>put -r C;\User\Administrator\Desktop\day02\soft\jdk-7u45-linux-x64.tar.gz
下载(lcd指定下载到本地的目标路径)
sftp>lcd d:/
sftp>get /home/jdk-7u45-linux-x64.tar.gz
***文件传输rz,sz,是Linux/Unix同Windows进行ZModem文件传输的命令行工具
优点是不用再开一个sftp工具登录上去上传下载文件
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器
安装命令:
yum install lrzsz
SecureCRT设置默认路径:
Options -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories
Xshell设置默认路径
右键会话 -> 属性 -> ZMODEM -> 接收文件夹
从服务端发送文件到客户端:
sz a.txt
从客户端上传文件到服务端:
rz
6、安装软件
***RPM软件包管理命令
常用参数:
i:安装应用程序
e:卸载应用程序
vh:显示安装进度
u:升级软件包
qa:显示所有已经安装软件包
rpm -qa
rpm -ivh mysql-server-5.5.51-1.linux2.6.x86_64.rpm
***yum软件安装命令
yum install gcc-c++
yum update gcc-c++
yum remove gcc-c++
***安装JDK
<1>上传jdk-7u45-linux-x64.tar.gz到Linux上
<2>解压jdk到/usr/local目录
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local/
<3>设置环境变量,在/etc/profile文件最后追加相关内容
vi /etc/profile
<4>刷新环境变量
source /etc/profile
<5>测试java命令是否可用
java -version
***安装Tomcat
<1>上传apache-tomcat-7.0.68.tar.gz到Linux上
<2>解压tomcat
tar -zxvf apache-tomcat-7.0.68.tar.gz -C /usr/local
<3>启动tomcat
/usr/local/apache-tomcat-7.0.68/bin/startup.sh
<4>查看tomcat进程是否启动
jps
<5>查看tomcat进程端口
netstat -anpt | grep 11939
<6>通过浏览器访问tomcat
***安装MySQL
<1>上传MySQL-server-5.5.48-1.linuxx2.6.x86_64rpm、MySQL-client-5.5.48-1.linux2.6.x86_64.rpm
到Linux上
<2>使用rpm命令安装MySQL-server-5.5.48-1.linuxx2.6.x86_64rpm,缺少perl依赖
rpm -ivh MySQL-server-5.5.48-1.linuxx2.6.x86_64.rpm
<3>安装perl依赖,上传6个相关的rpm包
<4>再安装MySQL-server,rpm包冲突
rpm -ivh MySQL-server-5.5.48-1.linuxx2.6.x86_64.rpm
<5>卸载冲突的rpm包
rpm -e MySQL-server-5.5.48-1.linuxx2.6.x86_64.rpm
<6>再安装MySQL-client和MySQL-server
rpm -ivh MySQL-client-5.5.48-1.linuxx2.6.x86_64.rpm
rpm -ivh MySQL-server-5.5.48-1.linuxx2.6.x86_64.rpm
<7>|启动MySQL服务,然后初始化MySQL
service mysql start
/usr/bin/mysql_secure_installation
<8>测试MySQL
mysql -u root -p
7、正则表达式
规则:
.:任意一个字符
a*:任意多个a(零个或多个a)
a?:零个或一个a
a+:一个或多个a
.*:任意多个任意字符
\.:转义
\<h.*p>:以h开头,p结尾的一个单词
o\{2\}:o重复两次
**查找以h或r开头的
**查找不是以h和r开头的
grep ‘^[^hr]‘ /etc/passwd
**查找不是以h到r开头的
grep ‘^[^h-r]‘ /etc/passwd
**cut截取以:分割,保留第七段
grep hadoop /etc/passwd | cut -d: -f7
**排序
du | sort -n
**查询不包含hadoop的
grep -v hadoop /etc/passwd
**查询包含hadoop
grep ‘hadoop‘ /etc/passwd
.(点代表任意一个字符)
grep ‘h.*p‘ /etc/passwd
**查找以hadoop开头的
grep ‘^hadoop‘ /etc/passwd
**查找以hadoop结尾的
8、系统管理操作
****查看主机名
hostname
****修改主机名(重启后无效)
hostname hadoop
****修改主机名(重启后永久生效)
vi /etc/sysconfig/network
****修改IP(重启后无效)
ifconfig etho 192.168.12.22
****修改IP(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
重启服务
service network restart
****修改静态地址后发现无法ping外网
需要设置网关
route add default gw 192.168.33.1
添加nameserver
vi /etc/resolv.conf
nameserver 192.168.33.1
****修改ip地址和主机的映射关系
vi /etc/hosts
****关闭iptables并设置其开机启动/不启动
service iptables stop
chkconfig iptables on
chkconfig iptables off
****查看系统信息
uname -a
uname -r
id 显示当前用户的ID
id -g 显示用户组的ID
id hadoop 显示指定用户信息
mount **** 挂载外部存储设备到文件系统中
mkdir /mnt/cdrom 创建一个目录,用来挂载
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/ 将设备/dev/cdrom/挂载到挂载点:/mnt/cdrom 中
umount 取消挂载
umount /mnt/cdrom
加载windows共享
mount -t cifs //192.168.3.4/tools /mnt
****统计文件或文件夹的大小
du -sh /mnt
df -h 查看磁盘的空间
****查看内存使用情况
free
****查看日志
ls /var/log/
****查看系统报错日志
tail /var/log/messages
****查看进程
top
****结束进程
kill 1234
kill -9 4333 强制杀死该进程
****ssh远程连接
ssh 登录名@ip
****关机
halt
shutdown -h now
init 0
****重启
reboot
shutdown -r now
****配置主机之间的免密ssh登录
假如 A 要登录 B
在A上操作:
%%首先生成密钥对
ssh-keygen (提示时,直接回车即可)
%%再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中
ssh-copy-id B
四、本地YUM源制作
1、yum相关概念
1.1 什么是yum
yum全称为Yellow dog Update,Modified)是一个在Fedora和RedHat以及CentOS中的shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
1.2 yum的作用
在Linux上使用源码的方式安装软件非常繁琐,使用yum可以简化安装的过程
2、yum的常用命令
安装httpd并确认安装
yum install -y httpd
列出所有可用的package和package组
yum list
清除所有缓冲数据
yum clean all
列出一个包所有依赖的包
yum deplist httpd
删除httpd
3、制作本地yum源
3.1 为什么要制作本地yum源
yum源虽然可以简化我们在Linux上安装软件的过程,但是生成环境通常无法上网,不能连接外网的yum源,说以就无法使用yum命令安装软件了。为了在内网中也可以使用yum安装相关的软件,就要配置yum源
3.2 yum源的原理
yum源其实就是一个保存了多个rpm包的服务器,可以通过http的方式来检索、下载并安装相关的rpm包
3.3 制作本地yum源
<1>准备一台Linux服务器,用最简单的版本CentOS-6.7-x86_64-minimal.iso
<2>配置好这台服务器的IP地址
ifconfig eth0 up 激活eth0网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改配置文件
service network restart 重启服务,自动获取IP地址
<3>上传CentOS-6.7-x86_64-bin-DVD1.iso到服务器
<4>将CentOS-6.7-x86_64-bin-DVD1.iso镜像挂载到某个目录
mkdir /var/iso
mount -o loop CentOS-6.7-x86_64-bin-DVD1.iso /var/iso
<5>修改本机上的yum源配置文件,将源指向自己,备份原有的yum源配置文件
cd /etc/yum.repos.d/
rename .repo .repo.bak*
vi CentOS-Local.repo
添加上面内容保存退出
<6>清除yum缓冲
yum clean all
<7>列出可用的yum源
yum repolist
<8>安装相应的软件
yum install -y httpd
<9>开启httpd使用浏览器访问http://192.168.0.100:80(访问不同,检查防火墙是否开启了80端口或关闭防火墙)
service httpd start
打开80端口
vi /etc/sysconfig/iptables
在-A INPUT -j REJECT --reject-with icmp-host-prohibited上面加入如下语句
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重启服务
/etc/init.d/iptables restart
查看端口是否生效
<10>将yum源配置到httpd(Apache Server)中,其他的服务器即可通过网络访问这个内网中的yum源了
cp -r /var/iso /var/www/html/CentOS-6.7
<11>取消先前挂载的镜像
umount /var/iso
<12>在浏览器中访问http://192.168.0.100/CentOS-6.7/
<13>让其他需要安装rpm包的服务器指向这个yum源,准备一台新的服务器,备份或删除原有的yum源配置文件
cd /etc/yum.repos.d/
rename .repo .repo.bak*
vi CentOS-Local.repo
添加上面的内容保存退出
<14>在这台新的服务器上执行yum的命令
yum clean all
yum repolist
<15>安装相应的软件
yum install -y gcc
<16>加入依赖包到私有yum的repository
进入到repo目录
执行命令:createrepo
五、VMware虚拟机三种联网方法及原理
1、Bridge---桥接:默认使用VMnet0
<1>原理:
Bridge的桥就是一个主机,这个主机拥有两块网卡,分别处于两个局域网中,同时在“桥”上,运行着程序,让局域网A中的所有数据包原封不动的流入B,反之亦然。这样,局域网A和B就无缝的在链路层连接起来了,在桥接时,WMware网卡和物理网卡应该处于同一IP网段,当然要保证两个局域网没有冲突的IP。
VMware的桥也是同样的道理,只不过,本来作为硬件的一块网卡,现在由VMware软件虚拟了,当采用桥接时,VMware会虚拟一块网卡和真正的物理网卡进行桥接,这样,发到物理网卡的所有数据包就到了VMware虚拟机,而由VMware发出的数据包也会通过桥从物理网卡的那端发出
<2>联网方式
这一种联网方式最简单,在局域网内,你的主机是怎么联网的,你在虚拟机里就怎么连网,把虚拟机看成局域网内的另一台电脑就行了
提示:主机网卡处在一个可以访问Internet的局域网中,虚拟机才能通过Bridge访问Internet
2、NAT--网络地址转换:默认使用VMnet8
<1>原理:
NAT是Network address translate的简称。NET技术应用在internet网关和路由器上,比如192.168.0.123这个地址要访问internet,它的数据包就要通过一个网关或者路由器,而网关或者路由器拥有一个能访问internet的ip地址,这样的网关和路由器就要在收发数据包时,对数据包的IP协议层数据进行更改(即NAT)以使私有网段主机能够顺利访问internet。此技术解决了IP地址稀缺的问题。同样的私有IP可以网关NAT上网。
虚拟网卡和虚拟机处于一个地址段,虚拟机和主机不同一个地址段,主机相当于虚拟机的网关,所依虚拟机能ping到主机的IP,但是主机ping不到虚拟机的IP
<2>联网方式
方法1:动态IP地址
主机是静态IP或动态IP都无所谓,将虚拟机设置成使用DHCP方式上网,Windows下选择“自动获取IP”,Linux下开启DHCP服务即可。(这种方法最简单,不用过多的设置,但要在VMware中进行“编辑->虚拟网络设置”,将NAT和DHCP都开启了,一般NAT默认开启,DHCP默认关闭)
方法2:静态IP地址
如果不想使用DHCP,也可以手动设置
IP设置与VMnet1同网段,网关设置成VMnet8的网关(在“虚拟网络设置”里的Net选项卡里能找到Gateway)通常是xxx.xxx.xxx.2
DNS设置与主机相同
例如:主机IP是10.70.54.31,设置虚拟机IP为10.70.54.22。Netmask,Gateway,DNS都与主机相同即可实现 虚拟机----主机 虚拟机<---->互联网通信
提示:使用NAT技术,主机能上网,虚拟机就可以访问Internet,但是主机不能访问虚拟机
3、Host-Only---私有网络共享主机:默认使用VMnet1
<1>原理:
提供的是主机和虚拟机之间的网络互访,只想让虚拟机和主机之间有数据交换,而不是让虚拟机访问Internet,就要采用这个设置了
Host-only的条件下,VMware在真正的windows系统中,建立一块软网卡,这块网卡可以在网络连接中看到,一般是VMnet1,这块网卡的作用就是使windows看到虚拟机的IP。
<2>联网方法
方法1:动态IP地址
像上面那样开启DHCP后,虚拟机直接自动获取IP地址和DNS。就可以和主机相连了。
方法2:静态IP地址
也可以手动设置,将虚拟机IP设置与VMnet1同网段,网关设置成Vmnet1的网关相同,其余设置与VMnet1相同,DNS设置与主机相同
例如:VMnet1 IP:172.16.249.1 Gateway:172.16.249.2
那么虚拟机 IP:172.16.249.100 Gateway:172.16.249.2
这样 虚拟机<--->主机 可以通信
但是 虚拟机<--->互联网 无法通信
提示:Host-only技术只用于主机和虚拟机互访,于访问Internet无关
解决克隆后etho不见的问题
直接修改 /etc/sysconfig/network-script/ifcfg-eth0
删掉UUID HWADDR
配置静态地址
然后:
rm -rf /etc/udev/rules.d/70-persistent-net.rules
然后:
reboot
本文出自 “鹏哥的博客” 博客,谢绝转载!
以上是关于第一天:Linux的相关知识1的主要内容,如果未能解决你的问题,请参考以下文章