我在学习的过程中遇到了很多命令不可用的情况,经过找资料发现,是因为脚本没有被安装,这里就可以通过yum
命令进行安装.
例如:不能使用zip
和unzip
[root@localhost tmp]# zip aaa.zip aaa
-bash: zip: command not found
[root@localhost tmp]# yum -y install unzip zip
[root@localhost tmp]# locate redis
-bash: locate: command not found
[root@localhost tmp]# yum -y install mlocate
同时可以通过>
符号将内容写入文件,主要作用是将命令的结果写入文件
[root@localhost tmp]# ls > abc
[root@localhost tmp]# echo "123" > abc
这里可以将ls的结果写入abc文件中.
[root@localhost ~]#
root
当前登录用户
localhost
主机名
~
当前所在目录(~表示家目录)
#
超级管理员的提示符
$
普通用户的提示符
命令 [选项] [参数]
注意:个别命令使用不遵循此格式;当有多个选项时,可以写在一起;简化选项与完整选项-a
等于--all
.
ls [选项] [文件或目录]
选项:
[root@localhost /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@localhost /]# ls -l
total 60
lrwxrwxrwx. 1 root root 7 Aug 18 2017 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Sep 12 2017 boot
drwxr-xr-x 19 root root 2960 Feb 11 20:16 dev
drwxr-xr-x. 82 root root 4096 Feb 12 04:16 etc
drwxr-xr-x. 3 root root 4096 Feb 11 20:13 home
lrwxrwxrwx. 1 root root 7 Aug 18 2017 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Aug 18 2017 lib64 -> usr/lib64
drwx------. 2 root root 16384 Aug 18 2017 lost+found
drwxr-xr-x. 2 root root 4096 Nov 5 2016 media
drwxr-xr-x. 2 root root 4096 Nov 5 2016 mnt
drwxr-xr-x. 2 root root 4096 Nov 5 2016 opt
dr-xr-xr-x 75 root root 0 Feb 11 20:16 proc
dr-xr-x---. 6 root root 4096 Sep 5 2017 root
drwxr-xr-x 21 root root 600 Feb 21 10:32 run
lrwxrwxrwx. 1 root root 8 Aug 18 2017 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 Nov 5 2016 srv
dr-xr-xr-x 13 root root 0 Feb 12 04:16 sys
drwxrwxrwt. 10 root root 4096 Mar 11 04:28 tmp
drwxr-xr-x. 13 root root 4096 Aug 18 2017 usr
drwxr-xr-x. 19 root root 4096 Feb 12 04:16 var
-rw-r–r--
-
表示文件 d
表示目录 l
表示软链接文件)切换用户su 用户名
查看系统进程ps
mkdir -p [目录名]
-p
表示递归创建 make directories
cd [目录]
相对路径:参照当前所在目录,进行查找,如:
[root@imooc ~]# cd ../usr/local/src/
绝对路径:从根目录开始指定,一级一级递归查找.在任何目录下,都能进入指定位置,如:
[root@imooc ~]# cd /etc/
pwd :print working directory
注意1:根目录下的bin和sbin,usr目录下的bin和sbin目录,这四个目录都是用来保存系统命令的,但是bin目录下的是所有用户都能访问的命令,但是sbin目录下的是只有管理员才能访问的命令.
注意2:proc和sys目录不能直接操作,这两个目录保存的是内存的过载点.
rmdir [目录名]
rm -rf [文件或目录]
选项:
cp [选项] [原文件或目录] [目标目录]
选项:
mv [原文件或目录] [目标目录]
如果将文件剪切到相同目录,名字改变,就是改名命令
touch 创建空文件
cp 源文件名 新文件名
cat 文件路径
more 文件路径
head -n 数字 文件名
tail -n 数字 文件名
ln -s [原文件] [目标文件]
功能描述:生成链接文件
选项: -s
创建软链接
注意:直接ln也可以使用,创建的是硬链接
硬链接特征:
软链接特征:
注意:创建软链接的时候一定要写绝对路径
文件修改
vi [文件名]
打开并编辑echo [内容] >> [文件名]
,将内容直接写入文件locate
命令比find命令搜索速度快
格式:locate [文件名]
在后台数据库中按文件名搜索,搜索速度最快
locate
命令所搜索的后台数据库是/var/lib/mlocate
但是这个数据库并非实时更新的,如果是新建的文件,会出现查找不到的情况,说明没有更新后台数据库,可以通过updatedb
命令更新
缺点:只能按照文件名搜索
搜索规则:根据/etc/updatedb.conf中的配置进行搜索
whereis [选项] [命令名]
主要用于搜索命令所在路径及帮助文档所在位置
选项:
这里另外提一句,想要知道当前用户是哪个可以用whoami
命令
[root@localhost ~]# whoami
root
想要知道命令是做什么的可以用whatis
命令
[root@localhost ~]# whatis ls
ls (1) - list directory contents
which [文件名]
搜索命令所在路径及别名
与whereis
的主要区别是显示路径的同时还会显示别名
注意:whereis
和which
命令都无法找到shell自带的命令
配置PATH
echo $PATH
与windows中的path环境变量类似.自己定义的脚本也需要添加到PATH
find [搜索范围] [搜索条件]
主要用于搜索文件
示例:find / -name install.log
实际操作应避免这么写,避免大范围搜索,会非常消耗系统资源
find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配.
Linux中的通配符
*
匹配任意内容?
匹配任意一个字符[]
匹配任意个亿中括号内的字符搜索条件
-iname
搜索条件不区分大小写-user
按照所有者搜索-nouser
查找没有所有者的文件find /root -iname install.log
find /root -user root
find /root -nouser
-mtime
文件访问时间-ctime
改变文件属性-mtime
修改文件内容find /var/log/ -mtime +10
#-mtime +10 查找10天前修改的文件
#-mtime -10 查找10天内修改的文件
#-mtime 10 查找10天当天修改的文件
-size
按照文件大小 (这里k需要小写,M是大写)-inum
按照i节点find . -size 25k
# -25k 小于25KB的文件
# 25k 等于25KB的文件
# +25k 大于25KB的文件
find . -inum 262422
# 查找i节点是262422的文件
# 这里的.代表当前目录
-a
and 逻辑与,两个条件都满足-o
or 逻辑或,两个条件满足一个即可-exec
/-ok
[命令] {}\;
命令,对搜索结果执行命令注意 这里加的命令必须是查询出来的文件能够执行的命令
find /etc -size +20k -a -size -50k
这条命令的意思是查找etc目录下,大于20KB且小于50KB的文件
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
这条命令代表查找etc目录下,大于20KB且小于50KB的文件并且显示详细信息
grep [选项] 字符串 文件名1 文件名2
在文件中搜索匹配符合条件的字符串
选项
-i
忽略大小写-v
排除指定字符串这个功能异常强大,同时还可以和管道结合使用
这里先简单说一下管道:
管道就是|
这个操作符,可以同时执行多个命令
命令1 | 命令2 | 命令3
:同时命令1的结果是命令2的输入,依次类推.
例如:head a.txt | grep java | grep tomcat
这个命令是在前十行中包含java和tomcat的字符串
find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配.
grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配.
man 命令
获取指定命令的帮助
示例:man ls
查看ls的帮助
注意:进入man之后,可以输入/ 查找内容
查找到对应内容,然后按N
查找下一个.按shift+N
查找上一个.按q
退出.
man的级别
man -f 命令
查看命令用友哪个级别的帮助
也可以使用whatis 命令
,可以查看有几个等级的帮助文档
示例:man 5 passwd
man -k 命令
查看和命令相关的所有帮助
相当于apropos 命令
示例:apropos passwd
命令 --help
获取命令选项的帮助
help shell内部命令
获取shell内部命令的帮助
示例:
whereis cd
#确定是否是shell内部命令
help cd
#获取内部命令帮助
info 命令
-回车
:进入子帮助页面(带有*号标记)-u
:进入上层页面-n
:进入下一个帮助小节-p
:进入上一个帮助小节-q
:退出.zip
.gz
.bz2
.zip格式压缩
zip 压缩文件名 源文件
压缩文件
zip -r 压缩文件名 源目录
压缩文件夹
注意:这里的zip格式是可以与windows中的zip通用的
unzip 压缩文件
解压缩文件
.gz格式压缩
gzip 源文件
压缩为.gz格式的压缩文件,压缩完成源文件会消失
gzip -c 源文件 > 压缩文件
压缩为.gz格式,源文件保留
gzip -r 目录
压缩目录下所有的子文件,但是不能压缩目录
gzip -d 压缩文件
解压缩文件
gunzip 压缩文件
解压缩文件
gunzip -r 包含压缩文件的目录
将目录中的压缩文件全部解压
.bz2格式压缩
bzip2 源文件
压缩为.bz2格式,不保留源文件
bzip2 -k 源文件
压缩之后保留源文件
bzip2命令不能压缩目录
bzip2 -d 压缩文件
解压缩,-k保留压缩文件
bunzip2 压缩文件
解压缩,-k保留压缩文件
tar.gz
tar.bz2
打包命令tar
tar -cvf 打包文件名 源文件
选项:
-c
打包-v
显示过程-f
指定打包后的文件名-t
查看压缩文件内容,但不解压缩示例:tar -cvf abc.tar abc
解打包命令
tar -xvf 打包文件名
选项:
-x
解打包-v
显示过程-f
指定打包后的文件名-C
指定解打包后的文件位置.tar.gz压缩格式
其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式.同时linux也支持将这两步合并完成的操作
tar -zcvf 压缩包名.tar.gz 源文件
压缩为.tar.gz文件
tar -zxvf 压缩包名.tar.gz
解压缩.tar.gz文件
选项:-z
压缩或解压缩为tar.gz文件
.tar.bz2压缩格式
tar -jcvf 压缩包名.tar.bz2 源文件
压缩为.tar.bz2文件
tar -jxvf 压缩包名.tar.bz2
解压缩.tar.bz2文件
选项:-j
压缩或解压缩为tar.bz2文件
查看压缩包中的文件内容(这里起关键的就是-t
,只查看不解压)
tar -ztvf test.tar.gz
解压缩到自定义的文件位置(-C关键字是设置解压缩位置)
tar -zxvf test.tar.gz -C /tmp/
同时压缩多个文件,只需要将多个文件放在后边,空格隔开
tar -zcvf test.tar.gz a b c
shutdown [选项] 时间
选项:
-c
取消前一个关机命令-h
关机-r
重启这个命令执行之后,就不能进行其他操作,这个时候可以在命令后边加一个&,表示将这条命令加入后天执行.
shutdown -r 05:30 &
不建议使用
runlevle
查看系统运行级别
[root@localhost tmp]# runlevel
N 3
# N代表之前的运行级别是关机,3代表当前的运行级别是3
# 如果是从图形界面切换到多用户这里会显示为"5 3"
cat /etc/inittab
查看系统默认运行级别
cat /etc/inittab
....
id:3:initdefault:
....
logout
这里需要注意,每次用xshell这种远程工具操作完后,都需要执行这条命令退出登录,切记不要直接关掉xshell,否则每次登录都相当于是新的用户操作,多次操作后会超出linux支持的用户数,无法登陆,只能重启服务器.
mount
查询系统中已经挂载的设备
mount -a
依据配置文件/etc/fstab的内容,自动挂载
mount [-t 文件系统] [-o 特殊选项] 设备 文件名 挂载点
选项:
-t 文件系统
:加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统-o 特殊选项
:可以指定挂载的额外选项查看登录用户信息
w 用户名
命令输出:
who 用户名
和w
作用相同
命令输出:
查询当前登录和过去登录的用户信息
last
last命令默认是读取/var/log/wtmp文件数据
命令输出
查询所有用户的最后一次登录时间
lastlog
lastlog命令默认是读取/var/log/lastlog文件内容
命令输出:
Shell是一个命令行解释器,同时也是一门功能强大的编程语言
其中主要语法类型有Bourne Shell和C Shell两种
Bourne包括sh,ksh,Bash,psh,zsh
C包括:csh,tsch
1.echo输出命令
echo [选项] [输出内容]
选项:
-e
支持反斜线控制的字符转换