Linux Shell操作
linux 命令的组成:
命令 参数 文件|路径
#ls -al /home
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 或者 pstree -p (显示pid)
3.15 显示所有正在运行的进程
3.16 显示所有正在运行java 进程/
jps ps -aux
3.17结束正在运行的指定进程(参照33)
kill -9 pid
3.18 linux 不进去系统更改root密码
1.在grub选项菜单按e进入编辑模式
2.编辑kernel那行 输入” 1”(空格1)
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账号与组操作
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下文件权限介绍
1- 2rw- 3rw- 4r–
- 表示文件。
rw- r read(读取)
w write(写入)
x execute(执行)
2: 表示当前用户对文件的权限。
3:表示当前组的用户对文件的权限。
4:表示其他组的用户对文件的权限。
r4 w2 x1
Linux 文件的7个权限。
"0:无权限
1:可执行
2:可写
3:可执行、可写
4:可读
5:可读可执行
6:可读可写
7:可读可写可执行"
修改文件的权限:
Chmod 777 a.jpg:
修改文件的所有者:
Chown 张三:张三 a.jpg
关于用户和组的概念:
在用户的文件中。体现。
rwx rwx rwx 用户:用户组
创建两个用户:
Jack lucy
创建两个组
Teacher student
讲jack 添加到teacher组
讲lucy 添加到student 组。
使用jack在jack的目录中,创建文件。
使用lucy登录。查看lucy是否对jack的文件拥有权限。
如果没有,请添加给lucy权限。
2: 讲lucy和jack 放到同一个组中。匹配同组的权限。
在linux中,经常会遇到权限问题。很难。
给普通用户有个root权限。
Vi /etc/soduers
# huaqiang ALL=(root)NOPASSWD:ALL
如何使用 免密码的root权限。
#sudo 命令名。
3.33查看当前位置
pwd
3.34显示当前目录的文件列表
ls -l /data0
3.35递归显示/目录的文件列表
ls -R /data0
3.36显示文件或文件夹详细信息
权限:读取\写入\可执行
归属关系: 所有者\所属组\其他用户
-|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
⑤:所有者
⑥:所属组
⑦:文件大小
⑧:最后修改时间
⑨:文件名
Linux文件文件夹操作
3.37 创建文件夹和文件 (指定目录和不指定目录的区别)
mkdir /tmp/test01 //创建空文件夹
mkdir /data1/hadoop/hdfs/name -p //创建多级文件夹
touch /tmp/test01/file.txt //创建空文件
vi file.log //创建空文件并进如编辑模式
cat test.log // 查看文件内容。
重定向:
echo > file.txt //创建file.txt并输入空到该文件中
echo > >file.txt //创建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
more install.log
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! //强制退出
显示行号:#set nu
向右移动 --> l
向左移动 --> h
向下移动 --> j
向上移动 --> k
保存当前修改并退出 --> ZZ
撤销上一步操作 --> u
移动光标到行首 --> 0 (数字0) gg
移动光标到行末 --> $ :G
移动光标到当前页最顶行 --> H
移动光标到当前页最底行 --> L
向前翻一页(Page Up) --> Ctrl + f
向后翻一页(Page Down) --> Ctrl + b
1)选定文本块,使用v进入可视模式;移动光标键选定内容
(2)复制选定块到缓冲区,用y;复制整行,用yy
(3)剪切选定块到缓冲区,用d;剪切整行用dd
(4)粘贴缓冲区中的内容,用p
1. 在使用vi编辑器编辑文本的时候直接跳到文件的首行的指令是_______. gg, :0
2. 在使用vi编辑器编辑文本的时候直接跳到文件的末行的指令是_______. G,:$
3. 在使用vi编辑器编辑文本的时候一次性删除光标后的5行的指令是_______. 5dd
1. 在使用vi编辑器编辑文本的时候复制当前行附近的3行的指令是_______. 3yy
2. .在使用vi编辑器编辑文本的时候进入字符选择模式的指令是_______. 按v
3. .在使用vi编辑器编辑文本的时候进入块选择模式的指令是_______. 按ctril+v
在linux中安装JDK:
-1: 首先判断,在当前的linux中是否有已经安装的JDK。
Java javac java -version
-2: 卸载之前已经安装的JDK;
#sudo rpm -qa | grep JDK
卸载JDK:
#sudo rpm -e --nodeps (jdk版本)
3: 开始安装。
3.1: 使用远程文件传输工具。将JDK的tar.gz 的安装包。发往linux。
3.1.1: 首先在linux中创建三个文件夹》 softwares modules tools
#sudo mkdir /opt/softwares
#sudo mkdir /opt/modules
#sudo mkdir /opt/tools
3.1.2: 修改三个文件夹的所有者:
#sudo chown huaqiqng:huaqiang: softwares modules tools
3.1.3: 使用远程工具进行文件拷贝。
3.1.4: 解压JDK安装包:
#修改安装包的权限。
# chmod 764 jdk-7u67-linux-x64.tar.gz
开始解压:
#tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/modules
- 4: 配置JDK的环境变量:
/opt/modules/jdk1.7.0_67
4.1: #SET JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin:
-5: 配置完环境变量。当前的系统无法识别。
需要刷新资源文件:
#source /etc/profile
-7: 进行测试。Java javac java -version
-8: 编写java文件。进行编译和执行。
3.49 打包 tar原理
-z 压缩
-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 (常用方法)
//解包到当前目录
修改文件权限:
#chmod u+x 00.tar
# 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 别名设置和取消(暂时性,终端或者是服务器关闭即失效):
-查看命令别名
:alias
-设置命令别名
:alias 别名=‘命令’
-取消命令别名
:unalias 别名
Linux 别名设置和取消(永久生效):
办法就是将别名的设置加入~/.bashrc文件,然后重新载入下文件就可以了。
$ vim ~/.bashrc
在文件最后面加入别名设置,如:alias rm=’rm -i’,保存后重新载入:
$ source ~/.bashrc
这样就可以永久保存命令的别名了。因为修改的是当前用户目录下的.bashrc文件,所以这样的方式只对当前用户有用。如果要对所有用户都有效,修改/etc目录下的bashrc文件就可以了。细看~/.bashrc文件,会发有这样一段代码:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
这个代码的意思就是加载.bash_aliases文件,centos已经帮我们考虑好了,所以也可以在用户根目录下新建一个文件.bash_aliases存放命令别名设置。
注意:alias这个命令是shell的内建命令,可以根据自己的使用习惯设置一些别名,需要注意的就是和其他命令冲突的情况。
Linux网络与安全级别操作
3.56 主机名配置文件
# vim /etc/sysconfig/network
HOSTNAME=teacher.tarena.com
# hostname teacher.tarena.com //临时修改
3.57主机与IP地址映射文件
# vim /etc/hosts //解析文件
10.0.0.10 www.baidu.com www
3.58 常见服务端口
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.59关闭防火墙
**/etc/init.d/NetworkManager stop
# chkconfig NetworkManager off
# iptables -F
# chkconfig iptables off
# service iptables save**
克隆后所需要进行的操作:
3.60虚拟机改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.61改主机名和映射文件
vi /etc/sysconfig/network
vi /etc/hosts
service network restart
给虚拟机打一个快照(相当于在某个时刻点给该虚拟机照一张照片),类似window恢复。
3.62 更改环境变量
export JAVA_HOME=/home/bigdata/jdk/
export HADOOP_HOME=/home/bigdata/hadoop/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export PATH=$PATH:$JAVA_HOME/bin:/home/bigdata/protoc/bin:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HADOOP_HOME/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.如果出现问题按照以上流程检查