Linux
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
- cat[more] /proc/version
- 查看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
- 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
- lsb_release -a,即可列出所有版本信息
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/]
- scp -r ./***.war localadmin@IP:~
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的使用情况了。
- 安装命令如下: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执行。
- chmod 变更文件或目录的权限。
- Linux三种文件类型
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实践
未完待续。。。