**
**
一切皆文件;
配置文件保存为纯文本格式;
**
**
GUI接口:
GUI: Graphic User Interface 图形用户界面
Windows
X-Window
Gnome
KDE : centos
Xface
CLI接口:
CLI: Command Line Interface 命令行界面
例如:ssh [email protected]
sh
bash
csh
ksh
zsh
tcsh
命令提示符、prompt、 bash(shell)
#: root
$: 普通用户
命令格式:
命令 选项 参数
选项:
短选项: -
多个选项可以组合:-a -b = -ab -后面一般跟字母
长选项: – 例如 --list --后面一般跟单词
参数:命令的作用对象
根目录是设备的最顶层目录,用 / 表示
家目录是每个用户登录系统后所在的目录,通常在 /home 下,以用户名作为目录,可以用 ~ 表示。
cd / 进入根目录
cd ~/ 进入家目录
**
**
3.1 cd(change directory)
cd:改变当前目录到指定目录
cd /etc
cd /opt
cd ~
3.2 pwd(Printing Working directory)
pwd:打印当前的工作目录
3.3 ls(list)
ls 查看当前目录的内容
ls -la
ls -l /etc
ls -l 此命令等价于ll
3.3.1
-l:长格式
文件类型:
-:普通文件 (f)
d: 目录文件
b: 块(字节)设备文件 (block)
c: 字符 character)
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket)
文件权限:9位,每3位一组,3组 权限(U,G,O)每一组:rwx(读,写,执行), r-- ,
第一组:文件的属主用户权限。第二组:文件的属组用户权限,第三组:其他用户权限
文件硬链接的次数
文件的属主(owner)
文件的属组(group)
文件大小(size),单位是字节
时间戳(timestamp):最近一次被修改的时间
访问:access
修改:modify,文件内容发生了改变
改变:change,metadata,元数据
-h:做单位转换
-a: 显示以.开头的隐藏文件
. 表示当前目录
.. 表示父目录
-A
-d: 显示目录自身属性
-i: index node, inode
-r: 逆序显示
-R: 递归(recursive)显示
3.4 type
显示指定属于哪种类型
3.4.1 命令类型
内置命令(shell内置),内部,内建
help COMMAND 比如:help cd
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
COMMAND --help 比如:date --help
**
**
rootfs: 根文件系统 /
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/root:管理员的家目录
/bin: 可执行文件, 用户命令
/sbin:管理命令
/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
/dev: 设备文件
设备文件:
块设备:随机访问,数据块
字符设备:线性访问,按字符为单位
设备号:主设备号(major)和次设备号(minor)
/lib:库文件
静态库, .a
动态库, .dll, .so (shared object)
/lib/modules:内核模块文件
/lib64
/opt:可选目录,第三方程序的安装目录
/usr: 系统级的目录
/usr/local:用户级的程序目录,用户自己编译的软件默认会安装到这个目录下
/var: 存放需要随时改变的文件,如系统日志、脱机工作目录
/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
/proc:伪文件系统,内核映射文件(不重启的情况下管理系统)
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件, /var/tmp
/lost+found: 存放一些系统检查结果,发现不合法的文件或数据都存放在这里;丢失的文件(比如异常断电)
**
**
路径:从起点到达一个终点,中间所经过的节点列表
绝对路径:以跟目录为起点到目标的路径。
相对路径:以当前目录为起点到目标的路径
1,练习:使用date单独获取系统当前的年份、月份、日、小时、分钟、秒
date "+%Y-%m-%d %H:%M:%S"
[root@pipi opt]# echo -e 'this year is' `date +%Y` 'this day is' `date +%d`
this year is 2019 this day is 23
以上需要注意的是`date +%d` 不是单引号 是键盘tab上面的按钮
可以使用date设置系统时间如下所示:
[root@pipi opt]# date -s 21:13
2019年 07月 23日 星期二 21:13:00 CST
[root@pipi opt]# date
2019年 07月 23日 星期二 21:13:13 CST
2,练习:echo/printf用法
1、echo是内部命令还是外部命令?其作用是什么?如何显示“the year is 2016.Today is 10yue 26”为两行?
通过type命令可知echo是内部命令:
[root@xuelinux ~]# type echo
echo is a shell builtin
echo作用:直接显示输入的内容。
echo -e "the year is 2016. \n today is 7."
[root@xuelinux ~]# echo -e "The year is 2016. \nToday is 7." 需要注意的是 -e 后面有空格
The year is 2016.
Today is 7.
2、printf是内部命令还是外部命令?其作用是什么?如何显示“the year is 2016.Today is 10yue 26”为两行?
通过type命令可知printf是内部命令:
[root@xuelinux ~]# type printf
printf is a shell builtin
printf作用:格式并显示输入的内容。
printf "the year is 2016. \n today is 7."
[root@xuelinux ~]# printf "The year is 2016.Today is 7.\n"
The year is 2016.Today is 7.
date命令常见的格式如下:
%t 跳格[TAB键]
%H 小时(00-23)
%I 小时(01-12)
%M 分钟(00-59)
%S 秒(00-60)
%X 相当于%H:%M:%S
%Z 显示时区
%p 显示本地AM或PM
%A 星期几 (Sunday-Saturday)
%a 星期几 (Sun-Sat)
%B 完整月份 (January-December)
%b 缩写月份 (Jan-Dec)
%d 日(01-31)
%j 一年中的第几天(001-366)
%m 月份(01-12)
%Y 完整的年份
**
**
1,目录管理: ls、cd、pwd、mkdir、rmdir、tree
2,文件管理: touch、stat、file、rm、cp、mv、nano,vi,vim
3,日期时间: date、clock、hwclock、cal ,ntpdate
4,查看文本: cat、tac、more、less、head、tail ,find,grep
1.1 mkdir:(make directory)创建空目录
-p:
-v: verbose
举例
/root/x/y/z
mkdir -pv /mnt/test/x/m /mnt/test/y
mkdir -pv /mnt/test/{x/m,y}
1.2 tree:查看目录树
yum -y install tree
1.3 rmdir (remove directory) 删除目录
删除空目录 -p 注意此处-p是递归删除
例如:
mkdir -p a/bb/cc/dd
rmdir -p a/bb/cc/dd
2.1 type touch
touch --help
文件有三种时间:
最后一次访问时间
最后一次修改时间:内容的改动叫修改
最后一次改变时间:文件(内容和元数据)的改动叫改变
一个文件有两种数据:元数据,内容数据
内容数据:文件内容本身
元数据:除了内容数据之外的。
2.2touch的作用:
将每个文件的访问时间和修改时间改为当前时间。
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项。
2.3 stat查看文件信息
2.4 rm: 删除文件
-i 删除之前确认
-f 删除之前不确认
-r 递归删除
注意:rm -rf / linux自杀
[root@pipi opt]# mkdir -p a/b/c
[root@pipi opt]# touch a/b/c/d.txt
[root@pipi opt]# rm -rf a
[root@pipi opt]# tree
.
0 directories, 0 files
2.5 cp (copy) 文件的复制
普通复制
cp SRC DEST
-r 递归复制目录及其子目录内的所有内容
-i 存在覆盖前确认
-f
cp file1 file2
可以做到以下操作:
一个文件到一个文件
多个文件到一个目录
[root@pipi opt]# cp d.txt dd.txt
[root@pipi opt]# mkdir -p a/a1/a2
[root@pipi opt]# cp -r a b
多个文件到一个目录
cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/
[root@pipi opt]# touch a/a1/a2/aa.txt
[root@pipi opt]# tree
[root@pipi opt]# cp a/a1/a2/aa.txt aa.txt.backup
[root@pipi opt]# tree
scp 网络拷贝(此应用较多)
scp aa.txt [email protected]:/home
把aa.txt文件复制到另一台虚拟机的home目录下
另外一种写法如下:
[root@pipi opt]# scp aa.txt [email protected]:`pwd`
scp -r x/ [email protected]:/home
2.6 mv (move) 移动文件
mv SRC DEST
mv -t DEST SRC
把aa.txt文件移动到home目录下示例如下:
[root@pipi opt]# touch aa.txt
[root@pipi opt]# mv aa.txt /home
[root@pipi opt]# ls -l /home
总用量 0
-rw-r--r--. 1 root root 0 7月 24 09:20 aa.txt
[root@pipi opt]# ls -l 当前目录下面没有aa.txt文件了
移动文件并改名
[root@pipi opt]# mv aa.txt zz.txt
4.1 文件的内容显示
cat 显示全部(只适用于查看小文件)
more: 分屏幕显示,只能向后翻
less: 分屏幕显示,可以向上翻
head:查看前n行 默认10行
tail:查看后n行
-n
-f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容;
4.2 管道 |
管道符左边命令的输出就会作为管道符右边命令的输入 head -2 文件名 | tail -1
4.3 find 查找文件命令
find pass *在当前目录下查找以pass 开头的文件
find /etc/pass* 在/etc目录中查找以 pass开头的文件
在opt目录下查找以.txt结尾的文件
[root@pipi opt]# find *.txt
在opt目录下查找与a有关的文件
[root@pipi opt]# find a*
4.4 grep 在文件内容中查找关键字
grep “rpm” /etc/passwd 在/etc/passwd文件中查找关键字 rpm
例如查找passwd文件含root的字符
[root@pipi opt]# cat /etc/passwd
[root@pipi opt]# grep root /etc/passwd
[root@pipi opt]# grep ^root /etc/passwd
例如查询zz.txt文件中含a的字符
[root@pipi opt]# cat zz.txt|grep a
4.5 文本处理
cut、sort、join、sed、awk
cut的用法
-d: 指定字段分隔符,默认是空格
-f: 指定要显示的字段
示例为:
[root@pipi opt]# cut -d ":" -f1 /etc/passwd 以冒号作为分隔符,显示第一列
[root@pipi opt]# cut -d ":" -f1-4 /etc/passwd 以冒号作为分隔符,显示第1至4列
[root@pipi opt]# cut -d ":" -f1,4 /etc/passwd 以冒号作为分隔符,显示第1列和第4列
sort的用法
[root@pipi opt]# sort /etc/passwd
-n:数值排序
-r: 降序
-t: 自定义分隔符
-k: 以哪个字段为关键字进行排序
-u: 排序后相同的行只显示一次
-f: 排序时忽略字符大小写
4.6 wc (word count) 文本统计
-l
-w
-c
-L
示例1:统计opt目录下数据的行数
[root@pipi opt]# ls -l |wc -l
示例2:统计/usr/bin/目录下的文件个数;
[root@pipi opt]# ls /usr/bin|wc -l
示例3:判断 /home目录是否有文件
[root@pipi opt]# find /home/*
示例4:取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;
[root@pipi opt]# cut -d":" -f7 /etc/passwd | sort -u
[root@pipi opt]# cat /etc/passwd|cut -d : -f7|sort -u
示例5:取出当前系统上被用户当作其默认shell的最多的那个shell
cat /etc/passwd | cut -d : -f7 | uniq -c | sort -n | tail -1
uniq -c:在每列旁边显示该行重复出现的次数。
sort -n:以数值来排序(从小到大)
/etc/passwd 文件 中的每一行都分为 7段
第一段: 用户名 第二段 : 密码站位符 第三段 :用户ID号 第四段: 组ID号
第五段: 对用户的描述 第六段: 用户的宿主目录 第七段: 登录Shell(登录时默认开启的接口)
示例6:取出/etc/inittab文件的第6行;
[root@pipi opt]# cat /etc/inittab|head -6|tail -1
[root@pipi opt]# head -6 /etc/inittab | tail -1
示例7:取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中;
[root@pipi opt]# cat /etc/passwd|tail -9|head -1|cut -d: -f1,7
[root@pipi opt]# tail -9 /etc/passwd | head -1 | cut -d: -f1,7
tee是一个命令。
主要用途----显示程序的输出并将其复制到一个或多个文件中。
示例8:显示/etc目录下所有以pa开头的文件,并统计其个数;
[root@pipi opt]# ls -d /etc/pa* |wc -l
**
**
安装man:[root@pipi opt]# yum -y install man
MAN:
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS:说明每一个选项的意义
FILES:此命令相关的配置文件
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外参照
翻屏:
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:J/ENTER
向前翻一行:k
查找:
/KEYWORD: 向后
n: 下一个
N:前一个
q: 退出
**
**
sed [options] 'AddressCommand' file ...
options
-n: 静默模式,不再默认显示模式空间中的内容
-i: 直接修改原文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-r: 表示使用扩展正则表达式
Command
d: 删除符合条件的行;
a \string: 在指定的行后面追加新行,内容为string \n:可以用于换行
i \string: 在指定的行前面添加新行,内容为string
r FILE: 将指定的文件的内容添加至符合条件的行处
w FILE: 将地址指定的范围内的行另存至指定的文件中;
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
g: 行内全局替换
i: 忽略字符大小写
示例1:把zz.txt文件中的a1字符替换为888
[root@pipi opt]# sed "s/a1/888/" zz.txt
示例2:把zz.txt文件中的888删除
[root@pipi opt]# sed "/888/d" zz.txt
**
**
用户管理:
useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage
组管理:
groupadd, groupdel, groupmod, gpasswd
权限管理:
chown, chgrp, chmod, umask
1 管理文件
/etc/passwd:用户名:密码:UID:GID:注释:家目录:默认SHELL
/etc/group:组名:密码:GID:以此组为其附加组的用户列表
/etc/shadow:用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间:
/etc/yum.repos.d 配置本地YUM源
/etc/hosts 更改主机名和IP 地址的对应关系
/etc/resolv.conf 可配置DNS 地址
/etc/sysconfig/network-scripts/ifcfg-eth0 配置网卡eth0
/etc/init.d 用于放置几乎所有服务的启动脚本(记录的是我们可启动的服务)
[root@pipi ~]# ls /etc/init.d
[root@pipi ~]# service iptables
[root@pipi ~]# service iptables stop
/etc/udev/rules.d 系统初始化时将硬件探测信息输出成设备配置文件,是一个程序
/etc/sysconfig/network 修改主机名
2.1 useradd增加用户
useradd [options] USERNAME
-u UID
-g GID(基本组)
-G GID,... (附加组)
-c "COMMENT"
-d /path/to/directory
-s SHELL
-m -k
-M
-r: 添加系统用户
增加用户 示例如下:
[root@pipi ~]# useradd f1
[root@pipi ~]# cat /etc/passwd
增加用户并分组 示例如下:
[root@pipi ~]# useradd -g 500 f2
[root@pipi ~]# cat /etc/passwd
2.2 userdel 删除用户
userdel [option] USERNAME
-r: 同时删除用户的家目录
删除f1用户示例为:
[root@pipi ~]# userdel f2
[root@pipi ~]# cat /etc/passwd
[root@pipi ~]# ls /home
[root@pipi ~]# rm -rf /home/f2
删除用户的同时删除用户的家目录示例如下:
[root@pipi ~]# userdel -r f1
2.3 passwd 密码管理
passwd [USERNAME]
--stdin
-l
-u
-d: 删除用户密码
先增加用户,在修改用户的密码示例如下:
[root@pipi ~]# useradd f1
[root@pipi ~]# passwd f1
2.4 usermod 修改用户帐号属性:
-u 用户帐号的新UID
-g 强制使用 GROUP 为新主组
-a -G GID:不使用-a选项,会覆盖此前的附加组;
-c GECOS 字段的新值
-d -m:
-s 该用户帐号的新登录 shell
-l 新的登录名称
-L:锁定帐号
-U:解锁帐号
2.5 chsh: 修改用户的默认shell
可以做到:
设置一个用户不能登陆
chsh -s /bin/bash 用户名
例如将f1用户的/bin/bash修改为/sbin/nologin 设置为不能登录:
[root@pipi ~]# chsh -s /sbin/nologin f1
[root@pipi ~]# su f1
This account is currently not available.
3.1 创建组:groupadd
groupadd
-g GID
-r:添加为系统组
3.2 修改组:groupmod
groupmod
-g GID
-n GRPNAME
3.3 删除组:groupdel
3.4 为组设定密码 :gpasswd
3.5 更改用户密码过期信息 chage
-d: 最近一次的修改时间
-E: 过期时间
-I:非活动时间
-m: 最短使用期限
-M: 最长使用期限
-W: 警告时间
4 权限管理(重要)
r:
w:
x:
111 101 101
4.1 三类用户:
u: 属主
g: 属组
o: 其它用户
4.2 chown: 改变文件属主(只有管理员可以使用此命令)
# chown file,...
-R: 递归修改目录及其内部文件的属主
--reference=/path/to/somefile file,...
示例为:
chown USERNAME:GRPNAME file,...
chown USERNAME.GRPNAME file,...
把属组文件改为属主文件
[root@pipi opt]# chown f1 zz.txt
4.3 chgrp: 改变文件属组(只有管理员可以使用此命令)
# chgrp GRPNAME file,...
-R递归修改目录及其内部文件的属主
--reference=/path/to/somefile file,...
4.4 chmod: 修改文件的权限
修改三类用户的权限:
chmod MODE file,...
-R
--reference=/path/to/somefile file,...
例如给opt目录下的zz.txt文件增加或者减去 属主执行权限x
[root@pipi ~]# cd /opt
[root@pipi opt]# ls -l
-rw-r--r--. 1 root root 117 7月 24 10:42 zz.txt
[root@pipi opt]# chmod u+x zz.txt
[root@pipi opt]# ls -l
-rwxr--r--. 1 root root 117 7月 24 10:42 zz.txt
[root@pipi opt]# chmod u-x zz.txt
[root@pipi opt]# ll
-rw-r--r--. 1 root root 117 7月 24 10:42 zz.txt
例如给opt目录下的zz.txt文件增加或者减去 其他用户的写权限w
[root@pipi opt]# chmod o+w zz.txt
[root@pipi opt]# ll
-rw-r--rw-. 1 root root 117 7月 24 10:42 zz.txt
[root@pipi opt]# chmod o-w zz.txt
清空zz.txt的权限
[root@pipi opt]# chmod 000 zz.txt
重新给zz.txt增加或减去权限
[root@pipi opt]# chmod 666 zz.txt
[root@pipi opt]# chmod 777 zz.txt
[root@pipi opt]# chmod 111 zz.txt
扩展:以上方法同样可以给目录修改权限
要同时修改目录及其目录下的所有文件的权限如下:
[root@pipi opt]# chmod -R 777 a (a为目录名 必须为大写字母R)
5 系统管理命令
5.1 ps进程
ps -aux
ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:
选项 含义
-a 显示终端上的所有进程,包括其他用户的进程
-u 显示进程的详细状态
-x 显示没有控制终端的进程
-w 显示加宽,以便显示更多的信息
-r 只显示正在运行的进程
[root@pipi opt]# ps -au
[root@pipi opt]# ps -aux
[root@pipi opt]# ps -au|grep vi
5.2 top
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序
按键 含义
M 根据内存使用量来排序
P 根据CPU占有率来排序
T 根据进程运行时间的长短来排序
U 可以根据后面输入的用户名来筛选进程
K 可以根据后面输入的PID来杀死进程。
q 退出
h 获得帮助
5.3 终止进程:kill和killall
[root@pipi opt]# kill 9475
注意9475为进程编号
5.4 关机重启:reboot、shutdown、init 0
[root@pipi opt]# cat /etc/inittab
以上可查看init的用法 init 0 为关闭虚拟机
5.5 检测磁盘空间:df(了解)
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
选项 含义
-a 显示所有文件系统的磁盘使用情况
-m 以1024字节为单位显示
-t 显示各指定文件系统的磁盘空间使用情况
-T 显示文件系统
[root@pipi opt]# df -h
5.6 检测目录所占磁盘空间:du(了解)
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du命令的使用格式如下:
du [选项] 目录或文件名
选项 含义
-a 递归显示指定目录中各文件和子目录中文件占用的数据块
-s 显示指定文件或目录占用的数据块
-b 以字节为单位显示磁盘占用情况
-l 计算所有文件大小,对硬链接文件计算多次
[root@pipi opt]# du
[root@pipi opt]# du -h
其他(常用重要)
查看或配置网卡信息:ifconfig
测试远程主机连通性:ping
查看网络情况:netstat -ntpl
tar 解压或者压缩
开启和关闭网络示例如下:
[root@pipi opt]# ifconfig eth0 up
[root@pipi opt]# ifconfig eth0 down
网络重启的另外一种方式为:
[root@pipi opt]# service network
[root@pipi opt]# service network start
[root@pipi opt]# service network stop
测试网络是否连接
[root@pipi opt]# ping www.baidu.com
查看网络协议
[root@pipi opt]# netstat -ntpl
压缩opt文件下的子文件 a,b,zz.txt
[root@pipi opt]# tar -cf temp.tar a b zz.txt (压缩文件)
[root@pipi opt]# ls -l
[root@pipi opt]# mv temp.tar /home
[root@pipi opt]# cd /home
[root@pipi home]# ls
[root@pipi home]# tar -xf temp.tar (解压文件)
[root@pipi home]# ll
拯救bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
首先要赋予可执行权限
chmod u+x 文件名
直接执行
./文件名
配置相应的环境变量
将安装文件放到linux下,在这我们以/home
为目录
给文件的可执行权限 chmod u+x 软件名
执行安装 ./软件名
将文件移动到/opt
文件夹下
mv 安装好的文件夹名 /opt
配置环境变量,修改PATH
vi ~/.bashrc
#在.bashrc下输入
PATH=$PATH:软件的目录/bin
注意 软件名是 文件的全名
示例如下:
1,利用xshell把bin文件传输到/home目录下
[root@pipi ~]# cd /home
[root@pipi home]# ls -l
2,查询一下之前是否安装过
[root@pipi home]# java
-bash: java: command not found
3,执行以.bin结尾的文件 给文件可执行权限
[root@pipi home]# chmod u+x jdk-6u45-linux-x64.bin
[root@pipi home]# ll
4,执行安装文件
[root@pipi home]# ./jdk-6u45-linux-x64.bin
5,查看一下安装的目录
[root@pipi home]# ls jdk1.6.0_45/
6,查看bin目录下的命令
[root@pipi home]# ls jdk1.6.0_45/bin
7,移动文件至/opt目录下 并查看
[root@pipi home]# mv jdk1.6.0_45/ /opt/
[root@pipi home]# cd /opt
[root@pipi opt]# ls
[root@pipi opt]# ls jdk1.6.0_45/
8,让shell识别安装好的命令,把命令路径配置到个人用户环境变量里面
[root@pipi opt]# cd ~
[root@pipi ~]# ls -la
其中.bashrc为配置个人用户环境变量的地方
[root@pipi ~]# vim .bashrc
PATH=$PATH:/opt/jdk1.6.0_45/bin
输入完成之后,先按ESC在输入:wq 退出
扩展:全局环境变量如下
[root@pipi opt]# cat /etc/profile
9,此时命令依然不能用
[root@pipi ~]# java
-bash: java: command not found
[root@pipi ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
10,虽然已经添加了环境变量,但是其还未生效,需要刷新
[root@pipi ~]# . .bashrc
[root@pipi ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/jdK1.6.0_45/bin:/opt/jdk1.6.0_45/bin
11,刷新之后,可验证一下命令是否可用
[root@pipi bin]# java -version
12,删除上面安装成功的软件
[root@pipi bin]# cd /opt
[root@pipi opt]# rm -rf jdk1.6.0_45/
[root@pipi opt]# ls
13,删除软件之后,需要再删除一下配置的环境变量
[root@pipi opt]# ls -la ~
[root@pipi opt]# vim ~/.bashrc
[root@pipi opt]# . ~/.bashrc
[root@pipi opt]# java
-bash: java: command not found
rpm 包,已经编译之后的应用程序
检查是否已经安装
rpm -qa | grep 文件名
下载软件包
安装
依赖
rpm -i /PATH/TO/PACKAGE_FILE
-h: 以#显示进度;每个#表示2%;
-v: 显示详细过程
-vv: 更详细的过程
rpm -ivh /PATH/TO/PACKAGE_FILE
--nodeps: 忽略依赖关系;
--replacepkgs: 重新安装,替换原有安装;
--force: 强行安装,可以实现重装或降级;
检查是否已经安装
rpm -qa | grep 文件名
如果有
rpm -e 文件名
如果没有
直接去usr下删除文件
删除环境变量
将安装文件放到linux下,在这我们以/home
为目录
执行安装命令
rpm -ivh 软件名
配置环境变量,修改PATH
vi ~/.bashrc
#在.bashrc下输入
PATH=$PATH:软件的目录/bin
安装过程中不需要你去指定安装路径。rpm文件在制作的时候已经确定了安装路径。
rpm -q PACKAGE_NAME: 查询指定的包是否已经安装
rpm -qa : 查询已经安装的所有包
rpm -qi PACKAGE_NAME: 查询指定包的说明信息;
rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;
rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;
rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;
rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本
rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;
如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;
如果装有老版本的,则升级;否则,则安装
如果装有老版本的,则升级;否则,退出
1,查询是否已安装jdk
[root@pipi opt]# rpm -qa |grep jdk
2,执行安装命令
[root@pipi opt]# cd /home
[root@pipi home]# ls -l
[root@pipi home]# rpm -ivh jdk-7u67-linux-x64.rpm
[root@pipi home]# cd /usr/java/jdk1.7.0_67/
[root@pipi jdk1.7.0_67]# ls
[root@pipi jdk1.7.0_67]# ls bin/
3,查询命令路径
[root@pipi jdk1.7.0_67]# cd bin
[root@pipi bin]# pwd
/usr/java/jdk1.7.0_67/bin
4,把路径配置到环境变量里面
[root@pipi bin]# ls -la ~/
[root@pipi bin]# vim ~/.bashrc
[root@pipi bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/jdK1.6.0_45/bin:/opt/jdk1.6.0_45/bin
5,刷新文件 并验证命令
[root@pipi bin]# . ~/.bashrc
[root@pipi bin]# java -version
6,卸载安装的软件
[root@pipi bin]# rpm -qa|grep jdk
jdk-1.7.0_67-fcs.x86_64
[root@pipi bin]# rpm -e jdk
[root@pipi bin]# rpm -qa|grep jdk
删除之后,通过查询可看到,文件已被删除
本地yum源配置: 管理rpm软件包
使用yum的前提:
要让本机可以联网,如果联不网可以修改文件/etc/resolv.conf
增加 nameserver 192.168.1.1
确定yum 源里是否有要安装的包
yum search 包名
安装软件
yum install 软件名
为啥输入软件名能直接下载呢?因为底层有相应的配置文件 查询配置文件如下:
[root@pipi bin]# cd /etc/yum.repos.d/
[root@pipi yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo
[root@pipi yum.repos.d]# vim CentOS-Base.repo
yum remove 包名
list: 列表
available:可用的,仓库中有但尚未安装的
installed: 已经安装的
updates: 可用的升级
例如:yum list installed
yum [options] [command] [package ...]
-y: 自动回答为yes
--nogpgcheck
yum clean
clean: 清理缓存
[ packages | headers | metadata | dbcache | all ]
yum makecache
repolist: 显示repo列表及其简要信息
all
enabled: 默认
disabled
例如展示仓库的标识,仓库的名称,从哪些仓库里面可以下载软件
[root@pipi yum.repos.d]# yum repolist
update: 升级
update_to: 升级为指定版本
info:
search:
provides| whatprovides:
查看指定的文件或特性是由哪个包安装生成的;
/etc/yum.repos.d
[local base]
name=localbase
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@pipi yum.repos.d]# cd /etc
[root@pipi etc]# ls yum.repos.d.backup/
[root@pipi etc]# vim yum.repos.d.backup/CentOS-Base.repo
1,访问光盘
1,先对文件yum.repos.d进行备份
[root@pipi yum.repos.d]# cd /etc
[root@pipi etc]# mv yum.repos.d yum.repos.d.backup
[root@pipi etc]# ls yum.repos.d.backup/
2,复制文件yum.repos.d
[root@pipi etc]# cp -r yum.repos.d.backup yum.repos.d
[root@pipi etc]# ls
[root@pipi etc]# cd yum.repos.d
[root@pipi yum.repos.d]# rm -rf *
3,把下载好的repo文件,放入复制的/etc/yum.repos.d/文件里面 (使用Xftp进行移动) 并显示文件
[root@pipi yum.repos.d]# ls
4,再运行一下命令生成缓存
[root@pipi yum.repos.d]# yum clean all
[root@pipi yum.repos.d]# yum makecache
reposync -r 下载哪一个库[base] -p 下载到哪
reposync -r base -p /var/repo
注意
如果上面的命令不能识别命令:
yum install createrepo yum-utils -y
下载
查看源码
准备编译环境
检查(依赖,兼容),预编译
编译
安装
gcc: GNU C Complier, C
g++:
手动编译安装python3 示例如下:
1,用yum进行查找
[root@pipi etc]# yum search python3
2,yum源里面没有python3软件 官网下载Gzipped source tarball,再利用xshell进行传输
[root@pipi ~]# cd /home
[root@pipi home]# ls
f1 jdk-6u45-linux-x64.bin jdk-7u67-linux-x64.rpm Python-3.6.4.tgz
3,下载gcc编译器
[root@localhost home]# yum install gcc -y
4,对Python-3.6.4.tgz压缩包进行解压
[root@localhost home]# tar -xf Python-3.6.4.tgz
5,查看解压的文件
[root@localhost home]# ls
Python-3.6.4 Python-3.6.4.tgz
[root@localhost home]# cd Python-3.6.4
[root@localhost Python-3.6.4]# ls
6,可看到configure为可执行文件 执行文件 并指定安装目录
[root@localhost Python-3.6.4]# ./configure --prefix=/usr/python --enable-optimizations
7,在当前目录下执行
[root@localhost Python-3.6.4]# make install
注意:在执行上面步骤的过程中会报错如下:
zipimport.ZipImportError: can't decompress data; zlib not available
需要在上面的第3部安装gcc之后,再安装依赖包 zlib,openssl,python的pip需要依赖这两个包
[root@localhost Python-3.6.4]# yum install zlib* openssl*
安装完成之后,再重新make install
7,查看已经安装好的python
[root@localhost ~]# cd /usr/python
[root@localhost python]# ls
bin include lib share
[root@localhost python]# cd bin
[root@localhost bin]# ls
8,配置环境变量 先查看bin的目录地址
[root@localhost bin]# pwd
/usr/python/bin
[root@localhost bin]# vi ~/.bashrc
PATH=$PATH:/usr/python/bin
9,刷新并验证命令
[root@localhost bin]# . ~/.bashrc
[root@localhost bin]# python3
**
**
1、网络检查
检查vmware服务是否启动成功
检查vmware网络编辑器的NAT模式的默认网关和子网掩码
检查linux操作系统的网络设置是否为NAT模式
2、设置网络
修改网络地址:
1、设置网卡为nat模式
2、确保windows下的服务是否启动(dhcp,net服务)
3、编辑文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
4、ONBOOT=yes
5、设置IP
static:
IPADDR=
NETMASK=
GATEWAY=
6、重启网络:service network restart
7、检查:ping 网关(两个)
8、ping www.baidu.com
9、设置dns服务
vi /etc/resolv.conf
nameserver 114.114.114.114
3、修改主机名
/etc/sysconfig/network文件
CentOS 7 最小化安装是没有ifconfig 怎么办?
1,先确认系统是否能联网
[root@localhost ~]# ping www.baidu.com
2,不能联网的话
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
进入到文件里面之后修改ONBOOT=yes
3,之后重启网络服务
[root@localhost ~]# service network restart
4,输入以下命令提示没有ifconfig安装包
[root@localhost ~]# yum install ifconfig
5,安装net-tools.x86_64包
[root@localhost ~]# yum install net-tools.x86_64 -y
6,输入ifconfig 查看效果
[root@localhost ~]# ifconfig
CentOS 7 设置静态IP地址
1,编辑ifcfg-ens33文件
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
2,修改BOOTPROTO 注dhcp指的是动态获取ip
BOOTPROTO=static
ONBOOT=yes
3,增加以下内容
IPADDR=192.168.239.3 注意:网段239是从虚拟网络编辑器里面查看到的,后面的值范围需为3-254
NETMASK=255.255.255.0 注意:此为子网掩码
GATEWAY=192.168.239.2 注意:此为网关IP
DNS1=114.114.114.114
4,保存并退出vi编辑器
5,之后重启网络服务
[root@localhost ~]# service network restart
命令如下:
[c:\~]$ ssh [email protected] # 注意注意此为centos的IP地址
连接上之后,就可输入命令操作系统了