基础技能培训---linux
发布时间:2020-10-22 来源: 思想汇报 点击:
基础技能培训 d ---Linux 一.
文档说明 1. 文档主要功能 (1)
面向新入职员工培训 Linux 基础知识。
(2)
面向有一定实际经验的员工进行 Linux 基础知识的查漏补缺 。
(3)
作为查询一般 Linux 操作的常备文档。
2. 文档使用提示 (1)
建议新员工在实际环境中或搭建虚拟机进行学习。
(2)
文档中 Linux 的一些操作命令可能由于操作系统的不同而有所区别。
3. 文档更新 更新时间 更新内容 更新人 2014.10.29 文档创建 孙策
二.
Linux 基础知识 1. 什么是 Linux Linux 是在 1991 年由芬兰大学生 Linus Torvalds 写的一个核心操作系统,最早仅只是核心而已,后来由于此核心不但可以适合于主流 PC 的 x86 架构,并且稳定,因此有相当多的团队加入研究开发,后来某些公司将一些套件加入此核心中,变成为完整的一套操作系统,所以才会有这么多的 Linux 版本。
2. 为什么要用 Linux 相比起 Windows,Linux 采用开源代码,安全性高;拥有良好的资源分配,对服务器硬件性能要求大大低于 Windows;Linux 是真正的多用户多线程且支持世界上几乎所有的 cpu 架构;Linux 内存管理和调度方式优秀,运行稳定。
3. 不同的 Linux 版本 我们工作中常用的是 RedHat 6.4 企业版。Redhat 或称为 Redhat系列,包括 RHEL(Redhat Enterprise Linux,也就是所谓的 Redhat
Advance Server,收费版本)、Fedora Core(由原来的 Redhat 桌面版本发展而来,免费版本)、CentOS(RHEL 的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的 Linux 版本,甚至有人将 Redhat 等同于 Linux,所以这个版本的特点就是使用人群数量大,资料非常多。
而且网上的一般 Linux 教程都是以 Redhat 为例来讲解的。Redhat 系列的包管 理方式采用的是基于 RPM 包的 YUM 包管理方式,包分发方式是编译好的二进制文件。稳定性方面 RHEL 和 CentOS 的稳定性非常好,适合于服务器使用, 但是 Fedora Core 的稳定性较差,最好只用于桌面应用 。
4. Linux 的一些基础概念 (1)
版本号概念 Linux 内核版本号格式是 x.y.zz-www,数字 x 代表版本类型,数字 y 为偶数时是稳定版本,为奇数时是开发版本,如 2.0.40为稳定版本,2.3.42 为开发版本,测试版本为 3 个数字加上测试号。
(2)
跨硬件平台 Linux 采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。
(3)
文件系统 Linux 的文件系统和 Windows 中的文件系统有很大的区别。
Linux 文件系统是棵文件树,所有文件和外部设备都挂在这棵树上,根目录是所有访问的入口。Window 以驱动器的盘符为基础,盘符是访问的入口。
分区和目录的关系:
Linux 中分区属于目录,window 中目录属于分区。Linux 中,把每个分区和某个目录对应(挂装),
对某一目录操作,就是对相应分区操作,实现了硬件管理手段和软件目录管理手段的统一。
(4)
目录和文件 Linux 中,目录也是文件。目录(文件)的内容:
存储关联的文件和子目录名及相应的指针, 这里也是存储文件名的唯一地方。对目录的操作,一般不涉及对其文件的内容进行操作,一般是对目录名和其文件间的对应关系进行操作。
(5)
桌面系统 只是一个应用软件,不是 linux 中的自身部分,相当耗系统资源并降低系统性能。
(6)
绝对路径和相对路径 在 Linux 中,绝对路径是从/(也被称为根目录)开始的,比如/usr、/etc/X11。如果一个路径是从/开始的,它一定是绝对路径。相对路径:相对路径是以. 或.. 开始的. 表示用户当前操作所处的位置,而.. 表示上级目录;在路径中,. 表示用户当前所处的目录,而..上级目录,要把.和..当做目录来看。
5. 常用 Linux 工具 (1)
Putty:常用于连接无桌面环境的 linux 系统。
(2)
SshClient:常用于在 Linux 和 Windows 间传输文件。
(3)
VNC:常用于连接有桌面环境的 linux 系统。
注:Linux 可启动多个 VNC 服务,在 VNC 客户端上输入 IP+冒号+VNC 服务连接编号可访问不同的 VNC 连接,进入后面对的也将是不 同的桌面。
三.
Linux 的安装(Redhat 6.4 )
1. 插入安装光盘,系统会进入引导界面,引导安装 RHEL 操作系统。
2. 选择 SKIP,跳过检测
3. 从引导界面选择简体中文
4. 检测之前安装:这一部分,通常会选择全新安装而非升级。
5. 磁盘分区:这一部分需非常注意,尤其是 SWAP 分区的大小,可参照以下表格修改。这里选择默认选项,系统自动非配磁盘空间。
可用 RAM Swap Space 1GB- - 2GB 1.5*RAM 2GB- - 4GB 1*RAM >8GB 0.75*RAM
6.
网络配置:如果安装数据库的主机被用作数据库服务器,网络配置阶段请勿使用 DHCP,需要分配一个静态 IP。选中 Enable IPv4 support 选项,取消 Use dynamic IP configuration (DHCP)选项和 Enable IPv6 support 选项。
7. Package 安装部分,选择 Customize now,额外勾选中以下 Package Groups:
基本系统?主框架访问、兼容程序库、安全性工具; 服务器?ftp 服务器、系统管理工具;系统管理?SNMP 管理、系统管理;桌面全选;应用程序全选;开发全选
8. 全部配置好后,安装系统,然后会要求重启机器。
9. 重启完成后,对以下部分进行配置:
10 .添加一个 oracle 用户,用户组为 root。(方便以后安装数据库)
(双击 oracle 用户)
(去掉默认的 oracle 用户组,勾选 root 组)
以下的步骤默认即可配置完成。
四.
Linux 基本操作(Redhat 6.4 )
注:绿色为范例内容,可替换 操作 命令举例 备注 补全命令 按 tab 键
切换目录 cd /opt 范例:切换到/opt 目录下。
列出文件列表 ls 范例:显示当前文件目录和子目录列表 创建目录 mkdir bohui 范例:在所在目录下创建bohui 子目录。
删除文件 rm –rf bohui 强制删除,不会确认 范例:删除所在目录下的bohui 目录或文件。
查看文件内容 cat config.xml 范例:查看所在目录下config.xml 文件的内容。
编辑文件内容 vi config.xml
退出为:冒号
按 insert 键进入编辑模式 修改文件后输入:q!不保存退出 或 范例:修改所在目录下config.xml 文件的内容。
:wq 保存退出 显示当前所在目录 pwd 显示当前所在目录。
切换用户 su - oracle 范例:切换到 oracle 用户,且一同切换环境变量。
设置权限 chmod 777 boot.sh 范例:将全部用户赋予操作boot.sh 脚本的最高权限。
执行脚本 ./start.sh 范例:执行当前目录下的start.sh 脚本。
解压缩 tar –jxvf bohui.tar.gz- 范例:解压缩 bohui.tar.gz文件到当前目录下。
网卡状态查询 ifconfig 范例:可以查询不同网卡是否连接正常(running)
系统性能分析及进程查询 Top
退出为 q
关闭进程 killall BHIP80 范例:关闭名称为 BHIP80的进程。
网卡抓包 tcpdump –i eth1 –w test.pcap 推出为 ctrl+c 范例:抓 eth1 网卡的数据包并在当前目录下生成test.pcap 文件。
重启系统 reboot 需使用 root 用户操作
五.
Linux 进阶操作手册(Redhat 6.4 )
1. 系统基础硬件配置检查 操作 命令举例 备注 查看 cpu 型号 #cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq –c 4
Intel(R) Atom(TM) CPU D525
@ 1.80GHz # dmidecode | grep CPU 该例子中有 4 个逻辑 CPU,型号为D525 查看 cpu 核心数 #cat /proc/cpuinfo | grep physical | uniq –c 4 physical id
: 0
4 physical id
: 1 该例子说明两颗 4 核的 CPU(根据 id不同可知 CPU 个数)
查看 cpu 温度 #cd /proc/acpi/thermal_zone #cat
TZ*/temp* temperature:
38 C temperature:
27 C temperature:
43 C 该例子的前提是硬件有感知温度的芯片 查看cpu总的占用率 #top
或 #top |grep “Cpu” 或 1. 直接用 top 命令不仅可以查看cpu 使用情况也可以查看内存,Swap,进程占用资源情况; 2. 也可以使用|和 grep 定位到 Cpu
#top –n 2 |grep “Cpu” Cpu(s): 13.7%us,
1.9%sy,
0.0%ni, 84.4%id,
0.1%wa,
0.0%hi,
0.0%si,
0.0%st Cpu(s):
0.4%us,
0.2%sy,
0.0%ni, 99.4%id,
0.0%wa,
0.0%hi,
0.0%si,
0.0%st 这一行; 3. 参数-n 是指定在终端显示几次的刷新结果;若不知道-n,默认是在不停刷新; 4. top 运行中,按键盘 P 或 M 排序; P – 以 CPU 占用率大小的顺序排列进程列表 M – 以内存占用率大小的顺序排列进程列表
查看指定程序的cpu 占用 #pidof httpd 31117 31116 31115 31114 #top –p 31117,31116,31115,31114 或 #top |grep java
1. 首先查看某些进程的信息 2. Top 指定查看 PID Ps 命令也可以查看指定程序 CPU 占用情况,但显示某个瞬间值,不易抓住峰值; 查看内存容量 #free –m
total
used
free shared buffers
cached Mem:
2002
659
1343
0
130
153 -/+ buffers/cache: 376 1626 Swap:
510
3
507 或 #cat /proc/meminfo 或 #top
1. 参数-m 指定显示数据单位为 M 从应用程序的角度来说 可用内存=系统 free Memory+buffers+cached. 左侧例子可用内存 1626=1343+130+153 总内存容量:2002M
============== 蓝色部分:
total 内存总数: 2002M; used 已经使用的内存数: 659M; free
空闲的内存数: 1343M shared 不同进程间用来进行数据交换,一般都是 0(多个进程共享的内存总额) buffers 是由各种进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在 buffer 中保存。: 130M cached 经常被用在磁盘的 I/O 请求上,如果有多个进程都要访问某个文件,于是该文件便被做成 cache 以方便下次被访问,这样可提供系统性能。:153M 绿色部分:
(-buffers/cache) used 内存数:376M (指的第一部分 Mem 行中的 used – buffers – cached) ( buffers/cache) free 内存数: 1626M (指的第一部分 Mem 行中的 free +buffers +cached)
查看内存条数 #dmidecode|grep –P -A5 "Memory\s+Device"|grep Size|grep -v Range
Size:2048MB
Size:2048MB
Size:NoModuleInstalled
Size:NoModuleInstalled
查看内存的插槽数,已经使用多少插槽.每条内存多大 (-A5 就是关键字下面再显示五行) 查看内存总的使用率 #free –m 或 #top 总的使用率=使用内存/总内存 使用的内存=used 查看指定程序的内存占用 #pidof httpd 31117 31116 31115 31114 #top –p 31117,31116,31115,31114 或 #top |grep java
查看硬盘容量 #fdisk –l 不同设备名称下显示磁盘容量,如:Disk /dev/had:10.7GB
查看硬盘个数 #fdisk –l 通过设备名称区分及容量区分不同的硬盘(设备名称如:/dev/hda,
IDE 硬盘为 hdx(x 为从 a—d)因为IDE 硬盘最多四个,SCSI,SATA,USB 硬盘为 sdx(x为 a—z)
)
查看硬盘空间使用率 df –h df 常用参数:
-T 打印文件系统类型。
-h 以友好格式显示数值。
-H 也是以友好方式显示数值,但 1K是以 1000 计算的,而不是 1024。
-l 只显示本地文件系统。
-a 显示全部文件系统 查看硬盘 i/o 情况 #iostat -x 1 Linux 2.6.33-fukai (fukai-laptop)
_i686_
(2 CPU) avg-cpu:
%user
%nice %system %iowait
%steal
命令格式:
iostat[参数][时间][次数] 命令参数:
-C 显示 CPU 使用情况
%idle
5.47
0.50
8.96
48.26
0.00
36.82
Device:
rrqm/s
wrqm/s
r/s
w/s
rsec/s
wsec/s avgrq-sz avgqu-sz
await
svctm
%util sda
6.00
273.00
99.00
7.00
2240.00
2240.00
42.26
1.12
10.57
7.96
84.40 sdb
0.00
4.00
0.00
350.00
0.00
2068.00
5.91
0.55
1.58
0.54
18.80
rrqm/s:
每秒进行 merge 的读操作数目.即 delta(rmerge)/s wrqm/s:
每秒进行 merge 的写操作数目.即 delta(wmerge)/s r/s:
每秒完成的读 I/O 设备次数.即 delta(rio)/s w/s:
每秒完成的写 I/O 设备次数.即 delta(wio)/s rsec/s:
每秒读扇区数.即 delta(rsect)/s wsec/s:
每秒写扇区数.即 delta(wsect)/s rkB/s:
每秒读 K 字节数.是 rsect/s 的一半,因为每扇区大小为 512 字节.(需要计算) wkB/s:
每秒写 K 字节数.是 wsect/s 的一半.(需要计算) avgrq-sz: 平均每次设备 I/O 操作的数据大小 (扇区).delta(rsect+wsect)/delta(rio+wio) avgqu-sz: 平均 I/O 队列长度.即 delta(aveq)/s/1000 (因为aveq 的单位为毫秒). await:
平均每次设备 I/O 操作的等待时间 (毫秒).即 delta(ruse+wuse)/delta(rio+wio) svctm:
平均每次设备 I/O 操作的服务时间 (毫秒).即 delta(use)/delta(rio+wio) %util:
一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的.即 delta(use)/s/1000 (因为 use 的单位为毫秒) 如果
%util 接近
100%, 说明产生的 O I/O 请求太多O ,I/O 系统已经满负荷, , 该磁盘 可能存在瓶颈. . idle 小于 70% IO 压力就较大了, , 一般读取速度有较多的 wait. 同时可以结合 vmstat 查看查看 b b 参数( ( 等待资源的进程数) )和 和 a wa 参数O (IO 等待所占用的 U CPU 时间的百分比, , 高过 30%时 时 O IO 压力高) )
-d 显示磁盘使用情况 -k 以 KB 为单位显示 -m 以 M 为单位显示 -N 显示磁盘阵列(LVM) 信息 -n 显示 NFS 使用情况 -p[磁盘] 显示磁盘和分区的情况 -t 显示终端和 CPU 的信息 -x 显示详细信息
查看硬盘历史 i/o情况 #iostat –x 2 >> /tmp/log.io
左侧例子:每隔 2 秒刷新一次,并把输出结果写入 log.io 文件中;这样可
以看到 i/o 历史情况; 查看网卡型号 #lspci | grep Ethernet lspci 是一个用来显示系统中所有PCI 总线设备或连接到该总线上的所有设备的工具。
为了能使用这个命令所有功能,你需要有 linux 2.1.82 或以上版本,支持 /proc/bus/pci 接口的核心; 查看网卡个数 #ifconfig –a 或 lspci | grep Ethernet|wc -l
查看指定网卡的驱动及版本 1. 查看网卡驱动 #lspci -vvv 或 dmesg |grep Ethernet 2.查看驱动版本:
#modinfo 驱动名称|grep version 也可以安装 Ethtool 小工具查看网卡信息; lspic 参数: -v 显示设备的详细信息。
-vv 显示设备更详细的信息。
-vvv 显示设备所有可解析的信息
dmesg 可以看到开机检测到硬件信息 查看指定网卡输入流量 #watch ifconfig eth0
或 #watch more /proc/net/dev 或 #sar –n DEV 1 4 其他一些工具也可以,如:ifstat,sar(redhat 默认安装此工具),iftraf,nload,vnstat 等; Sar:
这个工具 RHEL5 自带有,默认也安装。
-n参数很有用,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL 。DEV 显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的 NFS 客户端的信息,NFSD统计 NFS 服务器的信息,SOCK 显示套 接字信息,ALL 显示所有 5 个开关
查看指定网卡输出流量 #watch ifconfig eth0 #watch more /proc/net/dev 或 #sar –n DEV 1 4
2. 操作系统检查及操作 操作 命令举例 备注
查看系统名称 # cat /etc/issue 查看操作系统发现版本及名称 #hostname 查看主机名
修改系统名称 #hostname new-hostname(即时生效,但系统重启后失效) #echo new-hostname>/proc/sys/kernel/hostname (系统启动时,从此文件中读取主机名字)
或 #vi /etc/sysconfig/network 修改 hostname=new-hostname 下次重启生效 #vi /etc/hosts 文件作相应修改 hostname –a: 获取主机别名。
hostname –d: 获取 DNS 域名。
hostname –f: 获取 FQDN 名称。
hostname –i: 获取主机的 IP 地址。
hostname –s: 获取域名的 netbios 名称
修改系统时间 1.#date
//显示当前日期 2.#date -s
//设置当前时间,只有 root 权限才能设置,其他只能查看。
3.#date -s 20131010
//设置成 20131010,这样会把具体时间设置成空 00:00:00 4.#date -s 12:23:23
//设置具体时间,不会对日期做更改 5.#date -s “12:12:23 2006-10-10″
//这样可以设置全部时间
只有超级用户才能用 date 命令设置时间,一般用户只能用 date 命令显示时间 查看系统内核版本 #uname –r 或 #cat /proc/version #uname –a 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 -m 或–machine
显示主机的硬件(CPU)名 -n 或-nodename 显示主机在网络节点上的名称或主机名称 -r 或–release
显示 linux 操作系统内核版本号 -s 或–sysname
显示 linux 内核名称 -v 显示显示操作系统是第几 version 版本 -p 显示处理器类型或 unknown -i
显示硬件平台类型或 unknown -o 显示操作系统名 –help
获得帮助信息
–version 显示 uname 版本信息
查看系统字符编码 #echo $LANG
临时修改系统字符编码 #export LANG=en
永久修改系统字符编码 #vi /etc/sysconfig/i18n 修改文件 i18n 的 LANG 的值 #source i18n 使修改生效;
查看 dmesg 日志 如果硬件损坏的话,可以用如下命令
#dmesg |grep error
/var/log/dmesg 记录系统在开机的时候内核侦测过程所产生的各项信息;
查看 boot 日志 #cat /var/log/boot.log.具体日期 /var/log/boot.log Linux 系统开机自检过程显示的信息 查看 secure 日志 #more /var/log/secure /var/log/secure 基本上,只要牵涉到“需要输入账号密码”的程序,当登入时(不管登入正确或错误)都会被记录在此日志文件中;包括系统的 login 程序、图形界面登入所使用的 gdm、su、sudo等;还有网络连接的 ssh、telnet 等登入信息都会被记录在这; 查看 Messages #more /var/log/messages /var/log/messages 几乎系统发生的错误信息(或者是重要的资讯)都会记录在这个日志文件;如果系统发生莫名的错误时,这个档案是一定要查阅之一; Iptables 默认把日志信息输出到/var/log/messages 文件 动态的查看日志文件的更新内容 #watch -d -n 1 cat /var/log/messages 或 #tail -f /var/log/messages
1.-d 表示高亮不同的地方,-n 表示多少秒刷新一次。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可。
2. 参数-f使tail不停地去读最新的内容,这样有实时监视的效果
系统关机和重启 关机 #shutdown –h now #shutdown –h 10:00 (10 点钟关机) #shutdown –h +10(10 分钟后关机) #halt
Default runlevel. The runlevels used are: 0 - halt (Do NOT set initdefault to this) 1 - Single user mode 2 - Multiuser, without NFS (The same
#init0 重启 #shutdown –r now #reboot #init6 as 3, if you do not have networking) 3 - Full multiuser mode 4 - unused 5 - X11 6 - reboot (Do NOT set initdefault to this)
shutdown 为安全关机方式
3. 网络信息检查及操作 操作 命令举例 备注 查看系统名称 #hostname
修改系统名称 #hostname testname
查看网卡 ip 地址信息 #ifconfig –a #ifconfig
eth0
修改网卡 ip 地址信息 1.即时生效,重启网卡失效; #ifconfig eth0 172.17.13.21 netmask 255.255.255.0 #route add default gw 172.17.13.1 修改网关 1. 永久生效 #vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.17.13.21
NETMASK=255.255.255.0 GATEWAY=172.17.13.1 #service network restart
或 #/etc/init.d/network restart 重启网络服务,使 IP 生效
以 eth0 网口为例子 添加多个 ip 地址 1. 一个网卡对应 2 个 IP 地址为例:
修改 ip:
编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 //设备名称,不要修改 BOOTPROTO=static //不要修改 BROADCAST=10.10.22.255 //广播地址,一般为本网段的最后一个 IP IPADDR=10.10.22.145 //ip 地址 NETMASK=255.255.255.0 //子网掩码
NETWORK=10.10.22.0 //网段地址 ONBOOT=yes //不要修改 TYPE=Ethernet //不要修改 注意:
ifcfg-eth0 是第一张网卡,ifcfg-eth1 是第二张网卡,依次类推 增加 ip:
可以重新编译一个文件,文件名为/etc/sysconfig/network-scripts/ifcfg-eth0:0 也可以直接在/etc/sysconfig/network-scripts/ifcfg-eth0 中添加(但是设备 eth0 一定要有)
DEVICE=eth0:0 //设备名称,不要修改 BOOTPROTO=static //不要修改 BROADCAST=10.10.33.255 //广播地址,一般为本网段的最后一个 IP IPADDR=10.10.33.145 //ip 地址 NETMASK=255.255.255.0 //子网掩码 NETWORK=10.10.33.0 //网段地址 ONBOOT=yes //不要修改 TYPE=Ethernet //不要修改 依次类推,如果再增加一个 ip,则再增加如下配置:
DEVICE=eth0:1 //设备名称,不要修改 BOOTPROTO=static //不要修改 BROADCAST=10.10.44.255 //广播地址,一般为本网段的最后一个 IP IPADDR=10.10.44.145 //ip 地址 NETMASK=255.255.255.0 //子网掩码 NETWORK=10.10.44.0 //网段地址 ONBOOT=yes //不要修改 TYPE=Ethernet //不要修改 增加默认网关的方法:
注意一台机器只能有一个缺省网关,否则就应该给出具体的路由方式。
在相关的设备配置中增加一项即可,例如在上述配置中,在第一张网卡的第一个 IP 增加一个缺省网关:
GATEWAY=10.10.22.3 修改完成后,要想使上述修改生效,则需要重起机器,或者重起网络。
重新启动机器的方法是:reboot 重起网络的方法是:service network restart 以上为静态增加 ip 的方法,即机器重起后仍然有效的方法
查看本地路由信息 #route –n
添加本地路由表 1.#route add default gw 172.17.13.1 (添加默认路由) #route add –net172.17.0.0 netmask 255.255.0.0 gw 172.17.13.1 dev eth1 (添加到指定网络的路由); 2.#vi /etc/sysconfig/network-script/route-eth1 添加:
GATEWAY0=172.17.13.1 NETMASK0=255.255.0.0 ADDRESS0=172.17.0.0 #service network restart (重启网络服务) 3.或者 1 方法的命令加入到/etc/rc.local 1. 第一种方式重启network 服务后添加的路由失效; 2. 第二种方式永久静态路由; 新建静态路由配置文件 route-eth1,文件命名规则:route-devName,即对应网卡设备名的路由配置文件。然后添加路由信息 删除本地路由表 #route del default # route del -net 172.17.0.0 netmask 255.255.0.0 gw 172.17.13.1 dev eth0
查看本地端口监听情况 #netstat –l|more netstat 参数:
-a (all)显示所有选项,默认不显示 LISTEN 相关 -t (tcp)仅显示 tcp 相关选项 -u (udp)仅显示 udp 相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid 等 -s 按各个协议进行统计 -c 每隔一个固定时间,执行该 netstat 命令。
查看端口被哪个程序占用 #netstat –anpl |grep 80 以 80 端口为例; 网卡重启 #ifdown eth0 #ifup eth0 或 #ifconfig eth0 down #ifconfig eth0 up
或 #service network restart DNS 配置 #vi /etc/resolv.conf (打开此文件,添加域名 IP) nameserver 172.17.1.20 #service network restart
路由跟踪 #traceroute [選項與參數] IP #traceroute –n www.baidu.com traceroute to www.baidu.com (220.181.111.148), 30 hops max, 60 byte packets
1
* * *
2
172.17.1.2 (172.17.1.2)
5.125 ms
5.115 ms
5.102 ms
3
124.127.132.5 (124.127.132.5)
14.497 ms
14.501 ms
57.551 ms
4
* * *
5
202.97.57.225 (202.97.57.225)
14.420 ms
15.407 ms
15.400 ms
6
* * *
7
220.181.0.86 (220.181.0.86)
143.748 ms 220.181.0.230 (220.181.0.230)
7.086 ms 220.181.0.26 (220.181.0.26)
32.821 ms
由於目前 UDP/ICMP 的攻擊層出不窮,因此很多路由器可能就此取消這兩個封包的回應功能。所以我們可以使用 TCP 來偵測呦!
例如使用同樣的方法,透過等待時間 1 秒,以及 TCP 80 埠口的情況下,可以這樣做:
traceroute 可以帮助查看自己的网络环境有问题还是 Internet 有问题
選項與參數:
-n :可以不必進行主機的名稱解析,單純用 IP ,速度較快!
-U :使用 UDP 的 port 33434 來進行偵測,這是預設的偵測協定; -I :使用 ICMP 的方式來進行偵測; -T :使用 TCP 來進行偵測,一般使用 port 80 測試 -w :若對方主機在幾秒鐘內沒有回聲就宣告不治...預設是 5 秒 -p 埠號:若不想使用 UDP 與 TCP 的預設埠號來偵測,可在此改變埠號。
-i 裝置:用在比較複雜的環境,如果你的網路介面很多很複雜時,才會用到這個參數; -g 路由:與 -i 的參數相仿,只是 -g 後面接的是 gateway 的 IP 就是了
tcpdump 抓包 #tcpdump –i eth1 –c 2000 –w test.cap #tcpdump -i eth1 host 192.168.1.123 and port 80 -w /tmp/xxx.cap
tcpdump 常用参数:
-c
在收到指定的包的数目后,tcpdump 就会停止;
-F
从指定的文件中读取表达式,忽略其它的表达式;
-i
指定监听的网络接口;
-r
从指定的文件中读取包(这些包一般通过-w选项产生);
-w
直接将包写入文件中,并不分析和打印出来; -s 限制捕获报文的大小
4. 文件检查及操作 操作 命令举例 备注 新建文件夹 #mkdir test #mkdir –p /tmp/test/test1 mkdir 参数: -m: 对新建目录设置存取权限,也可以用 chmod 命令设置; -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; 新建文件 #touch test 或 #vi test
#:wq 或 #echo>>test 或 #echo >test
编辑文件 #vi 或 #vim vi 与 vim 一样都是编辑器,不同的是 vim 更高级一些,可以理解是 vi的高级版本 vim 兼容 vi 所有命令; 复制文件 #cp /opt/test.sh /tmp #cp -i /opt/test.sh /tmp cp:是否覆盖"/tmp/test.sh"? y cp 参数:
-a :相当于 -pdr 的意思; -d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身; -f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制; -i :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身; -p :连同档案的属性一起复制过去,而非使用预设属性; -r :递归持续复制,用于目录的复制行为; -s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案; -u :若 destination 比 source 旧才更新 destination 复制文件夹 #cp –rf /opt/test /tmp
移动文件 #mv /opt/test.sh /tmp mv 可移动文件或目录,或是更改文件或目录的名称。
参数:
-b 或--backup
若需覆盖文件,则覆盖前先行备份。
-f 或--force
若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。
-i 或--interactive
覆盖前先行询问用户。
-S<附加字尾>或 --suffix=<附加字尾>
与-b 参数一并使用,可指定备份文件的所要附加的字尾。
-u 或--update
在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。
-v 或--verbose
执行时显示详细的信息。
-V=<方法>或 --version-control=<方法>
与-b 参数一并使用,可指定备份的方法。
--help
显示帮助。
--version
显示版本信息。
移动文件夹 #mv -i test /tmp mv:是否覆盖"/tmp/test"? y
重命名文件 #mv /tmp/aa.log /tmp/bb.log
重命名文件夹 #mv test test1 或
#mv test /tmp/test1 删除一个文件 # rm -f /var/log/httpd/access.log(强制删除不做询问)
rm 参数,主要有下面几个:
-i 删除 删除前询问是否需要删除;
-f 强制删除,无需确认。
-r 或-R 或--recursive 将目录以及目录下的文件或者目录逐一删除。
-d 或--directory 删除目录 ((只限超级用户))
-v 或--verbose 显示指令执行过程
--help 显示在线帮助内容
--version 显示版本信息并退出
清空一个文件的内容 1.#echo “”>test(文件大小被截为 1 字节,文件内产生空行) 2.#echo > test 3.#>test(文件大小被截为 0 字节)
4.# : > test 5.cat /dev/null >test(文件大小被截为 0字节)
6.cp /dev/null test
六种方式都可; 重点 是 “>”
重定向 ,覆盖掉原来文件的内容
删除一个文件夹 # rm -rf /var/log/httpd/access
(使用这个 rm -rf 的时候一定要格外小心,linux 没有回收站的)
#rmdir test
rmdir 删除空文件夹 查看文件类型 #ls –l (查看第一个字段)
Linux 文件类型常见的有: “-”表示普通文件; “d”表示目录文件; “l”表示链接文件; “c”表示字符设备; “b”表示块设备; “p”表示管道文件,比如 FIFO 文件; “f”表示堆栈文件,比如 LIFO。
查看文件的日期 #ls –l (查看第七个字段) ls 常用参数:
-a — 全部(all)。列举目录中的全部文件,包括隐藏文件(.filename)。位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录。
-l — 长(long)。列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创建日期、文件是否是到系统其它地方的链接,以及链接
的指向。
-F — 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表明是一个可执行文件。
-r — 逆向(reverse)。从后向前地列举目录中的内容。
-R — 递归(recursive)。该选项递归地列举所有目录(在当前目录之下)的内容。
-S — 大小(size)。按文件大小排序 -h — 以容易理解方式列出文件大小(如 1k,234M,2G)
-authoer — 每个文件的作者 查看隐藏文件 #ls -a (隐藏文件格式 .filename)
用 ls -l 命令查看某一个目录会得到一个 9 个字段的列表. 第 1 行显示的信息: 总用量(total)
— 这个数值是该目录下所有文件及目录列表第 5 个字段的和(以 k 为单位),也就是该目录的大小. 第 1 字段:
文件属性字段 文件属性字段总共有 10 个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文件是一个普通文件.字母”d”表示该文件是一个目录,字母”d”,是 dirtectory(目录)的缩写. 请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息. 第 2 字段 文件硬链接数或目录子目录数 第 3 字段: 文件拥有者 第 4 字段: 文件拥有者所在的组 第 5 字段: 文件文件大小(以字节为单位) 第 6 字段: 文件创建月份
第 7 字段: 文件创建日期 第 8 字段: 文件创建时间 第 9 字段: 文件名 (如果是一个符号链接,那么会有一个 “-<” 箭头符号,后面根一个它指向的文件)
查看文件夹大小 #ls –lh (查看第 5 个字段)
du 和 ls –l 区别: du 文件占用磁盘空间,并非文件大小,而 ls 显示的是文件的实际大小; 占用空间取决于文件系统的块(block)的大小,linux 一般默认是 4k(4096) ,因此,一个大小为 1个字节的文件,最小也要占用 4k,如果你创建文件系统的时候制定块大小是 16K,那么即便一个文件只有 1 个字节,占用空间也是 16K。
比如文件系统的 block 是 4K,一个13K 的文件占用的空间是 13k/4k = 3.25 个 block,一个 block 只能被一个文件占用,因此实际占用空间就是 4 个 block,就是 16K 查看文件的所有者信息 #ls -l (查看第 3 个字段) 或 #ls –author filename
查看文件内容 #cat /路径/文件名 (由第一行开始显示档案内容)
或 #head –n num filename (只看头 num 行) #tail –n num filename (只看尾 num 行) #more filename (一页一页显示档案内容) #less filename (与 more 类似,比 more 更好的是可以往前翻页) #nl
filename(显示的时候,顺道输出行号) #od
以二进制的方式读取档案内容 #tac
从最后一行开始显示,可以看出 tac 是 cat 的倒着写
修改文件的所有者 #chown test aa.sh chown 改变目录或文件的所有权 一般只有 root 才有使用权限;一般
使用者没有权限可以 改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人; 常用参数-R:修改指定目录下所有的文件和文件夹
修改文件的所属群组 #chown :test aa.sh #chown -R
root:mail test6(修改所有者和群组)
修改文件的所有者权限 #chmod u+rwx filename
或 #chmod 700 filename
777 最高权限
修改文件的所属群组权限 #chmod g+rwx filename 或 #chmod 070 filename
修改文件的其他权限 #chmod o+rwx filename 或 #chmod 667 filename
赋予某个文件所有者可读可写可执行权限 #chmod u+wrx test 或 #chmod 700 test 1.文件的三种身份 u:文件的拥有者 g:文件所属的群组 o:其他用户 a:可以代表所有的 3 中身份; 2.文件的四种权限:
r:读取文件的权限(read)
w:写入文件的权限(write)
x:执行的权限(execute)
s:特殊权限 3. 读 取、写入和执行权限分别由数字 4、2 和 1 表示。
读取权限:r 或者 4 写入权限:w 或者 2 执行权限:x 或者 1
chmod 111 test 和 chmod a+x test 是等价 赋予某个文件所属组可执行权限 #chmod g+x test
或 #chmod 676 test
在指定目录下查找指定名称的文件和文件夹 #find /etc -name net*
格式:find <指定路径> <指定条件> <指定动作> 例子:搜索/etc 目录(含子目录)中,所有文件名以 net 开头的文件。
取得路径的文档名称和目录名称 #basename /etc/sysconfig/network network 取得文档名 #dirname /etc/sysconfig/network /etc/sysconfig 取得目录名 在 shell 脚本可能会用到 路径跳转 #pwd 查看当前路径 #cd.. 返回上一级目录 #cd ../.. 返回上两级目录 #cd - 返回上次所在的目录 #cd ~ 返回主目录
5. 文档编辑相关操作 操作 命令举例 备注 新建一个 test.sh 的文件 #vim test.sh 或者 #touch test.sh
打开 test.sh 文件并增加如下内容:
#!/bin/sh Echo “hello,world!” Echo “hello,world!” Echo “hello,world!” Echo “hello,lili!” Echo “hello,world!” Echo “hello,world!” Echo “1234567” Echo “hello,world!” 1.#vim test.sh 2.按 i 键进入插入模式,再输入左侧内容; 或 按 yy 复制重复内容,在命令行模式按下 pp 粘贴内容; 3.按 ESC 键,从插入模式转换到命令行模式,输入:wq 或者 shift+zz 保存 参数
Vim test.sh 打开文件后默认是命令行模式 i 从命令行模式切换到插入模式 ESC 从插入模式再切换到命令行模式 yy 拷贝光标所在的行 dd 删除光标所在的行 查找包含 3456 的所有内容,并依次定位到内容所在位置 #/3456 #n #?3456 #N /字串 往光标之后寻找该字串。
?字串 往光标之前寻找该字串。
n
往下继续寻找下一个相同的字串。
N
往上继续寻找下一个相同的字串。
跳转到第 5 行 #5G 在命令行模式操作:
G 会把光标定位到
最后一行; 数字 G 会把光标定位到指定的数字行,如 5G,光标跳转到第 5 行 复制第 5 行 #5G #y 在命令行模式操作:
y 复制 d 删除
粘贴第 5 行到文件尾部 #G #p G 会把光标定位到最后一行; 删除第 8 行内容 #8G #dd dd 删除光标所在行 清空文件内容 #gg (跳转到文件首行) #dG (清空文件)
选中指定部分复制并粘贴到结尾处 #v #上下左右健移动光标 #y #G #p v
从光标当前位置开始,光标所经过的地方会被选中,再按一下 v 结束。
V
从光标当前行开始,光标经过的行都会被选中,再按一下V结束 给当前用户赋予 test.sh 可执行权限 #chmod u+x test.sh 或 #chmod 744 test.sh 1.文件的三种身份 u:文件的拥有者 g:文件所属的群组 o:其他用户 a:可以代表所有的3 中身份; 2.文件的四种权限:
r:读取文件的权限(read)
w:写入文件的权限(write)
x:执行的权限(execute)
s:特殊权限 3. 读 取、写入和执行权限分别由数字 4、2 和 1 表示。
读取权限:r 或者 4 写入权限:w 或者 2 执行权限:x 或者 1
chmod 777 test 和 chmod a+x test 是等价 执行 test.sh #sh test.sh #./test.sh #bash test.sh 三种方式都可;
6. 压缩和解压缩 操作 命令举例 备注 把 aa.ts 压缩成 aa.tar.gz #tar –zcvf aa.tar.gz aa.ts 左侧例子 aa.ts 存在当前目录下,压缩后 gz 包也放在当前目录下; 也可以指定完整目录类似:tar -zcvf /home/test/backup/aa.tar.gz /home/test/aa.ts aa.tar.gz 名称可以自己取; 参数
–c:创建新的存档 -x 从存档展开文件 -t 列出存档中文件的目录 -z 用 gzip 对存档压缩或解压 -v 显示处理的文件名称 -f 指定存档或设备 c/x/t 仅能存在一个,不可同时存在!因为不可能同时压缩与解压缩 解压 aa.tar.gz 到当前目录 #tar –zxvf aa.tar.gz
把/etc 目录压缩成etc.tar.gz并存放到/tmp目录下 #tar –zcvf /tmp/tar.gz /etc
解压etc.tar.gz包到指定目录/bh #tar –zxvf etc.tar.gz –C /bh 参数 –C 指定解压缩目录
7. 软件安装管理 操作 命令举例 备注
安装一个 rpm 格式软件包 1.#rpm –ivh 软件包名称 2.#yum install 软件包名称 1.是本地安装 2.在线安装(yum 需要配置数据源)
3.参数 -I 安装 -v 显示附加信息 -h 安装时输出 hash 记号 (“#”)
卸载一个 rpm 格式软件包 1.#rpm –e 软件包名称 2.#yum remove 软件包名称 参数-e 删除软件 更新一个 rpm 格式软件包 #rpm –Uvh 参数-U 升级 列出指定软件包安装了哪些文件及路径 #rpm –ql gcc 前提是通过rpm安装的软件包; 左侧以 gcc 软件包为例; 根据操作命令查找软件名称 1. #whereis gcc gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz 2. #which gcc /usr/bin/gcc 3. yum provides "*/mkdir"
1.Shell 的 which 命令可以找出相关命令是否已经在搜索路径中 2.Whereis 命令搜索更大范围的系统目录,和Shell 的搜索路径无关 3. 查询 mkdir 是属于哪个软件包; 根据软件名称查找软件及配置文件 #rpm –qic 软件名称 参数
-i 查询软件的详细信息,包信安装的时间,版本信息等等 -c
查询软件的所有配置文件,只找出/etc/下面的文件名而以 -f 查询某文件是哪个包生成的 查看软件安装版本 #rpm –qi 软件包名称
8. 用户管理 操作 命令举例 备注 新增加一个普通用户 test,指定 id 为 505,组 id 为 500 #useradd –u 505 –g 500 test 该例子前提是组 id 500 存在;
主要参数 -c:加上备注文字,备注文字保存在 passwd 的备注栏中。
-d:指定用户登入时的启始目录 。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的 shell。
-u:指定用户 ID 号。
为 test 用户设置密码:123 # passwd test 更改用户 test 的密码 。
新的 密码:
重新输入新的 密码:
passwd:
所有的身份验证令牌已经成功更新 passwd 参数:
-k
keep non-expired authentication tokens
-l 关闭账号密码。效果相当于 usermod -L,只有 root 才有权使用此项。
-u 恢复账号密码。效果相当于 usermod -U,同样只有 root 才有权使用。
-g 修改组密码。gpasswd 的等效命令。
-f 更改由 finger 命令访问的用户信息。
-d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码, 只有具备 root 权限的使用者方可使用.
-S 显示指定使用者
的密码认证种类, 只有具备 root 权限的使用者方可使用.
[username] 指定帐号名称. 修改 root 用户的密码为:^Bohui!123$ 1.#passwd root #输入 root 用户的旧密码 #输入新的密码,确认新密码;
查看哪些用户登录了系统 #who 或者 #whoami 可以轻松的获取当前登录系统的用户列表及用户信息,包含使用终端登录;
显示当前登录用户的身份及组的相关信息 #id Uid=0(root) gid=0(root) 组=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
whoami 显示当前作为什么用户登录,而 who am i显示最初作为什么用户登录到系统 用户切换 1.#su 2.#su root 3.#su – root 4.#sudo
1.su 后面没有加上用户账户默认切换到 root,需要输入 root 的密码; 2.
只切换用户身份,shell环境仍然是切换前用户的环境 3. su - username -是切换用户时,环境变量一起切换 4.sudo 是用普通用户执行只有管理员才能运行的命令,需要输入普通登录用户的密码; su 或 su - root 后目录就变为切换后用户的主目录 忘记 root 用户密码
1、开机后出现 grub 画面。按E键。
2、用上下键选中第二项(类似于kernel/boot/vmlinuz--ro root=LABEL=\) 然后按E键编辑,输入/ single 结果如下:
kernel/boot/vmlinuz--ro root=LABEL=/ single 3、按回车键,按B键启动进入系统。
4、在#sh 后输入:passwd root 5、输入新密码,确认新密码。
6、输入 reboot 重启。
7、密码修改成功。
9. 磁盘管理 操作 命令举例 备注 分区和格式化 1.分区:
(下面例子分 2 个主分区,一个扩展分区)
#fdisk -l
先找到要分区磁盘的设备名称 #fdisk /dev/sdb
对设备/dev/sdb 分区; m
m 显示帮助 n
新建分区 p
建主分区 partition number (1-4):1 #创建第一个主分区
first cylinder (1-522,default 1):1 #起始柱面(第一个分区始终为 1) last cylinder or +size or +sizeM or +siezK(1-522,default 522): 10 #截止柱面(若 522 则整个硬盘分给了一个区)此分区大小是系统按照柱面大小自动计算出来的
command acton (m for help):n
command action
e extended
p primary partition (1-4)
p
partition number (1-4):2 #创建第二个主分区
first cylinder (11-522,default 11):11 last cylinder ...(11-522,default 522): +100M #自定义分区大小
command acton (m for help):n
command action
e extended
p primary partition (1-4)
e #创建扩展分区,注意一个磁盘只能创建一个扩展区
partition number (1-4):3
first cylinder (28-522,default 28):28 last cylinder ...(28-522,default 522):522 #将剩余空间全部分给扩展分区 扩展分区是不能直接使用的,必须在其上创建逻辑分区!
command acton (m for help):n
command action
l logical (5 or over)...
热点文章阅读