一、回顾
1.GUN/GPL GUN/Linux Linu内核 发行版
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
4.vi编辑器
命令行模式:/ yy dd p u
插入模式或者编辑模式: i Esc
最后行模式: w q ! wq! w! q! set nu 替换
二、用户和用户组
1.超级用户
就是root用户,拥有至高无上的权限,这个用户在实际生产环境中不尽量不要使用
root 用户的UID 0
2.普通用户
UID从500开始的
3.伪用户
UID在1~499之间的是伪用户
系统指定的一些进程,给它们也分配了一部分ID号,这部分伪用户不能够真正的登陆,也没有家目录
$ cat /etc/passwd
user01:x:500:500::/home/user01:/bin/bash
用户名:密码:UID:GID:注释性描述(fullname):用户家目录: 用户使用的shell
4.创建用户:# useradd username
# useradd [用户名]
5.创建用户组 # groupadd shengfen
# groupadd [用户组名]
6.设置修改用户密码:
第一种: # passwd shanghai
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 shanghai
--stdin 表示输入的意思,一定要加的选项
# echo '654321' | passwd --stdin shanghai
Changing password for user shanghai.
passwd: all authentication tokens updated successfully.
7.切换用户 su -
切换一定 要加 -
su 和 su - 的区别:一个是切换用户,一个是完整的切换(包括用户环境)
9.删除用户: # userdel hanzhou
*** # userdel -r hanzhou ->推荐
选项:-r 彻底删除用户包括用户主目录
扩展:
1、# gpasswd 管理用户组成员,增加或删除
-a 为用户组加入一个已存在的用户
-d 将用户组内的某个用户移除
# gpasswd -a feng ziran
# gpasswd -d feng ziran
2、# useradd -G: 创建一个新用户并加入到所属组
三、用户文件和目录权限 (rwx)
1.drwxrwxr-x d代表目录 -代表文件 b
2.rwx(所有者的权限)-> u rwx(所属者大的权限) ->g r-x(其他用户权限) -> o
r:cat,more ,head,tail
w: vi touch mkdir mv cp rm
x:cd,执行脚本 sh
所有者:user, 用u表示
所属组:group,用g表示
其他人:other,用o表示
r:4
w:2
x:1
3.修改文件或目录的权限命令: chmod
--> 字母用法:# chmod u+x test
--> 字母用法:# chmod g+x,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.txt
注意:使用root用户操作
6.一条命令同时修改所属用户和所属组
# chown user01:user01 /home/user01/1.txt
四、管道符|、追加/覆盖符号
1、用竖线表示 | :
2、表示将前一个命令的输出结果传递给后面的命令处理,两边都是命令
$ cat /etc/passwd | more
3、grep:过滤筛选
$ cat /etc/passwd | grep 'root'
4、过滤条件
$ ifconfig | grep 'inet'
$ ls /dev | grep 'cdrom'
5、追加用两个大于符号表示:>>
表示将前一个命令的输出结果追加写入到某个文件中
$ ifconfig | grep inet >> ~/test/file6
如果被写入的文件不存在,则自动创建
6、覆盖用一个大于符号表示:>
表示将前一个命令的输出结果覆盖写入到某个文件中
$ head -3 /etc/passwd > /home/user01/test/demo
7、wc(word count)统计命令:统计单词、字符、行数,支持管道符号
$ wc -l /etc/passwd
$ head -3 /etc/passwd | wc -l
统计某个文件或目录的大小或者是占用的存储空间大小
du -sh /test
8、ps -ef 显示当前系统正在运行的进程
$ ps -ef | wc -l
五、搜索命令: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 .tar.gz
1)压缩命令: tar 压缩文件或目录
用法: $ tar -cvf 20170427.tar passwd
2)压缩格式: .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
综合练习:
安装jdk
1.创建两个目录
$ sudo mkdir /opt/software //安装包的存放目录
$ sudo mkdir /opt/modules //解压安装的目录
2.修改目录的所属用户及所属用户组
$ sudo chown user01:user01 /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)
八、磁盘管理(添加硬盘、分区、挂载)
磁盘的管理:
如何磁盘进行分区
如何对磁盘进行格式化
如何对磁盘进行挂载
在linux中,第一块硬盘sda,第二块硬盘sdb...
将第一块硬盘分成3个区, sda1, sda2, sda3
在分区完成之后需要对每一块分区进行格式化
格式化完成之后需要对每一块分区进行挂载(临时,永久)
完成了挂载之后才能使用df -l 命令进行查看
添加一块新硬盘的步骤:
第一步:添加一块硬盘
第二步:开机,在/dev目录下已经识别到新的硬盘 sdb
# fdisk -l 查看系统所有设备的情况
第三步:分区
# fdisk /dev/sdb
分区分两种:
1.主分区 primary partition
主分区的数量1~4个
2.扩展分区 extended partition
如果想划分更多的分区,那么就要使用到扩展分区
cylinder:柱面
圆柱体的截面
3.逻辑分区 logical (5 or over)
扩展分区不能直接使用,必须再划分逻辑分区
分区类型
82:swap 交换分区
当物理内存不够使用的时候,使用交换分区充当内存
83:linux
(m for help): m
l list known partition types
n add a new partition
p print the partition table
q quit without saving changes
w write table to disk and exit
Command action
e extended
p primary partition (1-4)
First cylinder (1-2610, default 1):
Using default value 1
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +5G
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 3
First cylinder (1309-2610, default 1309):
Using default value 1309
Last cylinder, +cylinders or +size{K,M,G} (1309-2610, default 2610):
Using default value 2610
Command action
l logical (5 or over)
p primary partition (1-4)
First cylinder (1309-2610, default 1309):
Using default value 1309
Last cylinder, +cylinders or +size{K,M,G} (1309-2610, default 2610): +5G
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
/dev/sdb2 655 1308 5253255 83 Linux
/dev/sdb3 1309 2610 10458315 5 Extended
/dev/sdb5 1309 1962 5253223+ 83 Linux
/dev/sdb6 1963 2610 5205028+ 83 Linux
第四步:格式化分区
->命令:#mkfs
->文件系统:ext4,ext3,ext2
->用法:# mkfs.ext4 /dev/sdb1
Linux常用的文件系统File System
etx2 ext3 ext4
# mkfs.ext4 分区文件
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb5
mkfs.ext4 /dev/sdb6
第五步:挂载分区
df -h
->挂载命令:mount (临时挂载)
->用法:# mount /dev/sdb1 /mnt/system
->/mnt是挂载点,是访问分区的唯一入口
->挂载点必须要存在
创建挂载点
# mkdir system software study games
# mount /dev/sdb1 /mnt/system
# mount /dev/sdb2 /mnt/software
# mount /dev/sdb5 /mnt/study
# mount /dev/sdb6 /mnt/games
# df -l
/dev/sdb1 5170664 141336 4766668 3% /mnt/system
/dev/sdb2 5170696 141336 4766700 3% /mnt/software
/dev/sdb5 5170664 141336 4766668 3% /mnt/study
/dev/sdb6 5123204 141240 4721716 3% /mnt/games
第六步 永久挂载
用法:# vi /etc/fstab //启动时按fstab文件描述内容加载文件系统
被挂载设备 挂载点 文件系统类型
/dev/sdb1 /mnt/system ext4 defaults 0 0
/dev/sdb2 /mnt/software ext4 defaults 0 0
/dev/sdb5 /mnt/study ext4 defaults 0 0
/dev/sdb6 /mnt/games ext4 defaults 0 0