系统分区:
MBR分区(主分区不超过4个,单个分区不超过2TB)
fdisk -l
fdisk /dev/sdb
n(添加一个分区)p(添加一个主分区,主分区)e(添加一个扩展分区)l(添加一个逻辑分区,从5开始)d(删除一个分区)w(保存分区)
GPT分区(yum install parted)
parted
select /dev/sdb
mklable msdos(gpt)
print (all)
mkpart
Partition name? []?
File system type? [ext2]?
Start? 1 从第1M开始,避免出现对齐问题,提高硬盘性能
End?到第几M结束
或者 mkpart test(名称,不能省略) 2000 3000
rm (分区编号)
unit GB (用G做单位)
quit
格式化
mkfs.ext3 /dev/设备名 或者 mkfs -t ext4 /dev/设备名
SWAP分区
>>建立一个普通的linux分区
>>修改分区类型的16进制编码 t(),分区编号,L(查看所有进制)w(保存)
>>格式化交换分区 mkswap /dev/设备名
>>启用交换分区 swapon /dev/设备名 swapoff /dev/设备名为停止使用swap
free查看是否已经启用成功
目录处理:
mkdir -p (新建文件用touch)
cd 目录 (~ 代表家目录 - 代表上一次目录)
pwd
rmdir
rm -rf (-r代表删除目录,-f标识强制)
cp [源文件或目录] [目标目录](-r 代表目录 -p 连带文件属性一起复制,比如时间 -d 如果文件是链接文件,则复制链接属性 -a 等同于-pdr)
ll (ls -l的别名,查看隐藏文件请用ls -a)
mv [源文件或目录] [目标目录] (既是剪切,也是重命名)
ln -s [源文件] [目标文件]
硬链接:拥有相同的i节点和block块,不能跨分区,不能针对目录使用
软连接:类似windows快捷方式,软连接拥有自己的i节点和block块,修改一个另外一个也改变,删除源文件软链接不能再使用
搜索命令
文件搜索:locate [文件名] (新建的文件搜索不到,只是搜索后台数据库文件/var/lib/mlocate,这个数据库一天已更新,如实时更新,需updatedb),如果没有此命令,yum install mlocate,/etc/updatedb.conf配置文件配置规则
命令搜索命令: whereis和which(whereis搜索命令所在路径及帮助文档所在位置 -b只查找命令文件 -m之查找帮助文档,which除了搜索命令的路径 还会列出命令的别名)
文件搜索:find [搜索范围] [搜索条件] (文件名是精确匹配,可以使用通配符,*?[])
-name 、-inname(不区分大小写)、-user root(按照所有者搜索)、-nouser(查找没有所有者的文件)、 -mtime|atime|ctime+10(10天前修改的文件 -10为10天内 10为10天当天)、-size +25k、-inum 1000(i节点是1000的文件)、-a(逻辑and)、-o(逻辑or)、-exec|-ok命令{} \(对搜索结果进行操作)
字符串搜索命令:grep [选项] 字符串 文件名 (选项:-i忽略大小写 -v排除指定字符串)
帮助命令
man命令(如果没有,择yum install man) -f(相当于whatis命令,查看级别) -k(相当于apropos命令 ,查看和包含关键字命令相关的所有帮助)
其他帮助命令
--help
压缩命令(http://www.cnblogs.com/yejianfei/p/3351626.html)
zip [文件名.zip] [文件名或目录名] (-r 压缩目录)
unzip [文件名.zip]
gzip [文件名](源文件会消失)
gzip -c 源文件 > 压缩文件 (源文件保留)
gzip -r [目录] (压缩目录下的所有子文件,但是不压缩目录)
gzip -d [压缩文件] (解压缩)
gunzip [压缩文件] (解压缩)
bzip2 [源文件](源文件会消失)
bzip2 -k [源文件](源文件保留)
bzip2 -d [压缩文件](解压缩)
bunzip2 [压缩文件](解压缩)
tar -zcvf [打包文件名.tar.gz] [源文件](-c 打包,-v显示过程,-f指定打包后的文件名)
tar -zxvf [打包文件名.tar.gz] (-C 指定解压缩的位置)
tar -ztvf [打包文件名.tar.gz] (不解压,只查看内容)
tar -jcvf [打包文件名.tar.bz2] [源文件]
tar -jxvf [打包文件名.tar.bz2]
关机与重启命令
shutdown [选项] [时间] (选项:-c 取消前一个关机命令 -h 关机 -r 重启)
shutdown -r 05:30(占用终端)
shutdown -r 05:30 &(放在后台执行,不占用终端)
其他关机命令:halt、poweroff、init 0
其他重启命令:reboot、init 6
退出登录:logout
修改登录级别:/etc/inittab (centos7:ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target)
查看登录级别:runlevel
挂载命令
mount 查看系统中已经挂载的设备
mount -a 根据配置文件 /etc/fstab的内容,自动挂载
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
mount -o remount,noexec /home
挂载光盘 mount -t iso9660 /dev/sr0 /mnt/cdrom/
挂载U盘 mount -t vfat /dev/sdb1 /mnt/usb/
umount [挂载点或设备名]
用户登录查看命令
w (系统当中已经登录的用户,tty1位本机终端,pts/0为远程终端,LOGIN@为登录时间,IDLE为闲置时间,JCPU和PCPU为进程占用cpu时间,WHAT为当前正在执行的命令)
who
su命令(切换登陆用户)
last(读取/var/log/wtmp文件,查询当前登录和过去登录的用户信息)
lastlog(读取/var/log/lastlog文件,查看所有用户的最后一次登录时间)
SHELL命令
查看当前shell echo $SHELL
/etc/shells,子shell,退出用exit
echo命令
-e(支持反斜线控制的字符转换)
\e[1;31m开启颜色 \e[0m关闭颜色 31m为红色
#!/bin/bash
脚本执行
>>chmod 755 文件名,然后执行
>>bash 文件名
命令别名
alias (查看别名)
alias ls='ls --color=never'(设定别名)
vi ~/.bashrc
unalias (删除别名)
快捷键
ctrl+(c 强制终止当前命令 ,l 清屏,a 光标移到命令行首,e 光标移到命令行尾,u 从光标所在位置删除到行首,z 把命令放到后台,r 在历史命令中搜索)
历史命令
history(-c 清空命令 -w 把缓存的历史命令写入到~/.bash_history中)
上次注销成功后保存的命令存储在~/.bash_history里
历史命令默认保存1000条,可以在环境变量/etc/profile文件中配置
上下箭头可以调用历史命令;!n 调用第几条历史命令;!! 重复执行上次命令;!字符串 重复执行最后一条以该字串开头的命令
输入时tab键补全
输出重定向
标准输出重定向(命令 >文件 已覆盖的方式把命令的正确输出输出到指定的文件或设备上,命令 >>文件 以追加的方式)
标准错误输出重定向(错误命令 2>文件 已覆盖的方式,错误命令 2>>文件 以追加的方式)
正确输出和错误输出同时保存(命令 >文件 2>&1 已覆盖的方式 同 命令 &>文件,命令 >>文件 2>&1 已追加的方式 同 命令 &>>文件,命令>文件1 2>>文件2 正确的输出到文件1,错误的输出到文件2,命令 &>/dev/null 不输出)
输入重定向
wc [选项] [文件名] (-c 统计字节数,-w 统计单词数,-l 统计行数)ctrl+d
管道符
多命令顺序执行(;多个命令执行 命令之间没有任何逻辑,&& 前一个命令正确后边的命令才会执行,|| 前一个命令不正缺后边的命令才会执行)
命令 && echo yes || echo no(用来检测一个命令是否正确执行)
命令1 | 命令2 (命令1的正确输出作为命令2的操作对象)
通配符(*?[])
VI编辑器(yum install vim)
vi编辑器的操作模式(命令模式、输入模式、底行模式)
vim 文件名(vim + 文件名 打开文件光标定位到最后一行,vim +n 文件名 打开文件光标定位到第n行,vim +/字符串 文件名 打开文件光标定位到字符串第一次出现的行 用n跳转下一个位置,vim aa bb cc 一次创建多个文件,用:n切换下一个 :N上一个)
底行模式(:w,:q,:q!,:wq,:ls,:n,:N,:数字,/字符串 想后搜索,?字符串 向前搜索)
命令模式(h,j,k,l,ctrl+f,ctrl+b,ctrl+d,ctrl+u,dd,o,yy,p,P)
磁盘管理
df(-l 仅显示本地磁盘,-a 显示所有,-h 以1024进制用合适单位显示,-H 以1000进制用合适单位显示,-T 显示磁盘分区类型,-t 显示指定类型文件系统的磁盘分区,-x 不显示指定类型文件系统的磁盘分区)例:df -lhT -t ext4
du(-b 以byte为单位统计,-k以KB为单位统计,m以MB为单位统计,-h,-H,s指定统计目标 )例:du -sh *.zip
查看各目录所占用量du . --max-depth=1 -h
用户管理
/etc/group 存储所有用户组的信息
Group: X : 123 :abc,def,xyz
组名称 组密码占位符 组编号 组中用户名列表
编号1-499是为安装软件提供的用户组,用户手动创建的用户组是从500开始的
/etc/gshadow 存储用户组的密码信息
Group: * : :abc,def,xyz
组名称 组密码 组管理者 组中用户名列表
/etc/passwd 存储所有用户的信息
user : X : 123 : 456 : ****** :/home/user : /bin/bash
用户名 密码占位符 用户编号 用户组编号 用户注释信息 用户目录 shell类型
/etc/shadow 存储所有用户的密码信息
user : **** : : : : :
用户名 密码
用户和用户组的基本命令
groupadd 组名
groupmod -n 新组名 原组名
groupmod -g 组编号 组名称
groupdel 组名称
useradd -g 组名 -G 附属组1,附属组2 -d 目录名 用户名
usermod -c 备注内容
usermod -l 新用户名 原用户名
usermod -g 新组名 用户名
userdel -r 用户名 (-r 删除用户名根目录)
touch /etc/nologin (阻止用户登录)
用户和用户组的进阶命令
passwd -l 用户名 (锁定用户)
passwd -u 用户名 (解锁用户)
passwd -d 用户名 (去掉密码,无密码登陆)
gpasswd -a 用户名 附属组名(给用户添加附属组)
gpasswd -d 用户名 附属组名 (给用户去掉附属组)
newgrp 附属组名 (需要输入组密码,临时切换用户至附属组)
gpasswd 组名 (更改用户组密码)
其他用户和用户组命令
su 用户名(切换到其他用户,需输入密码)
whoami
id 用户名
groups 用户名
chfn 用户名 (设置用户详细资料)
finger 用户名 (显示用户详细资料)
网络管理
应用层、表示层(解码转换成二进制、加密)、会话层(判断是本地存储还是网络传输)、传输层(写入发送与接收端口号,选择传输协议,流控)、网络层(封装ip,选路)、数据链路层(封装mac地址,成帧)、物理层(比特流传输)
IP地址配置
ifconfig临时配置ip地址 例:ifconfig eth0 192.168.0.2 netmask 255.255.255.0
setup永久配置ip地址(yum install setuptool、yum install ntsysv、yum install system-config-securitylevel-tui、yum install system-config-network-tui、yum install system-config-keyboard)
修改网络配置文件
网卡文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
主机名文件
vi /etc/sysconfig/network(修改hostname需重新启动计算机,查看hostname用hostname命令)
DNS配置文件
vi /etc/resolv.conf
图形界面配置文件
重启网络服务 service network restart
修改UUID
>>删除ifcfg-eth0中的mac地址行
>>删除网卡和mac地址绑定文件 rm -rf /etc/udev/rules.d/70-persistent-net.rules
>>重启系统
虚拟机网络参数配置
桥接(占用一个真实网段的ip地址)
NAT,Host-only(不能与局域网的其他电脑通讯)
网络命令
网络环境查看命令
ifconfig
ifup 启用网卡
ifdown 禁用网卡
netstat(-t 列出TCP协议端口,-u 列出UDP协议端口,-n 不使用域名与服务名 使用ip与端口,-l 仅列出在监听状态的网络服务,-a 列出所有的网络连接,-r 列出路由列表 同route)例:netstat -tuln
route命令 (-n 列出路由列表)route add default gw 192.168.0.1 临时设定网关
nslookup 域名对应的IP
网络测试命令
ping 域名或ip(-c 次数)
telnet 域名或ip 端口(用来做端口探测)
traceroute [选项] 域名或ip (-n 使用ip,不使用域名,速度更快)
wget 下载链接
tcpdump (-i 指定监听网卡,-nn 将数据包中的域名与服务转为ip和端口,-X 以十六进制和ascii显示数据包内容,port 指定监听端口)
远程登录工具
ssh原理
对称加密与非对称加密
ssh 用户名@ip(下载公钥到当前用户目录下,保存为.ssh文件)
scp 用户名@ip:文件路径 本地路径(下载文件 -r 代表目录)
scp 本地文件 用户名@ip:上传路径(上传文件 -r 代表目录)
软件安装
rpm
rpm 包默认安装位置
/etc/、/usr/bin、/usr/lib、/usr/share/doc、/usr/share/man
rpm包安装完后的启动方式
/etc/rc.d/init.d/httpd start
service httpd start(radhat 专有)
rpm 包全名(-i 安装,-v显示详细信息,-h显示进度,--nodeps不检测依懒性)
rpm -Uvh 包全名(升级)
rpm -e 包名(卸载)
rpm -q 包名
rpm -qa (查询所有已安装的包)
rpm -qip(-i 查询软件信息,-p查询未安装软件信息)
rpm -ql(-l 列表)
rpm -qf 系统文件名(查询系统文件属于哪个软件包)
rpm -qR(-R 依懒性)
yum
vi /etc/yum.repos.d/CentOs-Base.repo([base] 容器名称,name 容器说明,mirrorlist 镜像站点,baseurl yum源服务器地址,enabled 此容器是否生效,gpgcheck RPM证书是否生效,gpgkey 数字证书公钥的保存位置)
光盘搭建yum源
挂载光盘 mount /dev/sr0 /mnt/cdrom
使网络yum源失效 mv CentOs-Base.repo CentOs-Base.repo.bak
使光盘yum源生效 vi /etc/yum.repos.d/CentOs-Media.repo 修改baseurl为file:///mnt/cdrom,enabled=1\
yum list
yum search 关键字
yum -y install 包名
yum -y update 包名
yum -y remove 包名
yum grouplist
LANG=zh_CN.utf8
LANG=en_US
永久修改语言,vi /etc/sysconfig/i18n
yum groupinstall 软件组名
yum groupremove 软件组名
源码安装
源码包安装位置(源码安装一定要指定安装路径,因为源码安装没有类似rpm的卸载命令)
/usr/local/软件名
源码安装后的启动方式
/usr/local/apache2/bin/apachectl start
安装过程
安装c语言编译器
下载源码包
tar -zxvf
cd
./configure --prefix=
make(如果报错,需要make clean,清除一下)
make install(如果出错,不止make clean,还要删除安装目录)
卸载(直接删除安装目录即可)
脚本安装 (需关闭selinux与防火墙)
权限管理
文件基本权限
-rw-r--r--(1 文件类型 d 目录 l 链接文件,2-4 所有者u,5-7 所属组g,8-10 其他人o)
chmod [选项] [模式] 文件名
选项:-R 递归
模式:
[ugoa][+-=][rwx] 多个用逗号隔开
755(r=4 w=2 x=1)
权限对文件的作用
r(cat,more,head,tail)
w(vi,echo)写权限不包括删除权限,想要删除文件,需要对目录具有w权限
x(可执行)
权限对目录的作用
r(ls)
w(touch,rm,mv,cp)
x(cd)
chown 用户名 文件名 chown 用户名:用户组 文件名
chgrp 组名 文件名
文件默认权限
umask 0022(临时修改)
vi /etc/profile(永久修改)
文件的默认权限
文件默认最大权限为666即rw-rw-rw-,umask为0022即----w--w-,相减得rw-r--r--即644
目录的最大权限
目录的最大权限为777
ACL权限
针对所有者,所属组,其他人三种类型过于简单的附加,使区别于这三种类型的用户具有文件或目录的权限
查看是否开启 dumpe2fs -h /dev/sda2(-h 只显示超级块中的信息,而不显示磁盘块组的详细信息)
开启acl权限 mount -o remount,acl /
查看acl权限 getfacl 文件名
设定acl权限 setfacl [选项] 文件名
选项:(-m 设定acl权限,x 删除指定的acl权限,-b 删除所有的acl权限,-d 设定默认acl权限,-k 删除默认acl权限,-R 递归设定acl权限)
例:setfacl -m u(g):用户名或组名:权限 /文件或目录
setfacl -x u:用户名 目录名
setfacl -b 目录名
最大有效权限mask(赋予的权限与mask逻辑与,得到的权限才是真正的权限)
setfacl -m m:权限 目录
递归acl权限
setfacl -m u:用户名:权限 -R 目录
默认acl权限
setfacl -m d:u:用户名:权限 -R 目录
sudo权限
visudo(实际上修改的是/etc/sudoers文件)
root ALL=(ALL) ALL
用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)例子:user1 ALL=(ALL) /sbin/shutdown -r now ;user1 ALL=/usr/sbin/useradd
%wheel ALL=(ALL) ALL
用户组
sudo -l (查看可用的sudo命令)
sudo 命令
文件特殊权限
SetUID(SUID)
只有可执行的二进制程序才能设定
命令执行着要对该程序具有X权限
命令执行者在执行该程序时获得该程序文件的属主身份
chmod 4755 文件名
chmod u+s 文件名
SetGID(SGID) 最典型的例子是 /usr/bin/locate命令
对执行文件和目录都起作用
chmod 2755 文件名
chmod g+s 文件名
Sticky BIT(SBIT) 设置后只能新建或删除自己的文件,最典型的例子是/tmp文件夹
只对目录起作用
目录需要有w和x权限,也就是说把目录给其他人赋予7最大权限
chmod 1755 文件名
chmod o+s 文件名
chmod 0777 文件名(取消)
chmod o-s 文件名(取消)
不可改变位权限
chattr [+-=] [选项] 文件名或目录名
i:对文件设置后,不允许对文件删除改名添加修改,对目录设置后,允许修改目录下的数据,不允许添加和删除
a:对文件设置后,只能在文件中添加数据,不能修改和删除,对目录设置后,只允许在目录中建立和修改文件,但不允许删除
服务管理
crontab
crontab -l (查看当前用户的crontab文件的详细信息)
service crond status
安装cron
yum install vixie-cron
yum install crontabs
crontab -e (编辑当前用户的crontab文件) tail -f 文件名(一直显示文件的后几行)
第1列分钟1~59 第2列小时1~23(0表示子夜)第3列日1~31 第4列月1~12 第5列星期0~6(0表示星期天)第6列要运行的命令
Shell基础
变量
引用变量需要加$符号
变量叠加:a= "$a"123(+号不具有运算作用,想要求和,需$(($a+$b)))
set (查看系统运行的所有变量)
-u(不会输出不存在的变量)
unset 变量名(删除变量)
环境变量(本shell和所有子shell中均可以查看,用户自定义变量只能 本 shell查看)
pstree(查看进程树)
设置环境变量
export 变量名= 变量值
env(查看系统运行的环境变量)
PATH环境变量
echo $PATH
PATH= "$PATH":/root/sh
修改完修改完成后,source /etc/profile生效
PS1环境变量
\d 显示日期,\H 显示完整的主机名,\t 显示24小时制 "HH:MM:SS",\A 显示24小时制"HH:MM",\u 显示当前用户名,\w 显示当前所在目录的完整名称,\W 显示当前所在目录的最后一个目录,\$ 如果为root则显示#,普通用户显示$
PS2环境变量
\ 定义换行符
locale环境变量(系统中所有语系)
LANG (定义系统主语系的变量)
LC_ALL(定义整体语系的变量)
Linux中文支持(安装好中文字体和中文语系)
第三方远程工具,只要设置好语系,就能支持中文
纯字符界面,必须使用第三方插件(zhcon等)
位置参数变量
./canshu.sh 11 22(./canshu.sh为$0,11为$1,22为$2)
$n(n代表第几个参数),$* 、$@ (返回所有参数,$*把参数看成一个整体,$@把每个参数分区对待,可以用for循环来检验,for i in "$*"),$@(返回参数个数)
预定义变量
$?(最后一次命令的返回值),$$(当前进程的进程号),$!(后台运行的最后一个进程的进程号)
接受键盘输入
read [选项] 变量名(-p 提示信息,-t 等待时间,-n 接受指定字符数执行,-s 隐藏输入的数据)
read -p "please input your name" -t 30 -s -n 5 name
echo $name
运算符
declare [+/-] [选项] 变量名
-给变量设定类型,+取消变量的类型,-a数组型,-i整型,-x环境变量(export也是调用的declare命令,只是简化版),-r只读变量,-p显示变量的类型
定义数组
array[0]=value1
declare -a array[1]=value2
查看数组 echo ${array[0]}
数值运算方法
方法1 declare -i a=$b+$c
方法2 expr或let工具 a= $(expr $b + $c)
方法3 a= $(($b+$c))
正则表达式
字符截取命令
cut命令(-f 第几列;-d 分隔符,默认是tab) 例:cut -d ":" -f 1,3 /etc/passwd
printf '输出类型 输出格式' 输出内容
-%ns 输出字符串 n代表几个字符;-%ni 输出整数;-%m.nf 输出浮点数 %8.2f代表6位整数2位小数
\a 输出警告声音;\b 输出退格键;\f清除屏幕;\n 换行;\r 回车;\t 水平输出退格键,也就是tab键;\b 垂直输出退格键,也就是tab键
例: printf '%s' $(cat /etc/passwd) 读取文件内容
print命令会自动在每行结束后加换行符,而printf不会自动加
awk '条件1{动作1}条件2{动作2}...' 文件名 FS也就是分隔符,默认是空格;BEGIN 第一行内容存入$1时,先执行这个动作
例:awk 'printf $2 "\t" $1 "\n"' /etc/passwd ($0为文件名,$1是第一个字段,$2是第二个字段...)
df -h | grep "/dev/sda1" | awk '{print $5}' | cut -d '%' -f 1(获取磁盘已用百分比)
cat /etc/passwd | grep /bin | awk '{FS=":"}{print $1 "\t" $3}'
sed命令 轻量级流编辑器,文本选区,替换,删除,新增
sed [选项] '[动作]' 文件名
选项
-n 一般sed命令会把所有数据全都输出都屏幕,如果加入此选项,则会把经过处理的行输出到屏幕
-e 允许对输入数据应用多条sed命令编辑
-i 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
动作
a 追加 在当前行后添加一行或多行
c 行替换
i 在当前行前添加一个或多行
d 删除指定行
p 打印 输出指定航
s 字符替换,用一个字符串替换另外一个字符串。格式为 “行范围s/旧字串/新字串/g”
例子:sed -n '2p' /etc/passwd (打印文件第二行)
sed '2,4d' /etc/passwd (删除第二行到第四行的数据,但不修改数据本身)
sed -e 's/a/b/g;s/c/d/g' /etc/passwd
字符串处理命令
sort [选项] 文件名
-f 忽略大小写
-n 以数字型排序,默认一字符串型排序
-r 反向排序
-t 指定分隔符 默认分隔符是tab
-k n[,m] 按照指定的字段范围排序
例: sort -t ":" -k 3,3 /etc/passwd
Shell编程之流程控制和条件判断
按照文件类型判断
-d 是否存在并且是否是目录
-e 是否存在
-f 是否存在并且是否是普通文件
-L 是否存在并且是否是链接符号
-s 当file存在文件大小大于0时返回真
按照文件权限判断
-r 是否存在并且是否拥有读权限
-w 是否存在并且是否拥有写权限
-x 是否存在并且是否拥有执行权限
-u 是否存在并且是否拥有SUID权限
-g 是否存在并且是否拥有SGID权限
-k 是否存在并且是否拥有Sbit权限
两个文件之间的比较
文件1 -nt 文件2 文件1的修改时间是否比文件2新,如果新则为真
文件1 -ot 文件2 文件1的修改时间是否比文件2旧,如果旧则为真
文件1 -ef 文件2 文件1是否和文件2的Inode号一致,可以理解为两个文件是否为同一个文件。是判断硬链接很好的方法。
两个整数之间的比较
-eq 是否相等
-nq 不相等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
字符串判断
-z 字符串 判断字符串是否为空,为空返回真
-n 字符串 判断字符串是否非空,非空为真
字串1 == 字串2
字串1 != 字串2
多重条件判断
判断1 -a 判断2 逻辑与
判断1 -o 判断2 逻辑或
! 逻辑非,使原始的判断式取反
流程控制语句
if [ 条件判断式 ];then
...
fi
if [ 条件判断式 ]
then
...
fi
if [ 条件判断式 ];then
...
else
...
fi
if [ 条件判断式1 ];then
...
elif [ 条件判断式2 ];then
...
else
...
fi
case $变量名 in
"值1")
...
;;
"值2")
...
;;
esac
for 变量 in 值1 值2 值3
do
...
done
for ((初始值;循环控制条件;变量变化))
do
...
done
while [ 条件判断式 ]
do
...
done
until [ 条件判断式 ]
do
...
done
附录:
查看文件大小的命令
ls -lht (-t 按时间进行文件的排序 -l列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。)
du -sh * (-s 就是summary, 显示该目录占用空间的总和)
w命令查看所有登录的pts
pkill -kill -t pts/0杀掉pts/0这个登录端