您的位置:首页 > 运维架构 > Linux

Linux

2016-04-15 17:27 573 查看

1、认识Linux

 1.1、大纲

了解Linux系统

安装Linux虚拟机

学习Linux的常用命令***

多用户以及权限学习***

Linux实战

Linux基础精华

 1.2、学习Linux之前先认识Unix

Unix是一个强大的多用户、多任务操作系统。

于1969年在AT&T的贝尔实验室开发。

UNIX的商标权由国际开放标准组织(The Open Group)所拥有。

UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。

 1.3、认识Linux

  


  Linux是基于Unix的,并不是在Unix的基础上开发而是参考它的思想开发的!

 1.4、Linux历史

  Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统,所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统.

 1.5、Linux的应用领域

服务器系统(目前应用最多的)

Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等;

嵌入式系统

路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等,

高性能运算、计算密集型应用

Linux有强大的运算能力。

桌面应用系统

移动手持系统(安卓就是安装在linux系统上的)

 1.6、Linux的版本说明

Linux的版本分为两种:内核版本和发行版本;

内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号;

发行版本是一些组织和公司根据自己发行版的不同而自定的;

 1.7、Linux主流产品(都是发行版的)

  


  

:全球最大的Linux发行版的发行商,用的人最多的(很多大公司用的),收费。

  

:看作是小红帽的免费版。

  

:全球市场市场占有率最高的操作系统。在中国市场占有率并不高。

2、安装Linux

 2.1、安装Linux虚拟机

什么是虚拟机?

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整通过软件计算机系统。

VirtualBox

VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在Sun 被Oracle 收购后正式更名成Oracle VM VirtualBox。

Centos

CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。

 2.2、网络设置

首先ping一下,看是否能上网



未通过,,window中通过ipconfig,而linux中用ifconfig(补充:Tab键可联想填补)查看网卡



激活网卡,设置Ip参考《设置固定IP.doc》

 2.3、设置快捷键

  管理—>全局设定:

  


 2.4、文件系统

  wintdows:
  


Windows磁盘分区格式:FAT16,FAT32,NTFS,exFAT

Linux磁盘分区格式:与其它操作系统完全不同,共有两种。一种是Linux Native主分区,一种是Linux Swap交换分区。常见磁盘文件系统格式为:Ext2,ext3和ext4

 2.5、Linux的组成

  


COMPUTER RESOURCES系统资源

内核(KERNEL)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。

Shell是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。

文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等

应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等

 2.6、Linux的目录结构

  


Linux的目录结构是一个树形结构,“/”是Linux的根目录。(它没有c盘,只有一个“/”根目录)

Bin:操作命令文件

Etc:放配置文件

Home:linux本身是一个多用户系统,所有用户的根目录都是在home目录下

Root:特殊目录,只有超级管理员root用户有这个操作权限,其他用户没有操作权限

User:一般用户安装软件都装在此目录

Var:保存系统运行时的日志、临时文件

 2.7、远程登录Linux

使用CRT软件:











连上后,黑框直接exit即可!



使用CRT注意修改外观及编码





3、常用命令

 3.1、关机、重启

关机

shutdown -h now (立刻关机)

shutdown -h 5 (5分钟后关机)

poweroff (立刻关机)

重启

shutdown -r now (立刻重启)

shutdown -r 5 (5分钟重启)

reboot (立刻重启)

shutdown –help帮助

实际中,是不操作关机重启的,一般这些命令会被禁掉!

 3.2、远程登录

使用CRT等客户端软件登录;

使用ssh登录(登录到另一个系统);

ssh -l 用户名 -p 端口目标机器IP

退出

exit (退出当前登录)

 3.3、帮助命令

Linux的命令非常之多,不可能都记得住使用方法;

使用帮助命令--help

shutdown--help

ssh –help (无效,解决: yum -y install openssh-clients)

ifconfig --help (查看网卡信息)

使用man命令(命令说明书)

man shutdown (无效,解决:yum install man)

 3.4、Linux下查看系统版本信息

查看Linux内核版本命令(两种方法)

cat[more] /proc/version

