linux常用命令
- 一、linux目录结构
- 二、提示行符号
- 三、常用命令
-
- 1.处理目录常用命令
- 2.文件内容查看常用命令
- 3.文件查找常用命令
- 4压缩命令
- 5.其他命令
- 四、通配符
- 五、文件权限
-
- 1.改变文件权限
- 2.改变文件所有权
- 3.文件连接(软连接相当于win的快捷方式)(硬链接)
- 六、输出重定向和管道
-
- 1.输出重定向
- 2.管道
- 七、进程管理
-
- 1.查进程
- 2.杀进程
一、linux目录结构
目录结构部分引用自:https://www.runoob.com/linux/linux-system-contents.html
[[email protected]_0_16_centos home]# ls /
bin(经常使用的命令) boot(启动时的核心文件) dev(Linux的外部设备) etc(配置文件)
home(用户主目录) lib(共享库) lib64() lost+found() media(光驱,U盘设备...)
mnt opt proc(虚拟目录,内存映射) root(管理员目录) run sbin(系统管理员使用的系统管理程序)
srv sys() tmp(临时文件) usr(类似于windows下的program files目录) var

/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
这个目录是用来存放一些临时文件的。
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:
内核源代码默认的放置目录。
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
二、提示行符号
1.Linux运行页面有一个输入提示行,命令以一个美元符号"$"作为提示符,表示用户可以输入命令了如:
[[email protected]_0_16_centos home]$
如果正在以root身份执行命令,那么shell提示符将变成"#"如:
[[email protected]_0_16_centos home]#
三、常用命令
1.处理目录常用命令
-
ls: 列出目录
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
- cd:切换目录
-
pwd:显示目前的目录
-P :显示出确实的路径,而非使用连结 (link) 路径。
-
mkdir:创建一个新的目录
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
-
rmdir:删除一个空的目录
-p :连同上一级『空的』目录也一起删除
- cp: 复制文件或目录
- touch : 创建一个空白文件
选项与参数:[[email protected] ~]# cp [-adfilprsu] 来源档(source) 目标档(destination) [[email protected] ~]# cp [options] source1 source2 source3 .... directory
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用) -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身; -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次; -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身; -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用); -r:递归持续复制,用於目录的复制行为;(常用) -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件; -u:若 destination 比 source 旧才升级 destination !
- rm: 移除文件或目录
rm [-fir] 文件或目录
选项与参数 -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息; -i :互动模式,在删除前会询问使用者是否动作 -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
-
mv: 移动文件与目录,或修改文件与目录的名称
语法:
[[email protected] ~]# mv [-fiu] source destination [[email protected] ~]# mv [options] source1 source2 source3 .... directory
选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
-
ln(link)
语法:ln -s [源文件] [目标文件] (硬链接则不需要-s选项)
描述:创建软链接文件
常用shell命令一、linux目录结构二、提示行符号三、常用命令四、通配符五、文件权限六、输出重定向和管道七、进程管理 软链接特点:权限是所有人都可以访问,并且软连接文件指向源文件。
软链接就像windows系统中的快捷方式一样,特点也都类似。
硬链接:类似copy,硬链接大小和源文件一样,并且是同步更新的。
另外:硬链接不能跨文件系统分区,而软连接可以常用shell命令一、linux目录结构二、提示行符号三、常用命令四、通配符五、文件权限六、输出重定向和管道七、进程管理
2.文件内容查看常用命令
Linux系统中使用以下命令来查看文件的内容:
-
cat 由第一行开始显示文件内容
-n 显示文件行号
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
-
tail 只看尾巴几行
tail -f 实时查看日志文件 tail -f 日志文件log
tail - 100f 实时查看日志文件 后一百行
tail -f -n 100 catalina.out linux查看日志后100行
- 你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。
3.文件查找常用命令
-
grep:查找文件内容
grep [option] pattern [file…]
在文件t.sh中查找包含do的行
[[email protected]_0_16_centos baidu]# grep do t.sh do done
-
find: 在指定范围内找到文件
find [option] [path] [expression]
find [搜索范围路径] -name 【文件名称】(根据文件名查找)
匹配任意字符 *常用shell命令一、linux目录结构二、提示行符号三、常用命令四、通配符五、文件权限六、输出重定向和管道七、进程管理 匹配指定字符 ?常用shell命令一、linux目录结构二、提示行符号三、常用命令四、通配符五、文件权限六、输出重定向和管道七、进程管理 常用shell命令一、linux目录结构二、提示行符号三、常用命令四、通配符五、文件权限六、输出重定向和管道七、进程管理 find [搜索范围路径] -size [(±)文件大小] (根据文件大小查找,大于+ 小于-)
find [搜索范围路径] -user(文件的所有者)
find [时间查找] [以天为单位]
[以天为单位] 1 ctime、atime、mtime
[以分钟为单位] 2 cmin、amin、mmin
。。。。。
常用shell命令一、linux目录结构二、提示行符号三、常用命令四、通配符五、文件权限六、输出重定向和管道七、进程管理 描述:查找任何文件或目录(所有)
例如:
[[email protected]_0_16_centos baidu]# find /usr/bin/ -name zip -print /usr/bin/zip
命令:which
语法:which [命令名称]
描述:查看命令所在的目录位置
在linux里面一般只有两种命令,第一种是所有用户都可以使用,第二种则是只允许管理员使用,还有一个命令叫whereis,和which使用类似
比如: rm命令,其实我们可以使用 which rm查看其命令内容:
常用shell命令一、linux目录结构二、提示行符号三、常用命令四、通配符五、文件权限六、输出重定向和管道七、进程管理
alias就是别名的意思,说明我们使用的rm命令在默认的情况下加了 -i选项,意思是在删除的时候进行询问是否需要删除,那么添加""就使用真正的rm命令而不是别名,直接就可以删除不需要提示询问。
find的连接执行符号:
find … -exec [执行命令] {} ;
注意:“{}“表示find命令查找的结果,而”"表示转义符
命令:locate
语法:locate [文件名称]
描述:查找文件,根据linux数据库内部的索引(updatedb命令,可以手工更新updatedb数据库,一般和locate配合使用)

