Linux常用的命令及常用操作

**

1.Linux的基本原则:

**
一切皆文件;
配置文件保存为纯文本格式;
**

2.交互的方式(接口)

**
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.常用命令

**
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)显示

Linux常用的命令及常用操作_第1张图片

3.4 type
显示指定属于哪种类型

3.4.1 命令类型

内置命令(shell内置),内部,内建

help COMMAND 比如:help cd

外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件

COMMAND --help 比如:date --help

**

4. 文件系统:

**

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: 存放一些系统检查结果,发现不合法的文件或数据都存放在这里;丢失的文件(比如异常断电)

**

5,路径

**

路径:从起点到达一个终点,中间所经过的节点列表

绝对路径:以跟目录为起点到目标的路径。
相对路径:以当前目录为起点到目标的路径

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 完整的年份

**

6,命令小结

**
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

**

7,man的用法

**
安装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: 退出

**

8,sed:行编辑器

**

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

**

9,管理命令(用户管理,组管理,权限管理)

**
用户管理:
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

10,软件安装和管理

软件包

  1. bin文件.bin (适合所有Linux发行版) ,bin是可以执行文件。
  2. rpm包 ,yum(redhat系列)(此方式用的最多 )
  3. 源码压缩包 (适合所有的Linux发行版)
  4. 官方已经编译好的,下载软件包直接可以使用(绿色软件)

1. bin的安装与卸载

1.1 安装

  1. 首先要赋予可执行权限

     chmod u+x 文件名
    
  2. 直接执行

     ./文件名
    
  3. 配置相应的环境变量

1.2 卸载

  1. 删除安装的文件夹
  2. 删除环境变量

1.3 bin安装步骤

  1. 将安装文件放到linux下,在这我们以/home为目录

  2. 给文件的可执行权限 chmod u+x 软件名

  3. 执行安装 ./软件名

  4. 将文件移动到/opt文件夹下

     mv   安装好的文件夹名   /opt
    
  5. 配置环境变量,修改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

2. rpm的安装与卸载

rpm 包,已经编译之后的应用程序

2.1 安装

  1. 检查是否已经安装

       rpm -qa | grep 文件名
    
  2. 下载软件包

  3. 安装
    依赖

     rpm -i /PATH/TO/PACKAGE_FILE
     	-h: 以#显示进度;每个#表示2%; 
     	-v: 显示详细过程
     	-vv: 更详细的过程
     	
     rpm -ivh /PATH/TO/PACKAGE_FILE
     
     	--nodeps: 忽略依赖关系;
     	--replacepkgs: 重新安装,替换原有安装;
     	--force: 强行安装,可以实现重装或降级;
    

2.2 卸载

  1. 检查是否已经安装

       rpm -qa | grep 文件名
    
  2. 如果有

     rpm -e 文件名
    

    如果没有
    直接去usr下删除文件

  3. 删除环境变量

2.rpm安装步骤

  1. 将安装文件放到linux下,在这我们以/home为目录

  2. 执行安装命令
    rpm -ivh 软件名

  3. 配置环境变量,修改PATH

     vi ~/.bashrc
     #在.bashrc下输入
     PATH=$PATH:软件的目录/bin
    

2.3 注意

安装过程中不需要你去指定安装路径。rpm文件在制作的时候已经确定了安装路径。

2.4 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包尚未安装,我们需查询其说明信息、安装以后会生成的文件;

  • rpm -qpi /PATH/TO/PACKAGE_FILE
  • rpm -qpl

2.5 rpm 升级

如果装有老版本的,则升级;否则,则安装

  • rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE

如果装有老版本的,则升级;否则,退出

  • rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:
    • –oldpackage: 降级

2.6 rpm 安装特点

  1. 无法指定安装目录。
  2. 存在依赖关系。(jar之间的依赖)
  3. 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
删除之后,通过查询可看到,文件已被删除

3 yum安装

本地yum源配置: 管理rpm软件包

  1. 解决rpm下载问题
  2. 解决rpm文件的查询
  3. 解决rpm安装问题
  4. 解决了rpm的依赖

使用yum的前提:

要让本机可以联网,如果联不网可以修改文件/etc/resolv.conf

增加 nameserver 192.168.1.1

3.1 安装

  1. 确定yum 源里是否有要安装的包

     yum search 包名
    
  2. 安装软件

     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
    

3.2 卸载

yum remove 包名

3.3 其他命令

3.3.1 list

list: 列表 
    available:可用的,仓库中有但尚未安装的
    installed: 已经安装的
    updates: 可用的升级
    例如:yum list installed

3.3.2 执行命令时参数

yum [options] [command] [package ...]

-y: 自动回答为yes
--nogpgcheck

3.3.4 清理缓存

yum clean 

clean: 清理缓存
[ packages | headers | metadata | dbcache | all ]

3.3.5 makecache 构建缓存

yum makecache

其它

  • repolist: 显示repo列表及其简要信息

      all
      enabled: 默认
      disabled
      例如展示仓库的标识,仓库的名称,从哪些仓库里面可以下载软件
      [root@pipi yum.repos.d]# yum repolist
    
  • update: 升级

  • update_to: 升级为指定版本

  • info:

  • search:

  • provides| whatprovides:

查看指定的文件或特性是由哪个包安装生成的;

  • groupinfo
  • grouplist
  • groupinstall
  • groupremove
  • groupupdate

3.4 yum源的配置(重要)

3.4.1 位置

/etc/yum.repos.d

3.4.2 文件含义

	[local base]
     name=localbase
     baseurl=file:///mnt/
     enabled=1
     gpgcheck=0
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  • name 库名称
  • baseurl 包所放的位置
    • 网络地址:http://
    • 本地地址:file://
  • enabled 是否开启
    • 1 开启
    • 0 关闭
  • gpgcheck 是否检查
    • 1 是
    • 0 否
  • gpgkey 检查的位置

3.4.3 获取源的方法

  1. 光盘(本地配置)
    1. 插入光盘(rpm文件)
    2. 挂载光驱到/mnt/目录中 mount /dev/cdrom /mnt
    3. 修改yum的配置文件,只留下一个配置文件即可
[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. 网络配置
    1. 网易 http://mirrors.163.com/
    2. 阿里云 http://mirrors.aliyun.com/
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
在yum上下载到本地
  1. 配置好yum源(配置要在哪下的位置)
  2. 下载
  3.  reposync -r 下载哪一个库[base] -p 下载到哪
     reposync -r base -p /var/repo
    

注意
如果上面的命令不能识别命令:
yum install createrepo yum-utils -y

4 手动编译安装

4.1 源码安装步骤:

  1. 下载

  2. 查看源码

  3. 准备编译环境

  4. 检查(依赖,兼容),预编译

  5. 编译

  6. 安装

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

**

11,linux网络设置

**
1、网络检查
检查vmware服务是否启动成功
Linux常用的命令及常用操作_第2张图片
检查vmware网络编辑器的NAT模式的默认网关和子网掩码
Linux常用的命令及常用操作_第3张图片
检查linux操作系统的网络设置是否为NAT模式
Linux常用的命令及常用操作_第4张图片
Linux常用的命令及常用操作_第5张图片
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文件

4、重启启动linux: init 6
Linux常用的命令及常用操作_第6张图片
Linux常用的命令及常用操作_第7张图片

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

Xshell连接Linux操作系统

命令如下:
[c:\~]$ ssh [email protected]  # 注意注意此为centos的IP地址
连接上之后,就可输入命令操作系统了

你可能感兴趣的:(Linux)