Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux的发行版说简单点就是将Linux内核与应用软件做一个打包,市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS
linux系统目录结构
系统启动必须:
指令集合:
外部文件管理:
临时文件:
账户:
运行过程中要用:
扩展用的:
shutdown 会给系统计划一个时间关机。它可以被用于停止、关机、重启机器。shutdown 会给系统计划一个时间关机。它可以被用于停止、关机、重启机器。
# shutdown -P now ### 关闭机器
# shutdown -H now ### 停止机器
# shutdown -r09:35 ### 在 09:35am 重启机器
要取消即将进行的关机,只要输入下面的命令:
# shutdown -c
halt 命令通知硬件来停止所有的 CPU 功能,但是仍然保持通电。你可以用它使系统处于低层维护状态。注意在有些情况会它会完全关闭系统。
# halt ### 停止机器
# halt -p ### 关闭机器
# halt --reboot ### 重启机器
poweroff 会发送一个 ACPI 信号来通知系统关机。
# poweroff ### 关闭机器
# poweroff --halt ### 停止机器
# poweroff --reboot ### 重启机器
reboot 命令 reboot 通知系统重启。
# reboot ### 重启机器
# reboot --halt ### 停止机器
# reboot -p ### 关闭机器
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
例1:
# groupadd group1 ##此命令向系统中增加了一个新组group1
例2:
# groupadd -g 1003 group2 ##此命令向系统中增加了一个新组group2,同时指定新组的组标识号是1003
可以通过: [root@localhost /]# cat /etc/group 查看用户group信息,例如:
chj:x:1000:
group1:x:1001:
group2:x:1003:
groupdel 用户组
例:
# groupdel group1 ##此命令从系统中删除组group1。
groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
例1:
# groupmod –g 10000 -n group3 group2 ##此命令将组group2的标识号改为10000,组名修改为group3。
useradd 选项 用户名
参数说明:
选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名:
指定新账号的登录名。
例1:
# groupadd group1 ##此命令向系统中增加了一个新组group1
例2:
# groupadd -g 1003 group2
##此命令向系统中增加了一个新组group2,同时指定新组的组标识号是1003
这里可能新建组:#groupadd group1及groupadd group2
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
[root@localhost /]# cat /etc/passwd
hankin:x:1001:1003::/usr/hankin:/bin/bash
hankin2:x:1002:1001::/home/hankin2:/bin/sh
设置账号密码:
passwd hankin 给已创建的用户hankin 设置密码
示例:# passwd hankin
Changing password for user hankin.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
说明:
新创建的用户会在/home下创建一个用户目录hankin
usermod --help 修改用户这个命令的相关参数
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
例如:
# userdel -r hankin2 ##删除用户hankin2
(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
例如:
# usermod -s /bin/sh -d /home/p -g group2 hankin
##将用户peter的登录Shell修改为sh,主目录改为/home/p,用户组改为group2。
结果:hankin:x:1001:1004::/home/p:/bin/sh
用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。例如,假设当前用户是peter,则下面的命令修改该用户自己的口令:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
如果是超级用户,可以用下列形式指定任何用户的口令:
# passwd hankin
New password:*******
Re-enter new password:*******
为用户指定空口令时,执行下列形式的命令:
# passwd -d hankin
passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:
# passwd -l hankin
passwd: all authentication tokens updated successfully.
[root@localhost /]# passwd -l hankin
Locking password for user hankin.
passwd: Success
[root@localhost /]# passwd -u hankin
Unlocking password for user hankin.
passwd: Success
$ newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等
9.1、/etc/passwd文件
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。例子:# cat /etc/passwd
root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer administrator:/usr/spool/lp:
每一行记录对应着一个用户(其中bin/sys/adm/uucp/lp/nobody是伪用户),每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
9.2、/etc/group文件
用户组的所有信息都存放在/etc/group文件中。
例子:
root::0:root
bin::2:root,bin
sys::3:root,uucp
adm::4:root,adm
daemon::5:root,daemon
lp::7:root,lp
users::20:root,sam
此文件的格式类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:
组名:口令:组标识号:组内用户列表
1.1、文件的属性概貌。
第一个字符:代表这个文件的类型,是目录、文件,还是一个链接等等
1.2、文件的属主与属组
每一个文件,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
1)chgrp:更改文件属组
语法:chgrp [-R] 属组名 文件名
参数选项:
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2)chown:更改文件属主,也可以同时更改文件属组
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
进入 /root 目录(~)将install.log的拥有者改为bin这个账号:
例:chown root:root aa ##更改aa的属主与属组
3)chmod:更改文件9个属性
先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!
变更权限的指令chmod的语法是这样的:
chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么命令如下:
chmod +x aa ##更改aa的属性,加x权限
chmod 777 aa ##更改aa的属性,三组权限都设置成7
使用 man [命令] 来查看各个命令的使用文档,如 :man cp
ls: 列出目录 ---ll
cd:切换目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cp: 复制文件或目录 -----scp网络复制
rm: 移除文件或目录
mv: 移动文件与目录,或修改文件与目录的名称
3.1、硬连接
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
3.2、软连接
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
例:
$touch a #创建一个测试文件a
$ ln a b #创建a的一个硬连接文件b --echo 123 > a ##a,b的内容同时变为123
$ ln -s a c #创建a的一个符号连接文件c
$ ls -li # -i参数显示文件的inode节点信息
需要去下载相应的rpm格式的安装包xxxx.rpm
rpm [参数] rpm包
-i 安装
-U 更新(很少用)
-e 卸载
-v 显示安装信息
-h 显示安装进度
例:
rpm -ivh jdk-8u172-linux-x64.rpm 安装jdk8并显示安装进度和安装信息
rpm -qa|grep jdk查看jdk的安装包
rpm -e jdk1.8-1.8.0_221-fcs.x86_64 卸载jdk8 ,只适用于rpm包安装的软件
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
2.1、yum 语法
yum [options] [command] [package ...]
options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
command:要进行的操作。
package操作的对象。
例:
yum search jdk 搜索jdk安装包
yum install -y java-1.8.0-openjdk.x86_64 安装openjdk,-y表示安装过程中的询问自动选y
yum list installed |grep jdk 列出安装的jdk软件包
yum remove java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-headless.x86_64 卸载jdk
2.2、yum常用命令
1)列出所有可更新的软件清单命令:yum check-update
2)更新所有软件命令:yum update
3)仅安装指定的软件命令:yum install
4)仅更新指定的软件命令:yum update
5)列出所有可安裝的软件清单命令:yum list
6)删除软件包命令:yum remove
7)查找软件包 命令:yum search
8)清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
2.3、yum源
官方的yum源在国内访问效果不佳。需要改为国内比较好的阿里云或者网易的yum源
在/etc/yum..repos.d/下进行如下操作(请做好相应备份):
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo CentOS-Base.repo
重建缓存:
yum clean all
yum makecache
在Linux系统下,安装应用程序后,在安装目录之外,可能仍然会出现 “command not found ”。 要解决所有地方都能使用应用程序,就涉及到环境变量path的设置问题
3.1、配置环境变量
系统环境变量文件在/etc下的profile文件,我们可以用vi profile命令来编辑该文件,将变量添加进去
一般需要将安装文件的bin目录加入path中,可在profile中加入下面一行代码,如:
vim /etc/profile
# 末尾追加以下内容
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3.2、环境变量生效
source /etc/profile
shell语言是一门linux系统下的工具语言,主要用于写一些linux系统下的操作命令,实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。或者直接理解为shell命令是可以执行多个linux命令的脚本。Shell 种类众多,有以下种类(一般使用的 Bash,就是 Bourne Again Shell,它是大多数Linux 系统默认的 Shell):
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
shell并不复杂,有编程基础的话,简单入门两三个小时就可以入门,主要是把一些重复操作的linux命令写成shell脚本来执行一下。以下列出shell常规的一些要素:
解释器
#!/bin/sh Bourne shell版本
#!/bin/bash Bourne Again Shell 版本
执行shell
chomd +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本 “./”表示当前目录下
#!/bin/bash ##声明bash脚本
##demo ##注释
echo $PATH ##打印PATH环境变量
name="Peter" ##定义变量name
echo $name ##打印name值
echo "I am ${name}'s friend" ##字符串拼接
echo ""
name2="I am ${name}'s good friend" ##字符串拼接
echo $name2
echo ""
names=("Peter" "james" "deer") ##定义数组
echo ${names[@]} ##遍历数组
echo "I am ${names[1]}'s friend" ##第二个元素
echo "I have ${#names[@]} friends" ##数组长度
echo ""
for var in ${names[@]}; ##循环数组
do
if test $var = 'Peter' ##字符串相等
then
echo "I am Peter"
else
echo "I am ${var}'s friend"
fi
done
echo ""
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; ##查找是否有ssh服务
then echo "ssh service open";
fi
echo ""
echo "sh arg: $0 $1" ##sh的传参
重定向:
1)test 'aa' -eq "bb" > out ##命令输出到 out文件,报错信息并不会进入out
2)test 'aa' -eq "bb" > out 2>&1 ##将stderr合并到stdout,则报错信息进入了out
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
ls,ll, wget, curl, history
mkdir 创建文件夹
mkdir dirname 直接跟文件夹名,可在当前目录下创建文件夹
mkdir /opt/lamp/dirname 可跟路径
mkdir -p /opt/lam/dirname 假如lam不存在,需要用-p才可以创建该文件夹
touch 新建文件
touch dilename 可直接跟文件名在当前目录下创建新的文件
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线; +<数字>:从指定数字的行开始显示。
按Space键:显示文本的下一屏内容。
按Enier键:只显示文本的下一行内容。
按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键:显示帮助屏,该屏上有相关的帮助信息。
按B键:显示上一屏内容。
按Q键:退出rnore命令。
--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c或——bytes=:输出文件尾部的N(N为整数)个字节内容;
-f或;--follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“--retry"连用时功能相同;
-n或——line=:输出文件的尾部N(N位数字)行内容。
--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;
一般tail命令最常用的-n和-f,例:
tail filename 读取filename最后10行内容
tail -f filename 实时动态读取filename最后10行内容
tail -20f filename 实时动态读取filename最后20行内容
cat和less及more指令相似,cat是一次性读取所有内容,文件内容较多时速度较慢。less与more的区别在于:less可以前后翻页查看,more只能向前翻页查看。
tail则用于实时获取log信息,从后向前读取内容
上述四种命令均可跟grep搭配使用cat/less/tail |grep mysql
du -sh * 显示当前目录下所有文件的大小
du -sh filename 显示该文件大小
du -sh 显示当前目录所占空间大小
-s或 仅显示总计,只列出最后加总的值。
-h或 以K,M,G为单位,提高信息的可读性。
df 显示磁盘占用信息
直接df默认一k为单位
df -lh 显示本地系统的占用信息,以K,M,G为单位
vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。
Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。
默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:
输出重定向
who > bbb.txt 将aaa的内容写入bbb中,覆盖写入
cat bbb.txt >> ccc.txt 讲aaa的内容追加写入bbb中,不覆盖原来内容
> bbb.txt 将bbb清空
输入重定向
grep 05:37:43.730 < web.2019-07-22.0.log
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。
一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。
同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
重定向深入讲解
一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。
netstat -nlpt|grep 80 查看该端口号是否被占用
free -m //查看LINUX内存剩余容量
ps可以查看具体的进程信息,一般与管道符连接其他命令使用,如:grep
ps常用参数-ef/-aux,一般最常用还是-ef,例:ps -ef|grep mysql 查询mysql进程
top也可查看进程信息,而且是动态显示
whoami 查看当前登陆用户
who 查看多少用户在使用系统
date查看系统时间,可跟时间格式使用
cal查看日历,可跟年份,查看指定的年份
chkconfig --list #查看系统服务启动
chkconfig iptables on #开机启动该服务
chkconfig iptables off #开机不启动该服务
service iptables start #启动该服务
service iptables restart #重启启该服务
ps -ef|grep mysql|grep -v grep|awk '{print $2}'ps -ef|grep mysql 是查询mysql服务的进程
|后的grep -v grep 是匹配不包含grep的行
awk是取查询结果的第几列,awk '{print $2}'则是取第二列的值
grep 无参数则显示匹配的行
-c 显示匹配的行数
-v 显示不匹配的行
kill最常用的参数是-9,用法:kill -9 进程号 即可强制杀掉该进程
统计命令 wc
常用的参数是 -l 用法:wc -l ,例:
ps -ef|grep mysql|wc -l 统计查询出的mysql进程的行数
查找命令 find/locate/whereis/which
find -name 后跟文件名,可查看文件所在目录,可跟user,查看属于user的文件
find -name filename 查找filename所在目录
find -name name* 查找开头为name的文件所在目录
find -name *name 查找结尾为name的文件所在目录
find -name *name* 查找包含name字符串的文件所在目录
find -user faith 查看用户faith的文件
locate用法与find基本相似,只是locate搜索速度较快些,locate一般系统不会自带,需要安装,可用yum安装
whereis只能搜索程序名
which则是只查询path中的环境变量
gzip和gunzip一般可用参数是-r,例:
gzip test.txt 压缩文件
gzip -r test 压缩所有test下的子文件
gunzip test.gz 解压文件
zip和unzip可用参数较多,例:
zip test 不跟参数直接使用
zip -r test 递归压缩test下所有文件
unzip test 不跟参数直接使用
unzip -n 解压时不覆盖已存在的文件
unzip -o 解压时覆盖已存在的文件
unzip -d 将文件解压到目录中去
tar使用的较为多些,用法也多,最常用的是zxcvf几个参数,例:
-c 创建新文档,就是代表压缩的意思
-x 解压文档
-f 使用归档文件
-z 使用gzip解压
-v 详细输出模式
最为常用的使用方法:
tar -zcvf test.tar test 将test压缩为test.tar并输出详细信息
tar -zxvf test.tar 将test.tar解压缩,并输出详细信息
crontab [-u user] 文件
crontab [-u user] {-r -e -l}
不加-u的话默认当前用户
-e:执行文字编辑器来设定时程表,内定的文字编辑器是vi。
-r:删除目前的时程表。
-l:列出目前的时程表。
crontab -e 就可以打开一个文件进行编辑
crontab文件的格式为“M H D m d cmd”,M为分钟1-59,H为小时1-24,D为天1-31,m为月1-12,d为周0-6(0为周日)。cmd代表要执行的程序,*代表每分钟都执行
* * * * * sh /opt/lampp/test.sh 表示每分钟执行一次test.sh这个脚本
*/5 * * * * sh /opt/lampp/test.sh 表示每5分钟执行一次test.sh这个脚本
30 21 * * * /usr/local/apache/bin/apachectl restart 表示每晚的21:30重启apache