注意:locate的查找速度非常快,比find查找快很多,原因是locate查找的是linux系统构建的文件数据库的索引值,所以速度非常快,但是有的时候新创建的文件使用locate命令查找不到,原因是这个文件的索引没有马上更新到linux系统文件数据库里
4压缩命令
命令:gzip
语法:gzip [文件名称]
描述:压缩的时候不保留原文件,并且只能压缩文件不能压缩目录
命令:gunzip
语法:gunzip [已压缩的文件]
描述:解压缩文件,不不保留源文件
命令:tar
语法:tar [zcvf] [zxvf] [打包文件名.tar.gz] [源文件]
-c 产生tar打包文件(必选)
-x 产生的解压缩文件(必选)
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
描述:打包目录 生成的后缀名 .tar.gz,或者进行解压
最后配置加-C 表示文件解压后存放的路径
file命令可以查看任何文件的类型
命令:zip
语法:zip 选项[-r] [压缩后文件名称] [源文件]
描述:zip的格式是windows和linux通用的格式,可以压缩文件和目录,压缩目录时需要选项-r。
命令:unzip
语法:unzip [解压缩的文件]
描述:进行解压缩
最后配置加-d 表示文件解压后存放的路径
5.其他命令
过滤:grep,可以将指定内容进行过滤然后输出。
管道:
将一个命令的输出传送给另一个命令,作为另外一个命令的输入。管道可以连接N个命令。
ls -l /etc | more (表示将ls -l /etc的输出,当做more命令的输入,即more命令浏览的内容为前面命令的输出结果)
ls -l /etc | grep init(表示将ls -l /etc的输出结果进行过滤,显示为init的结果)
ls -l /etc | grep init | wc -l (最后进行统计显示的个数)
四、通配符
shell有一套被称作通配符的符号"*","?","[ ]", “-” 这些通配符可以搜索并匹配文件的一部分,从而大大简化输入命令
- “*”:用于匹配文件名中任意长度的字符串,"?"用于匹配文件名中任意的一个字符
[[email protected]_0_16_centos baidu]# ls shell test.log t.sh [[email protected]_0_16_centos baidu]# ls *.log test.log
- “[]”:用于匹配所有方括号中出现的字符
[email protected]_0_16_centos baidu]# ls t[ab] ta tb
- “-”:用于指定一个字符集的范围
[email protected]_0_16_centos baidu]# ls t[a-c] ta tb tc
五、文件权限
1.改变文件权限
命令:chmod
语法:chmod [{ugo}{±=}{rwx}] [文件或目录]
chmod [mode=421] [文件目录]
描述:改变文件或目录的权限
形如:chmod g+w filename
形如:chmod 761 filename
问题示例:新建一个新目录,下面一个新文件,尝试用普通用户去删除新目录下的新文件。
1 尝试修改:新文件的读写权限设置为 777,进行删除文件操作
2 尝试修改:新目录的读写权限设置为 777,进行删除文件操作
文件的rwx权限:
r:可以执行catch、more等读操作。
w:修改文件的内容等写操作,但是不代表你可以把这个文件删除。
x:对文件进行执行操作。
目录的rwx权限:
r:可读操作,可以列出目录的内容,比如ls命令。
w:表示可以在目录下创建或删除文件的权限。
x:表示可以进入这个目录(基本上所以的目录都会有rx权限)。
所以:删除文件的权限,是拥有你当前文件所在的目录的写权限。
2.改变文件所有权
命令:chown
语法:chown user 文件
描述:改变文件的所有者
示例:chown newuser t1.sh
useradd username 添加用户
passwd username 为用户设置密码
命令:chgrp
语法:chgrp group 文件
描述:改变文件的所属组
示例:chgrp adm t1.sh
查看系统默认的权限 :umask -S (umask查看权限掩码值022 使用777-022得到真实权限)
3.文件连接(软连接相当于win的快捷方式)(硬链接)
命令:ln(link)
语法:ln -s [源文件] [目标文件] (硬链接则不需要-s选项)
描述:创建软链接文件
软链接特点:权限是所有人都可以访问,并且软连接文件指向源文件。
软链接就像windows系统中的快捷方式一样,特点也都类似。
硬链接:类似copy,硬链接大小和源文件一样,并且是同步更新的。
另外:硬链接不能跨文件系统分区,而软连接可以。
六、输出重定向和管道
1.输出重定向
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
重定向命令列表如下:
命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
2.管道
过滤:grep,可以将指定内容进行过滤然后输出。
将一个命令的输出传送给另一个命令,作为另外一个命令的输入。管道可以连接N个命令。
ls -l /etc | more (表示将ls -l /etc的输出,当做more命令的输入,即more命令浏览的内容为前面命令的输出结果)
ls -l /etc | grep init(表示将ls -l /etc的输出结果进行过滤,显示为init的结果)
ls -l /etc | grep init | wc -l (最后进行统计显示的个数)
七、进程管理
1.查进程
ps命令查找与进程相关的PID号:
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat
ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。
2.杀进程
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME