一.Linux介绍
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
1.1 Linux主要特性
基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
1.2 常用Linux版本
Red Hat:RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server收费版本. 红帽企业级Linux
Fedora Core:由原来的Redhat桌面版本发展而来,免费版本
Centos:RHEL的社区克隆版本,免费
SuSE:最华丽的Linux发行版, 企业服务器端 X windows和程序应用方面做的确实不错。尤其与Microsoft的合作关系,应该是在所有的Linux发行版本中最亲密的。
Debian运行起来极其稳定,这使得它非常适合用于服务器
Ubuntu:是Debian的一款衍生版,也是当今最受欢迎的免费操作系统, 最流行的linux桌面系统
Fedora: 想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。
Linux目录结构
目录 作用
/ Linux系统的根目录,一般只存放目录
/bin和/usr/bin 命令(二进制)文件目录,包含可供root用户和普通用户所使用的Linux命令和二进制文件,包含shell解析器等
/boot 系统引导和内核目录,存放引导装载文件
/dev 设备目录,存放各个硬件设备的信息,例如光驱、硬盘等
/etc 系统级别的配置文件存放的目录,一般由配置管理员来使用
/home 所有普通用户的家目录
/lib、/usr/lib、
/usr/local/lib 系统使用的函数库的目录
/lost+fount 在ext2和ext3文件系统中,系统崩溃时记录信息的目录
/opt 给主机额外安装软件所摆放的目录
/proc 重要的需要放置在内存中的数据
/root root用户的的根目录
/sbin、/usr/sbin
/usr/local/sbin 放置的是系统管理员(root)才能使用的命令,普通用户只能进行查看,而/bin目录中的命令普通用户也可以使用
/tmp 存放应用程序产生的临时数据不能在此目录下存放重要数据
/var 系统一般运行时需要改变的数据
/sys 系统相关文件存放目录
/usr 应用程序相关目录命令、函数库、共享包、内核源码
快捷键
基本操作和命令
Ctrl+R 查找历史输入过的命令
Ctrl+C 终止或退出当前操作
Table键的使用
- 自动补全命令或目录
- 在某个目录下只有一个目录的时候可以不用输入首字母直接敲table即可自动补全目录
- 双击table时一般为显示所有命令或者列出某个目录下的所有目录和文件
三. Linux Shell操作
Linux系统级别命令
3.1查看当前Linux系统信息
uname -a 显示系统及版本的所有信息
uname -r 显示内核版本
uname -m 显示计算机是多少位系统
3.2查看系统小版本
cat /etc/redhat-release
3.3查看当前主机名
hostname
3.4查看第一个网卡
ifconfig eth0
3.5查看和设置系统时间
date
date -s “2015-5-8 19:48:00”
设置时区
执行tzselect命令–>选择Asia–>选择China–>选择east China - Beijing, Guangdong, Shanghai, etc–>
TZ=‘Asia/Shanghai’; export TZ
3.6 :设置系统时间同步到硬件时钟
hwclock --systohc
3.7 查看进程
ps -fe | grep redis
3.8:显示当前在运行的进程包括对CPU 内存使用量
top -s
3.9管道:|
cmd1 | cmd2 将cmd1输出结果交给cmd2命令来执行
3.10 grep过滤grep //输出包含指定字符串的行
-i //忽略大小写 -v //取反 --color //突出显示查找字符串
3.11 重新启动Linux操作系统
reboot
init 6
3.12 关闭Linux操作系统
shutdown -h now
init 0
3.13 图形和命令行转换
vi /etc/inittab
init 3 命令行模式
init 5 图形化
3.14 显示守护进程目录树
pstree
3.15 显示所有正在运行的进程
ps -aux
3.16 显示所有正在运行java 进程/
jps
3.17结束正在运行的指定进程(参照33)
kill -9 pid
3.18 linux 不进去系统更改root密码
1.在grub选项菜单按e进入编辑模式
2.编辑kernel那行 输入” e”(空格) single
3.按B重启存的
4.进入后执行下列命令
root@#passwd root (配置root的密码)
Enter new unix password:输入新的密码
root@#init 6
3.19 wget url 通过命令下载网页
wget http://192.168.21.41/lrzsz.rpm
Linux磁盘与U盘操作
3.20 显示系统的磁盘空间用量
df -h //显示磁盘分区信息
mkfs.ext3 /dev/sdb1 //格式化硬盘分区
fdisk -l //查看磁盘分区
fdisk /dev/sdb //硬盘分区51显示磁盘分区
3.21 挂载
mount -t vfat /dev/sdb1 /media/umnt //挂载
umount /media/umnt //卸载
//linux文件格式
ext4 vfat
//windows文件格式
fat32 ntfs
Linux账号与组操作
3.22 账户
超级账户 root uid = 0
普通账户 uid > = 500
系统账户 uid = 1 ~ 499
/etc/passwd //保存账户的信息
/etc/shadow //保存账户密码信息
/root //root用户家目录
/home/xxx //普通用户xxx的家目录
3.23 添加和删除用户 useradd
# useradd //创建用户
-u 指定uid
-d 指定宿主目录
-s 指定使用shell
-e 指定用户过期时间
-g 指定基本组
-G 指定附加组
# useradd openlab
# gpasswd -a openlab gropenlab //将用户加入到组中
# gpasswd -d openlab gropenlab //将用户从组中删除
# echo “123456” | passwd --stdin feige //不通过交互信息,直接改用户密码
# userdel //删除用户 不删除用户文件
# userdel -r //连主目录一起删除
# id openlab //显示用户信息
3.24 :创建用户组
groupadd manager
3.25 创建用户
useradd -G manager tom
useradd -G manager tom2
3.26 更改密码方式1
passwd tom
3.27更改密码方式2
echo “root” | passwd --stdin root //不通过交互信息,直接改用户密码
3.28 删除指定的账号
userdel tom2
3.29锁定帐户 tom2 禁止其登录
usermod -L tom2
3.30切换当前用户帐户为 admin
su - admin
3.31. 显示当前登录用户帐户
whoami
3.32 查看系统文件判断添加用户组添加用户操作是否正确
cat /etc/passwd
cat /etc/group
Linux文件文件夹操作
3.33查看当前位置
pwd
3.34显示当前目录的文件列表
ls -l /data0
3.35递归显示/目录的文件列表
ls -R /data0
3.36显示文件或文件夹详细信息
权限:读取\写入\可执行 r w x ==7 r4 w2 x1 chmod 755 file
归属关系: 所有者\所属组\其他用户
-|rw-|—|---. 1 root root 1771 4月 28 2015 anaconda-ks.cfg
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨
①:文件类型
- 文件
d 目录
l 链接
②:所有者权限(u)
r 读 4
w 写 2
x 执行 1
③:所属组权限(g)
r 读 4
w 写 2
x 执行 1
④:其他用户权限(o)
r 读 4
w 写 2
x 执行 1
⑤:所有者
⑥:所属组
⑦:文件大小
⑧:最后修改时间
⑨:文件名
3.37 创建文件夹和文件
mkdir /tmp/test01 //创建空文件夹
mkdir /data1/hadoop/hdfs/name -p //创建多级文件夹
touch /tmp/test01/file.txt //创建空文件
3.38 复制文件
cp /tmp/file1.txt /opt
3.39 复制目录
cp -r /tmp/test01 /opt
3.40移动,剪切,重命名
mv /opt/test01 /tmp
mv /opt/file1.txt /tmp/file2.txt
3.41 删除
rm //删除文件
rm -r //删除目录
rm -f //强制删除
rm –rf folder //常用命令 不可恢复
3.42文件内容查看
cat -n //查看内容时显示行号
cat /etc/redhat-release //不显示行号
cat -n /etc/passwd //查看内容时显示行号
3.43设置文件所有者拥有对文件读写执行权限
chmod 777 /data0/my.cnf
3.44 目录文件显示多行可上下翻查
less /etc/passwd
3.45 显示文件的头10行或尾10行
tail //默认查看文件尾10行
head //默认查看文件头10行
-n 数字 //查看指定头几行
# tail /etc/passwd
# head /etc/passwd
# tail -n 2 /etc/passwd
# head -n 3 /etc/passwd
# head -n 12 /etc/passwd | tail -n 5
3.46 重定向 > >>
> 先清空文件内容,后写入新的内容
# ls -l /root > /tmp/file1.txt
>> 追加新的内容,旧的内容不会消除
# ls -l /root >> /tmp/file1.txt
3.47 屏幕打印 echo
echo “No Hello World…” //打印到屏幕
echo “hello word” /data0/my.cnf //打印到文件
echo “hello word” >> /data0/my.cnf //打印追加到文件
3.48 文本编辑器 VIM
vim file
:q //退出
:w //保存
:wq //保存退出
:q! //强制退出
3.49 打包 tar原理
-c 打包
-x 解包
-f 必须要
-C 指定解包位置
-v 输出信息
3.49 打包tar案例(tar命令平常就代替了gz命令)
//将一个文件打包
tar -cvf folder.tar file1.txt
//将多个文件打成一个包
tar -cvf folder.tar file1.txt file2.txt
tar –cvf file.tar *.jpg (常用方法)
//解包到当前目录
tar -xvf folder.tar (常用方法)
//解包到指定目录
tar -xvf folder.tar -C /home/sss
//将多个文件打包并压缩
tar -zcvf file.tar.gz folder1 floder2
//将文件解包并解压缩
tar -zxvf file.tar.gz (常用方法)
3.50 使用tar备份指定目录/data0/内容包括子目录中内容备份至 /data3/data0.tar.gz
tar -zcvf /data3/data0.tartar.gz /data0
3.51恢复tar 文件中的内容/data3/data0.tar.gz 至 /data2
tar -zxvf /data3/data0.tar.gz -C /data2
3.52 给shell命令起别名
vi /etc/bashrc
在文件最后一行添加
alias cls=’clear’
保存退出后输入 #source /etc/bashrc 生效
3.52修改指定文件文件的所属组所有者为hadoop用户/data3/data0.tar.gz
chown -r hadoop:hadoop /data3/data0.tar.gz
3.53 which cmd 查找cmd命令所在路径
which reboot
3.54 locate 文件查找-效率很快(用的是数据库)
locate httpd.conf //查找文件按所在
updatedb //更新数据库,使之生效
3.55 find 文件查找-效率很慢
#find / -name httpd.conf
find 路径 条件
find / -name httpd.conf
find 路径 条件 -exec cmd {} ;
find / -name httpd.conf -exec ls -l {} ;
Linux网络与安全级别操作
3.56虚拟机改ip地址
1.vim /etc/udev/rules.d/70-persistent-net.rules
//eth0删掉 eth1改成eth0
2.vi /etc/sysconfig/network-scripts/ifcfg-eth0 注意MAC地址和UUID
手工配置
DEVICE=eth0
TYPE=Ethernet
UUID=d06a4eee-dd5c-45e5-afbc-38a8a8440bd9
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:74:E7:3E
IPADDR=192.168.10.11
PREFIX=24
GATEWAY=192.168.10.254
DNS1=192.168.10.254
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=“System eth0”
3.57 主机名配置文件
# vim /etc/sysconfig/network
HOSTNAME=teacher.beiwang.com
# hostname teacher. beiwang.com //临时修改
3.58主机与IP地址映射文件
# vim /etc/hosts //解析文件
10.0.0.10 www.baidu.com www
3.59关闭防火墙
/etc/init.d/NetworkManager stop
chkconfig NetworkManager off
#service iptables status 检查 当前服务(防火墙)是否开启
iptables -F
chkconfig iptables off
service iptables save
3.60 常见服务端口
web tcp 80
telnet tcp 23
ssh tcp 22
ftp tcp 20/21
smtp tcp 25
pop3 tcp 110
imap tcp 143
dns tcp/udp 53
可以参考/etc/services
3.61改主机名和映射文件后使配置生效
重启 init 6 或 重新加载文件
vi /etc/sysconfig/network
vi /etc/hosts
service network restart
3.62 更改环境变量
vi /etc/profile
export JAVA_HOME=/home/bigdata/jdk/
export HADOOP_HOME=/home/bigdata/hadoop/
export CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
/
d
t
.
j
a
r
:
JAVA_HOME/lib/dt.jar:
JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:/home/bigdata/protoc/bin:
Z
O
O
K
E
E
P
E
R
H
O
M
E
/
b
i
n
:
ZOOKEEPER_HOME/bin:
ZOOKEEPERHOME/bin:ZOOKEEPER_HOME/conf:
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin:$HIVE_HOME/bin:
使之生效
#source /profile
3.63设置SSH
telnet:明文 ssh:加密 ssh 默认端口22
# ssh root@192.168.10.11
# ssh -l root 192.168.10.11
3.64 上传文件 scp
# scp /tmp/love.txt root@192.168.10.11:/root/
# scp -P 30741 /tmp/love.txt root@192.168.1.11:/tmp/
3.65 下载文件 scp
# scp root@192.168.10.11:/root/love.txt /tmp/ //只发目录
# scp -P 30741 root@192.168.1.11:/tmp/love.txt /tmp //对指定端口发生文件
# scp -r /tmp/hadoop root@192.168.1.11:/tmp/ //目录下的所有文件
3.66检查linux系统网络配置流程
1.检查vmware上该虚拟机的网卡是否开启
2.检查vmware虚拟机的vm1网卡是否设置ip地址
3.关闭NetworkManager网络管理服务
4.关闭防火墙
5.更改ip地址
6.更改主机名称和主机映射
7.使用连接工具(xshell)进行连接
8.如果出现问题按照以上流程检查
四.远程连接工具
SecureCRT,远程命令行工具
FileZilla FTP Client,远程FTP工具
everedit或者UE或者Notepad,远程文本编辑工具