企业服务器方面
www.netcraft.com 检测网站后台服务相关信息 (国外站点)
嵌入式应用方面
Android XXXSSHd 远程安全管理 (QuickSSHd)
文件类型 | 扩展名 |
---|---|
压缩文件 | .gz .bz2 .tar.bz2 .tgz |
二进制软件包 | .rpm |
脚本文件 | .sh |
配置文件 | .conf |
格式化 在磁盘的特定区域写入特定数据, 在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间
/ 根目录 dev 硬件设备
hd[a-d]: IDE
sd[a-p]: SCSI/SATA/USB 磁盘
cdrom 或 hdc: 光驱
fd[0-1]: 软盘
lp[0-2]: 打印机 (25 针)
/usb/lp[0-15]: 打印机 (USB)
mouse: 鼠标
手动分区 home boot swap /
安装方式 Basic Server
推荐分区 /boot 启动分区(200M)
**Xshell**
在 Xshell 中配置连接信息
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes // 是否随着开机启动
命令基本格式
root 超级管理员
localhost 主机名
~ 当前所在目录
# 管理员用户
$ 普通用户
/root /home/other
命令 [选项] [参数]
... vi'''
ls [选项]
-a 显示所有文件 *(包括隐藏文件 .开头文件)*
-l 显示详细信息
>- 第一列 权限*(10位基本权限)*
-文件类型 *(-文件 d目录 l软连接(快捷方式) )*
后九位分三组代表权限
所有者 u
所属组 g *相同身份或相同权限的一类用户*
其他人 o
r 读 w 写 x 执行
. 代表 ACL权限
>- 第二列 引用计数(被调用 链接)
>- 第三列 所属者用户
>- 第四列 所属组
>- 第五列 大小
>- 第六列 最后一次修改时间
>- 第七列 文件名
-d 查看目录属性
-h 显示文件大小
-i 显示 inode
目录处理命令
建立目录 mkdir
mkdir 目录名
-p 递归创建
mkdir -p abc/def/ggg
切换所在目录 cd
cd 目录
cd ~ / cd 切换家目录
cd - 上次目录
cd .. 上一级目录
cd . 当前目录
相对路径: 参照当前所在目录
绝对路径: 从根目录开始指定, 一级一级递归查找
目录 / 命令补全 Tab 键
查询所在目录 pwd (打印当前位置)
删除空目录 rmdir
rmdir 目录名
删除文件或目录 rm
rm -rf 文件或目录
-r 删除目录
-f 强制
复制命令 cp
cp [选项] [原文件或目录] [目标目录] 目标目录后加文件名改名复制 不加名 原名复制
-r 复制目录
-p 连带文件属性复制
-d 若原文件是链接文件 则复制链接属性
-a 相当于 -pdr
剪切命令 mv
mv [原文件或目录] [目标目录]
同目录下可以改名
常见目录作用
/ 根目录
/bin /sbin /usr/bin /usr/sbin 保存系统命令 (s* root用户打开)
/boot 启动目录保存启动数据
/dev 硬件文件
/etc 配置文件
/lib 函数库
/media /mnt /misc 三个空目录 作为外接存放设备的挂载 (mnt)
/proc /sys 内存的挂载点
/tmp 临时目录
/usr 系统软件资源目录
/var 系统相关文档目录
链接命令
链接命令 ln
ln -s [原文件] [目标文件]
生成链接文件 (引用计数加1)
-s 创建软链接
硬链接
(具有相同的i节点和存储block块,可以看成是同一个文件)
一个文件的不同接入点
通过i节点访问
不能跨分区
不能针对目录使用
软链接
(类似Windows快捷方式)
拥有自己的i节点和block块 但数据块中只保存原文件的文件名和j节点号,没有实际的文件数据
lrwxrwxrwx l软链接
软链接权限都为 rwxrwxrwx
修改任意文件,另一个都改变
删除原文件,软链接不能使用
软链接非当前目录,原文件要写绝对路径
文件搜索命令
locate 文件名
在后台数据库中按文件名搜索,搜索速度快
/var/lib/mlocate 后台数据库
updatedb 强制更新数据库
/etc/updatedb.conf 配置文件
PRUNE_BIND_MOUNTS = "yes" 筛选规则是否生效
PRUNEFS = "" 筛选规则 (不搜索以下文件系统)
PRUNENAMES = "" 筛选规则 (不搜索以下后缀名文件)
PRUNEPATHS = "" 筛选规则 (不搜索以下目录中)
命令搜索命令
搜索系统命令所在路径 (及帮助文档)
-b 只查看命令位置
-m 只查看帮助文档位置
which 命令名
除了命令所在位置还可以查看别名
内置命令 (shell) 没有独立的执行文件 例如: cd
环境变量 ($PATH) 内没有所搜索的命令文件, 就会报错 (未发现)
find 命令
find [搜索范围] [搜索条件]
find / -name install.log 根目录下按文件名搜索
避免大范围搜索
通配符匹配, 通配符是完全匹配 (双引号括起来)
* 任意内容
? 任意一个字符
[] 中括号内的任意一个字符 (或)
find -iname #不区分大小写
find -user #按所有者 -nouser 没有所有者的文件 (垃圾文件) 内核产生的文件
find -mtime +10
(查找十天前修改的文件)
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
find . -size 25k
(查找大小为25K的文件)
-25k 小于25K
25k 大小为25K
+25k 大于25K
10M 大小为10M
默认类型为扇区块(512K) \
find . -inum 262421
(查找i节点为262421)
find /etc -size +20k -a -size -50k
(查找/etc/目录下,大于20K并小于50K的文件)
-a and 逻辑与
-o or 逻辑或
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
(将查找的结果用后面的命令来执行处理 -exec {} \; 固定格式)
grep 命令 字符串搜索
grep [选项] 字符串 文件名
gerp "size" anaconda-ks.cfg
-v 取反
-i 忽略大小写
find 在系统当中搜索符合条件的文件名, 可以使用通配符来实现完全匹配
grep 在文件当中搜索符合条件的字符串, 可以使用正则表达式来实现包含匹配
文件名称 通配符 (完全匹配)
文件数据 正则表达式 (包含匹配)
帮助命令
帮助命令 man
(获取指定命令的帮助)
man ls
name 命令用途
synopsis 格式
description 选项 (简化)
/d 可自动跳转到第一个 - d 选项上
n 向下跳转 shift+n 向上跳转
man -f 命令
(查看命令级别)
(相当于 whatis 命令)
man -5 passwd
man -4 null
man -8 ifconfig
默认打开最小等级的命令
man -k 命令
#找到和命令相关的所有相关信息
#相当于 apropos 命令
命令名 –help
获取命令选项的帮助
help shell内部命令
(获取shell内部命令的帮助)
whereis cd
#查看是否是shell内部命令 (无可执行文件)
help cd
#获取内部命令帮助 (内部命令无法使用man单独获取帮助)
info
(获取详细帮助文档)
-回车 进入帮助子页面 (带*)
-u 返回
-n 下一个帮助小节
-p 上一个帮助小节
压缩与解压缩命令
常用压缩格式 .zip .gz .bz2 | .tar.gz .tar.bz2
.zip格式压缩
zip 压缩文件名 源文件
(压缩文件)
不要求,但要使用扩展名,便于区分
zip -r 压缩文件名 目录
(压缩目录)
.zip格式解压
unzip 压缩文件
(解压缩.zip文件)
.gz格式压缩
gzip 源文件
(压缩为.gz格式的压缩文件,源文件会消失)
gzip -c 源文件 > 压缩文件
(压缩为.gz文件,源文件保留)
gzip -r 压缩目录
(把目录当中的所有子文件压缩,但是不能压缩目录)
.gz格式解压缩
gzip -d 压缩包名
(解压缩文件)
gunzip 压缩包名
gunzip -r 解压目录
.bz2格式压缩
bzip2 源文件
(压缩为.bz2格式的压缩文件,不保留原文件)
bzip2 -k 源文件
(保留源文件)
(不能压缩目录)
.bz2格式解压缩
bzip2 -d 压缩包名
bunzip 压缩包名
(-k 保留源文件)
.tar 打包文件(解决目录压缩与解压缩)
tar -cvf 打包文件名 源文件
-c 打包文件
-v 显示过程
-f 指定打包后的打包文件名
tar -xvf 打包文件名
(解压缩)
打包后压缩与解压缩
tar -zcvf 压缩包名. tar.gz 源文件
tar -zxvf 解压缩包名. tar.gz
tar -jcvf 压缩包名. tar.bz2 源文件
压缩多个文件后用空格分隔
在压缩文件名前加路径可指定压缩位置
tar -jxvf 解压缩包名. tar.bz2
-C 指定解压位置
tar -ztvf 压缩包名
tar -jtvf 压缩包名
可查看压缩包
关机和重启命令
shutdown命令
shutdown [选项] 时间
-c 取消前一个命令
-h 关机
-r 重启
(可以正确保存服务与文件 )
shutdown -r 05:30 &
放在后台运行
其他关机命令
halt
poweroff
init 0
其他重启命令
reboot
init 6
系统运行级别
0 关机
1 单用户
2 不完全多用户, 不含 NFS 服务 (文件共享服务)
3 完全多用户 (字符界面)
4 未分配
5 图形界面 (X)
6 重启
runlevel #查看之前级别和当前级别
cat /etc/inittab
id:3:initdefault: // 定义系统默认的运行级别
退出登录命令
logout
#注销
其他常用命令
挂载命令
mount
#查看系统中已经挂载的设备
mount -a
(根据配置文件 /etc/fstab (自动挂载) )
(如果将光驱和U盘写入文件 光驱内没有光盘,U盘没有插入系统 启动就会不成功)
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
-t 文件系统:加入文件系统来指定挂载的类型 ext3 ext4 iso9660(光盘)等文件系统
-o 特殊选项:可以指定挂载的额外选项
exec/noexec 是否可以执行可执行文件 默认允许
remount 重新挂载已经挂载的文件系统 一般用于指定修改特殊权限
默认已经挂载好的分区 可以省略 设备文件名
挂载光盘
mkdir /mnt/cdrom
(建立挂载点)
mount [-t iso9660] /dev/sr0 /mnt/cdrom
(挂载光盘 将设备文件挂载到盘符)
(默认读写权限,光盘不可写 提示权限被迫改变)
卸载光盘
(必须卸载才可取出光盘)
umount 设备文件名或挂载点
umount /mnt/cdrom/
挂载U盘
fdisk -l
(查看设备文件名)
mount -t vfat /dev/sdb1 /mnt/usb/
(vfat (fat32)文件系统 Linux默认是不支持NTFS文件系统)
用户登录查看命令
w
(查看用户登录信息 (系统资源情况) )
who
(查看当前登录用户)
last
(查看系统中所有已登录的信息 (历史记录) )
(日志文件 /var/log/wtmp (二进制文件) 不可用vi查看 )
lastlog
(系统当中的用户最后登录时间 )
(日志文件 /var/log/lastlog )
shell概述
系统命令行解释器(二进制语言) | 接受输入命令 编译二进制传输给内核
还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强.
分类
脚本执行方式
echo输出命令
echo [选项] [输出内容]
空格需要加入双引号
-e 控制字符(转义字符) \a 警告音 \b 退格键
可输入十六进制制表符ASCII \x
#输出颜色 “\e[1;31m ……. \e[0m”
31m 红色 35m 杨红 32m 绿色 33m 黄色
echo -e “\e[1;31m 哈哈哈 \e[0m”
第一个脚本
hello.sh
#!/bin/bash
echo -e "\e[1;36m 天上掉下个林妹妹 \e[0m"
执行权限
通过Bash调用执行脚本
bash hello.sh
赋予权限,直接执行
chmod 755 hello.sh
./hello.sh
Bash的基本功能
命令别名与快捷键
( 操作简化,便于记忆 )
alias
(查看系统中默认生效的别名 )
alias ls=’ls –color=never’
(设定别名(临时生效) alias 别名=’原命令’ )
vi ~/.bashrc
(永久生效 写入环境变量配置文件 )
source ~/.bashrc 重新调用配置文件,使设置生效
unalias 别名
(删除别名 (临时生效) )
生效顺序
1. 用绝对路径或相对路径执行的命令
2. 执行别名
3. 执行Bash的内部命令
4. 按照$PATH环境变量定义的目录查找顺序找到的第一个命令
常用快捷命令
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 光标移到行首
ctrl+e 光标移到行尾
ctrl+u 从光标所在位置删除到行尾
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索
历史命令
history 历史命令
history [选项] [历史命令保存文件]
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
#默认保存1000条
HISTSIZE=1000
#vi /etc/profile 环境变量配置文件
基本调用
上下箭头来重复调用
!n 来执行第n条历史命令
!! 重复执行上一条命令
!字符串 重复执行后一个该串开头的命令
Tab键
进行命令(环境变量)和目录补全(操作路径)
输出重定向
(显示电脑处理的结果)
标准输入输出
键盘 /dev/stdin 0 标准输入
显示器 /dev/sdtout 1 标准输出
显示器 /dev/sdterr 2 标准错误输入
输出重定向
标准输出重定向
命令 > 文件
以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中.
命令 >> 文件
以追加的方式
标准错误输出重定向
错误命令 2>文件
以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中.
错误命令 2>>文件
以追加的方式
正确输出和错误输出同时保存
命令 > 文件 2>&1
命令 &> 文件
以覆盖的方式,把正确的输出和错误输出都保存到一个文件当中
命令 >> 文件 2>&1
命令 &>> 文件
以追加的方式
ls &> /dev/null (回收站)
命令 >> 文件1 2>> 文件2
正确的追加到文件1,错误的追加到文件2
输入重定向
wc [选项] [文件名]
-c 统计字节数
-w 统计单词数
-l 统计行数
ctrl+d 中断统计
命令 < 文件
(把文件作为命令的输入)
命令 << 标识符
(标识符其中的内容作为该命令执行的内容)
管道符
多命令顺序执行
; 命令1;命令2 多个命令顺序执行(无论中间是否保存)
&& 命令1&&命令2 逻辑与 当命令1正确执行,则命令2才会执行
|| 命令1||命令2 逻辑或 当命令1正确执行,则命令2不执行
# ls && echo yes || echo no
管道符
命令1 | 命令2
#将命令1的正确输出作为命令2的操作对象
# ll /etc | more
# netstat -an | grep ESTABLISHED (服务器显示连接人数)
# netstat -an | grep ESTABLISHED | wc -l (处理行号)
通配符
? 匹配一个任意字符
* 0个或任意多个
[] 匹配中括号内其中一个字符
[-] -代表一个范围 [a-z]代表匹配一个字母
[^] 逻辑非 表示匹配不上中括号内的一个字符 [^0-9]代表匹配一个不是数字的字符
其他特殊符号
'' 特殊符号都没有特殊意义,原样输出
"" $ ` \ 都具有特殊意义
`` 包含系统命令 执行后赋值给变量 等同于 $()
$ 用于调用变量的值 (变量名=变量值)
# shell脚本中,#开头的行代表注释
\ 转义符 跟在\之后的特殊符号失去意义,变为普通字符