[root@localhost ~]# cat /proc/version
Linux version 2.6.18-194.8.1.el5.centos.plus (mockbuild@builder17.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Wed Jul 7 11:50:45 EDT 2010


uname -a

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-194.8.1.el5.centos.plus #1 SMP Wed Jul 7 11:50:45 EDT 2010 i686 i686 i386 GNU/Linux


查看Linux系统版本的命令(3种方法)

lsb_release -a,即可列出所有版本信息

[root@localhost ~]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.5 (Final)
Release: 5.5
Codename: Final


这个命令适用于所有的Linux发行版,包括Redhat、SuSE、Debian…等发行版。

cat[more] /etc/redhat-release,这种方法只适合Redhat系的Linux

[root@localhost ~]# cat /etc/redhat-release
CentOS release 5.5 (Final)


cat[more] /etc/issue,此命令也适用于所有的Linux发行版

[root@localhost ~]# cat /etc/issue
CentOS release 5.5 (Final)
Kernel \r on an \m


 3.5、cd命令

cd app ➔切换到app目录

cd.. ➔切换到上一层目录

cd / ➔切换到系统根目录

cd ➔切换到用户主目录(home)

cd - ➔切换到上一个所在目录

 3.6、列出文件列表:ll,ls,dir

  


在linux系统中隐藏文件是以"." 开头的文件;

使用ll -a 查看所有文件,包括隐藏文件;

ll显示更全,ls和dir效果相同[ls命令用法详解]

ll –h 友好显示文件大小,如kb、mb

 3.7、mkdir和rmdir

mkdir(make directory)命令可用来创建子目录。

mkdir app ➔在当前目录下创建app目录

mkdir –p app2/test ➔级联创建aap2以及test目录

rmdir(remove directory)命令可用来删除“空”的子目录:

rmdir app ➔删除app目录

补充:将光标切换行最前(Ctrl+a)、最后(Ctrl+e)

 3.8、浏览文件cat,more,less

cat

用于显示文件的内容(小文件)。

格式:cat[参数]<文件名>

more

一般用于要显示的内容会超过一个画面长度的情况。

按空格键显示下一个画面。

按q 键退出查看。

less

用法和more类似,不同的是less可以通过PgUp、PgOn和空格键来控制。

注意: cat一般用于小文件,more查看大文件内容;

 3.9、tail

tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。

用法

tail -10 /etc/passwd ➔查看后10行数据

tail -f catalina.log ➔动态查看日志

ctrl + c 结束查看

 3.10、sed查看某时间段日志

  sed -n '/2016-07-11 13:41:00/,/2016-07-11 13:42:00/p' xxx.log

 3.11、文件删除-rm

rm 删除文件

用法:rm [选项]... 文件...

rm a.txt ➔删除a.txt文件

删除需要用户确认,y/n

rm 删除不询问

rm -f a.txt ➔不询问,直接删除

rm 删除目录

rm -r a ➔级联、递归删除

不询问递归删除(慎重)

rm -rf a ➔不询问递归删除(慎重)

rm -rf * ➔删除所有文件

rm -rf /* ➔自杀

 2.12、文件拷贝-cp、移动-mv、传输-scp

cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。

cp a.txt b.txt ➔将a.txt复制为b.txt文件

cp a.txt ../ ➔将a.txt文件复制到上一层目录中

mv 移动或者重命名

mv a.txt ../ ➔将a.txt文件移动到上一层目录中

mv a.txt b.txt ➔将a.txt文件重命名为b.txt

scp传输文件到服务器

scp -r ./***.war localadmin@IP:~
[文件传输目的地:/home/localadmin/]

 3.13、压缩/解压-zip,tar,tar.gz,tar.bz2

ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。

压缩

zip -r xxx.zip ./*

解压

unzip xxx.zip

TAR,TAR.GZ

tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gizp压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件,即tar.gz。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。

常用参数:

-c:创建一个新tar文件

-v:显示运行过程的信息

-f:指定文件名

-z:调用gzip压缩命令进行压缩

-t:查看压缩文件的内容

-x:解开tar文件

总结:

tar -cvf xxx.tar ./*➔打包当前目录的所有文件以及目录,不压缩

tar -czvf xxx.tar ./* ➔打包当前目录的所有文件以及目录,压缩

tar -xvf xxx.tar.gz ➔解压

tar -xvf xxx.tar.gz -C /tmp/xxx/➔解压并指定解包路径

TAR.BZ2
tar.bz2这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。

压缩

tar -jcvf xxx.tar.bz2 ./*

解压

tar -jxvf xxx.tar.bz2 -C /tmp/xxx/

 3.14、pwd,wget,touch等常用命令

pwd 显示当前所在目录

touch 创建一个空文件

touch a.txt

wget 下载资源 (无效,解决:yum -y install wget)

 3.15、文件编辑器-vi

在Linux下一般使用vi编辑器来编辑文件。

vi既可以查看文件也可以编辑文件。

三种模式:命令行、插入、底行模式。

切换到命令行模式:按Esc键;

切换到插入模式:按i 、o、a键;

切换到底行模式:按:(冒号);

更多详细用法,查询文档《Vim命令合集.docx》《vi使用方法详细介绍.docx》

保存并且退出::wq

退出不保存::q!

直接退出(未改动情况下)::q

快捷键:

大写的G跳到最后一行

双d(快速):删除当前行[适用于切换插入模式前]

搜索:在命令行模式下输入":/搜索内容"回车,按"n"查找下一个。

 3.16、重定向输出-‘>’和‘>>’

>重定向输出;

>>重定向输出,又追加功能;

示例:

cat /etc/passwd > a.txt 将输出定向到a.txt中

cat /etc/passwd >> a.txt 输出并且追加

 3.17、管道-‘|’ 

管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。

示例

ls --help | more 分页查询帮助信息

ps –ef | grep java 用标准的格式来显示名称中包含java的进程

显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD

ps aux | grep java 用BSD的格式来显示名称中包含java的进程

显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND

grep -rn "2015-10-12 20:20" catalina.out 输出catalina.out文件中某个时间点的日志记录


 3.18、执行控制命令-‘&&’

命令之间使用&&连接,实现逻辑与的功能。

只有在&&左边的命令返回真(命令返回值$? == 0),&&右边的命令才会被执行。

只要有一个命令返回假(命令返回值$? == 1),后面的命令就不会被执行。

启动tomcat后立刻查看日志:

./xxx.sh start && tail –f ../log/xxx.log

 3.19、网络通讯命令-‘ifconfig’、‘ping’、‘netstat’

ifconfig 显示或设置网络设备。

ifconfig 显示网络设备

ifconfig eth0 up 启用eth0网卡

ifconfig eth0 down 停用eth0网卡

ping 探测网络是否通畅。

ping 192.168.0.1

netstat 查看网络端口。

netstat -an | grep 3306 查询3306端口占用情况

 3.20、网络常见问题

mac地址不一致问题:

修改成一致的mac地址;

删除文件:rm -rf /etc/udev/rules.d/70-persistent-net.rules(网卡于max地址一一对应配置,这里删除,重启以重新生成)

重启虚拟机

没有设置开机启动

chkconfig --level 2345 network on

 3.21、系统管理命令一-‘date’、‘df’、‘free’、‘top’

查看物理CPU个数、核数、逻辑CPU个数

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

#查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c


date 显示或设置系统时间

date 显示当前系统时间

date -s “2014-01-01 10:10:10“ 设置系统时间

df 显示磁盘信息

df -h 查看每个根路径分区大小

df -hl 查看磁盘剩余空间

free 查看内存使用情况

free –m 以mb单位显示内存组昂头

top 显示,查看内存及cpu使用情况

查看服务器负载,一般10已经挺高的了!(当服务器运行变慢的时候,查看服务器负载,服务器负载高的话,查看下边哪个进程导致的!)

top命令重点[linux的top命令参数详解]

  


安装htop工具,这样更直观,

安装命令如下:sudo apt-get install htop,安装完后,直接输入命令:htop,就可以看到内存或cpu的使用情况了。



 3.22、系统管理命令二-‘clear’、‘ps’、‘kill’

clear 清屏幕

ps 正在运行的某个进程的状态

ps –ef 查看所有进程

ps –ef | grep ssh 查找某一进程

kill 杀掉某一进程

kill 2868 杀掉2868编号的进程

kill -9 2868 强制杀死进程

 3.23、系统管理命令三-‘du’、‘who’、‘hostname’、‘uname’

du 显示目录或文件的大小。

du –h 显示当前目录的大小

du -sh [目录名] 返回该目录的大小

du -sm [文件夹] 返回该文件夹总M数

du --help 查看更多功能

df 以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息

df -hl 查看磁盘剩余空间

df -h 查看每个根路径的分区大小

df --help 查看更多功能

查看硬盘的分区 #sudo fdisk -l

查看IDE硬盘信息 #sudo hdparm -i /dev/hda

查看STAT硬盘信息 #sudo hdparm -I /dev/sda 或 #sudo apt-get install blktool #sudo blktool /dev/sda id

who 显示目前登入系统的用户信息。

hostname 查看当前主机名

修改:vi /etc/sysconfig/network

uname 显示系统信息。

uname –a 显示本机详细信息。依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称

 3.24、用户操作命令-‘useradd’、‘passwd’、‘userdel’

useradd 添加一个用户

useradd test 添加test用户

useradd test -d /home/t1 指定用户home目录

useradd test –g public 指定用户组

passwd 设置、修改密码

passwd test 为test用户设置密码

userdel 删除一个用户

userdel test 删除test用户(不会删除home目录)

userdel –r test 删除用户以及home目录

 3.25、用户组操作命令-‘groupadd’、‘groupdel’

当在创建一个新用户user时,若没有指定他所属于的组,就建立一个和该用户同名的私有组。创建用户时也可以指定所在组 useradd test –g public

groupadd 创建组

groupadd public 创建一个名为public的组

useradd u1 –g public 创建用户指定组

groupdel 删除组,如果该组有用户成员,必须先删除用户才能删除组。

groupdel public

 3.26、id命令

功能:查看一个用户的UID和GID

用法:id [选项]... [用户名]



 3.27、su命令

功能:切换用户。

用法:su [选项]... [-] [用户[参数]... ]

示例:

su u1 切换到u1用户

su – u1 切换到u1用户,并且将环境也切换到u1用户的环境(推荐使用)

sudo -i 临时切换超级用户root(推荐使用)



 3.28、用户文件

vi /etc/passwd

  


 3.29、密码文件

vi /etc/shadow



 3.30、组文件

vi /etc/group



 3.31、权限

主权限:文件所属用户权限

组权限:同组的其他人对这个文件所拥有的权限



Linux三种文件类型

普通文件:包括文本文件、数据文件、可执行的二进制程序文件等。

目录文件:Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。

设备文件:Linux系统把每一个设备都看成是一个文件。

文件类型标识

普通文件(-)

目录(d)

符号链接(l)

字符设备文件(c)

块设备文件(s)

套接字(s)

命名管道(p)

补充:软链接——相当于window中快捷方式,修改软链接文件对应真是的文件也会被修改!

硬链接——两个文件都存在硬盘上,是同步的,改其中一个,另一个也会更改!

文件权限管理

chmod 变更文件或目录的权限。

chmod 755 a.txt

chmod u=rwx,g=rx,o=rx a.txt

chmod 000 a.txt / chmod 777 a.txt

sudo chmod -R 777 /Users/cbb/xxx/xxx  

chown 变更文件或目录的拥有者或所属群组。

chown u1:public a.txt

chown -R u1:public dir

注意:chown命令只能是root执行。

 3.32、设置或显示环境变量-‘export’

  Linux export命令用于设置或显示环境变量。

语法

export [-fnp][变量名称]=[变量设置值]


参数说明

-f  代表[变量名称]中为函数名称。

-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

-p  列出所有的shell赋予程序的环境变量。

实例

#mac 中禁止Homebrew自动更新
export HOMEBREW_NO_AUTO_UPDATE=true

#查看设置
echo HOMEBREW_NO_AUTO_UPDATE


4、Linux实践

 未完待续。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: