Linux下的可执行文件
在windows中,可以通过后缀名判断是否是可执行文件,比如.exe,.bat等是可执行文件,但是在Linux下呢?
Linux下不能简单根据文件后缀判断是否可执行。
linux下判断一个文件是否可执行,关键看是否有可执行权限,比如:
在终端中输入:ls -l ,会列出类似于下的列表:
-rwxrwxr-x 1 linuxidc linuxidc 48141 Jul 17 02:50 redis-trib.rb*
-rw-rw-r-- 1 linuxidc linuxidc 2163 Aug 5 23:34 release.c
drwxrwxr-x 2 linuxidc linuxidc 4096 Jul 22 20:03 Documents
以下面输出为例,下划线区域说明了文件的权限,包括可读、可写、可执行等等。
【-】【rwx】【rwx】【r-x】 1 linuxidc linuxidc 2324109 Aug 5 23:35 redis-cli*
10个字符确定不同用户能对文件干什么:
第一个字符代表文件(-)、目录(d),链接(l)
其余字符每3个一组(rwx),读(r)、写(w)、执行(x),分别说明文件所有者(User)、文件所有者所在的用户组其他用户(Group)、其他组用户(Others)对该文件拥有的权限。
第一组rwx:文件所有者的权限 是读、写和执行
第二组rwx:与文件所有者同一组的用户的权限是读、写和执行
第三组r-x:不与文件所有者同组的其他用户的权限是读和执行,不能写
另外有部分文件也可以通过后缀名判断,比如RedHat中,凡是.rpm格式的都能在redhat中执行,debian中.deb格式的在debianlinux中能直接执行。
如何查找可执行文件使用
ls -F|grep "*"
Ubuntu下也可以使用
ll | grep "*"
ll不是linux下一个基本的命令,可以认为是ls -l的一个别名。
ls -F可以把文件按照类型归类,并且在末尾加上/ *等符号标识。
-F, --classify append indicator (one of */=>@|) to entries,
-F和--classify选项可以对列表查看文件添加后缀。普通文件不添加后缀,对可执行文件添加*号,为目录添加/号,为符号链接添加@号。
| 管道输出,grep "*" 从中挑出以"*"结尾的行并输出。
类似的,
使用ls -F|grep "/" 可以查找目录
使用ls -F|grep "@" 可以查找软连接
另外,使用ls -color 可以标识出可执行文件:
实例输出: