一、回顾
1.GUN/GPL GUN/Linux Linux内核 发行版
2.基础命令
ls
ls -l 或者 ll
ls -a
cd 绝对路径 / 相对路径 回到上一级或者打开下一级目录
用户主目录 /home/username ~ cd
pwd
su -
3.目录和文件的指令
增: mkdir mkdir -p touch vi
删: rmdir rm -r -f
改: cp -r mv
查: cat more head -n tail -n -f/-F ls ll
4.vi编辑器
命令行模式:/ yy dd p u
插入模式或者编辑模式: i Esc
最后行模式: w q ! wq! w! q! set nu(显示行数) 替换
二、用户和用户组
1.超级用户
就是root用户,拥有至高无上的权限,这个用户在实际生产环境中尽量不要使用,系统安装过程中创建的
root 用户的UID 0
2.普通用户
UID从500开始的 由root创建 不止一个
3.伪用户
UID在1~499之间的是伪用户
系统指定的一些进程,给它们也分配了一部分ID号,这部分伪用户不能够真正的登陆,也没有家目录
$ cat /etc/passwd //当前系统中所有用户的信息
hadoop:x:500:500::/home/hadoop:/bin/bash
用户名:密码:UID:GID:注释性描述(fullname):用户家目录:用户使用的shell
4.创建用户:# useradd username
# useradd [用户名]
# useradd beijing
3个地方证明已经创建了用户 cat /etc/sysconfig/network
Permission denied 权限禁止
5.创建用户组 # groupadd zhongguo
# groupadd [用户组名]
【注意】:在创建用户同时,会自动创建一个与其名称一样的用户组
6.设置修改用户密码:
第一种:
# passwd [uesername]
Changing password for user beijing.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
第二种:echo 回显打印字符内容
# echo '654321' | passwd --stdin beijing
--stdin 表示输入的意思,一定要加的选项
Changing password for user beijing.
passwd: all authentication tokens updated successfully.
witch user
7.切换用户
su - [要切换的目标用户]
切换一定 要加 -
su 和 su - 的区别:一个是切换用户,一个是完整的切换(包括用户环境)
普通用户切换root:需要知道root用户的密码
root用户切换普通用户:不需要密码
普通用户切换普通用户:需要知道被切换用户的密码
8.删除用户:
# userdel hanzhou
*** # userdel -r hanzhou ->推荐
选项:-r 彻底删除用户包括用户主目录
扩展:
1、# gpasswd 管理用户组成员,增加或删除
-a 为用户组加入一个已存在的用户
-d 将用户组内的某个用户移除
# gpasswd -a beijing zhongguo
# gpasswd -d beijing zhongguo
2、# useradd -G: 创建一个新用户并加入到所属组
三、用户文件和目录权限 (rwx)
1.drwxrwxr-x d代表目录 -代表文件 b
2.rwx(所有者的权限)-> u rwx(所属组的权限) ->g r-x(其他用户权限) -> o
r:文件-cat,more ,head,tail 目录-ls ll
w:文件-vi touch 目录- mkdir mv cp rm
x:文件 执行脚本(脚本文件) sh 目录:cd
所有者:user, 用u表示
所属组:group,用g表示
其他人:other,用o表示,其他普通用户
r:4
w:2
x:1
3.修改文件或目录的权限命令:chmod
--> 字母用法:# chmod u+x test
--> 字母用法:# chmod g+w,g-r,o+x test
--> 字母用法:# chmod o-x test
赋予权限用户加号表示:+
撤销去哪先用减号表示:-
-->数字用法:# chmod 764 file5
选项:-R, 递归修改
用法:# chmod 777 -R test/
4.修改文件的所有者或所属用户chown
用法:
# chown shanghai /home/user01/1.txt
注意:使用root用户操作
5.修改文件或目录的所属组用户chgrp
用法:
# chgrp shanghai /home/user01/1.tx
注意:使用root用户操作
6.一条命令同时修改所属用户和所属组changing ownership 【必须使用root用户】
# chown beijing:beijing /home/user01/1.txt
: 英文输入状态下的
前后不能有空格
选项:chown -R beijing:beijing /home/user01/Desktop
四、管道符 | 追加 >> 覆盖符号 > 命令未结束符号 \
1、用竖线表示 | :
表示将前一个命令的输出结果传递给后面的命令处理,两边都是命令
$ cat /etc/passwd | more
$ ps -ef | grep 'init'
1)、grep:过滤筛选
$ cat /etc/passwd | grep 'root'
2)、过滤条件
$ ifconfig | grep 'inet'
$ ls /dev | grep 'cdrom'
2、追加用两个大于符号表示:>>
表示将前一个命令的输出结果追加写入到某个文件中
$ ifconfig | grep inet >> ~/test/file6
如果被写入的文件不存在,则自动创建
3、覆盖用一个大于符号表示:>
表示将前一个命令的输出结果覆盖写入到某个文件中
$ head -3 /etc/passwd> /home/user01/test/demo
4、 \ 表示命令未结束换行继续
注意: \后面不能任何字符,直接回车
$ cat /etc/sysconfig/ \
> network-scripts/ifcfg-eth0
补充命令
5、wc(word count)统计命令:统计单词、字符、行数,支持管道符号
$ wc file.log
1 4 19 file.log 行数 单词数 字节数
$ wc -l /etc/passwd 统计行数
$ head -3 /etc/passwd | wc -l
统计某个文件或目录的大小或者是占用的存储空间大小
du -sh /test
6、df -l 显示当前各个硬盘分区的使用情况
7、du -sh 统计文件或目录的大小
五、搜索命令:find
1、搜索命令会消耗大量的资源
2、语法格式:
find 【搜索范围】 【匹配条件】
3、根据文件名搜索
选项: -name
全盘精确查找:
$ find / -name init
模糊查询包含关键字的:
$ find /etc/ -name *init*
查找关键字开头的文件:
>find /etc/ -name init*
# find /etc/ -name init???
*号:通配符,匹配任意的字符
?号:匹配单个字符
Linux中大小写是严格区分的
选项:-iname,表示不区分大小写
# find /etc/ -iname init???
4.根据文件大小搜索
选项:-size
指定方式:+大于, -小于,不加符号表示等于
$ # find /etc/ -size +2M
5.根据所有者和所属组查找
$ find /root -user root
$ find /root -group root
6.根据文件类型进查找
$ find /etc/ -name init* -type f
$ find /etc/ -name init* -type d
f 表示文件 d 代表目录
六、sudo 权限
1、操作对象是系统命令
2、命令: # visudo 管理员(root)身份执行
3.配置sudo
# visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user01 ALL=(root) NOPASSWD: ALL
那三个ALL到底是什么意思。
第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明user01用户可以在此主机上执行后面的命令。
第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。
最后一个ALL当然就是指命令名了。
4.使用:在需要root用户操作的时候,在原来命令的前方加sudo
$ vi /etc/hosts
"/etc/hosts" [readonly] 3L, 189C
$ sudo vi /etc/hosts
七、压缩和解压缩
WinRAR .rar .zip .7z
在windows中,使用一款压缩软件就能全部搞定压缩和解压缩的问题压缩格式
在Linux中常见的格式
.gz
.tar
.tar.gz
1、压缩格式:.gz
1)压缩命令: gzip 准备压缩的文件
用法:$ gzip 1.txt
注意:不能保留源文件,只能压缩文件
2)解压缩命令: gunzip
用法:$ gunzip passwd.gz
2、压缩格式:.tar
1)压缩命令: tar -cvf 压缩后的文件及所在目录 被压缩的文件或目录
用法: $ tar -cvf 20170427.tar passwd
2)解压缩命令:tar -xvf 被压缩的文件或目录 -C 解压到的目录
3、压缩格式: .tar.gz
分两步完成:第一步,先将源文件压缩成tar tar -cvf
第二步,压缩成.tar.gz gzip
**一次性完成:
$ tar -zxvf 1202.tar.gz demo/
***3)解压缩
$ tar -zxf 1202.tar.gz -C Desktop/
选项:
-z, --gzip, --gunzip, --ungzip filter the archive through gzip
-c, --create create a new archive
-x, --extract, --get extract files from an archive
-v, --verbose verbosely list files processed
-f, --file=ARCHIVE use archive file or device ARCHIVE
-C, --directory=DIR change to directory DIR
八、linux 软件包管理(安装,卸载,升级,查询)
1、针对服务器
2、windows中所有的软件包不能直接Linux中使用
3、软件包:
->源码包(脚本)--》特点:免费、开源 .src 编译安装
-mvn(maven) mvn
-ant make makeapp
-sbt
->二进制包(rpm包,系统默认包) 相当于windows中.exe
-> rpm (获取rpm包的方式:可以网上下载,安装镜像ISO文件)
-> yum(依赖问题需要借助网络,会自动解析依赖)
->压缩包 (绿色版)
一)、rpm命令
1、CentOS主要管理包的方式
2、rpm管理以rpm结尾的包
3、挂载光驱
# mount /dev/cdrom /media/
【扩展】
软件包的命名方式:
zlib-devel-1.2.3-29.el6.x86_64.rpm
软件名(zlib) 版本类型(devel:开发版 ;client:客户端)版本号(1.2.3) 发行号(29.el6) 硬件平台(x86_64:64位;i386:32位)
软件全名:sudo-1.7.2p1-5.el5.i386.rpm
软件名(sudo),版本号(1.7.2pl),发行号(5.el5),和硬件平台(i386)。
注意:64位的应用或软件是无法在32位系统上运行,而64位系统则可以兼容32位的应用
4、安装:
# rpm -ivh tree-1.5.3-3.el6.x86_64.rpm
用法: rpm -ivh 软件名(.rpm)
选项:-i install 代表安装
-vh 显示详细的进度
5、查看:# rpm -qa 查询当前系统中安装了哪些软件(已经安装好的rpm包)
选项: -q(--query)代表查询
-a --all
# rpm -qa | grep jdk
# rpm -qa | grep mysql
6、卸载
# rpm -e xcb-util-0.3.6-1.el6.i686
选项: -e 代表卸载 --erase
用法: rpm -e 软件名(.rpm) --nodeps (不验证依赖卸载)
--nodeps
Don’t do a dependency check before installing or
upgrading a package.
rpm -e --nodeps 软件名(.rpm)
$ sudo rpm -e tree-1.5.3-3.el6.x86_64
【注意】:先查询再卸载
7、查看某个文件属于哪个rpm包安装的
# rpm -qf /etc/ntp.conf
8、whereis 【命令】
9、which 【命令】
二)、yum命令 在线安装 .rpm 安装 查询 更新 卸载
1、前提是必须连接外网
***2、用来解决rpm依赖性问题
3、方便、快捷、自动解析依赖
4、查询:
# yum list //查看yum源上拥有的软件
# yum list installed | more //查看系统中已经安装好的rpm包 等同于 rpm -qa
$ sudo yum list installed | grep tre
# yum list updates | more //查询可以更新的软件
5、安装:
# yum install httpd
选项:install 后缀不需要加.rpm 可以直接使用命令
选项:-y , 表示直接自动确认
# yum -y install httpd
$ sudo yum install tree
6、卸载
# yum -y remove httpd-devel.x86_64
$ sudo rpm -qa | grep tree
常见问题:
1.ping (检测网络质量和网络连接) 不同外网
检查网卡设置,DNS
2、包无法下载
检查配置仓库是否正确包
推荐做法:使用yum安装,然后rpm做查询和卸载
综合练习:
安装jdk
1.创建两个目录
$ sudo mkdir /opt/software //安装包的存放目录
$ sudo mkdir /opt/modules //解压安装的目录
2.修改目录的所属用户及所属用户组
$ sudo chown wanglu:wanglu /opt/software/ /opt/modules/
3.上传并解压jdk
$ tar -zxf jdk-7u67-linux-x64.tar.gz -C ../modules/
4.配置环境变量
# vi /etc/profile
#JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
5.使生效
source /etc/profile
6.检查是否成功
java -version
//查询自带的jdk
$ rpm -qa | grep jdk
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
//卸载自带的jdk
$ sudo rpm -e java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 --nodeps
$ sudo rpm -e java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 --nodeps
//重新生效
$ source /etc/profile
再次进行验证
$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)