常用Linux命令
常用目录
/bin: 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里; /etc: 存放系统管理和配置文件; /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示; /usr : 用于存放系统应用程序; /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里; /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息; /root: 超级用户(系统管理员)的主目录(特权阶级^o^); /sbin: 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等; /dev: 用于存放设备文件; /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统; /boot: 存放用于系统引导时使用的各种文件; /lib : 存放着和系统运行相关的库文件 ; /tmp: 用于存放各种临时文件,是公用的临时文件存储点; /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等; /lost+found: 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里。
目录切换命令
cd usr: 切换到该目录下usr目录 cd ..(或cd../): 切换到上一层目录 cd /: 切换到系统根目录 cd ~: 切换到用户主目录 cd -: 切换到上一个所在目录
目录的操作命令(增删改查)
mkdir 目录名称: 增加目录 ls或者ll(ll是ls -l的缩写,ll命令以看到该目录下的所有目录和文件的详细信息):查看目录信息 find 目录 参数: 寻找目录(查)
find / -name '*.cong' 在根目录中找所有cong 文件
find / -type l 根据文件类型查
find / -perm 777 根据权限查询
示例: 列出当前目录及子目录下所有文件和文件夹: find . 在/home目录下查找以.txt结尾的文件名:find /home -name "*.txt" 同上,但忽略大小写: find /home -iname "*.txt" 通配符:起到了模糊查询的作用, *表示匹配0个或者多个字符, ?:只能匹配任意一个字符, 提示:通配符和正则表达式没有关系
当前目录及子目录下查找所有以.txt和.pdf结尾的文件:find . \( -name "*.txt" -o -name "*.pdf" \)或find . -name "*.txt" -o -name "*.pdf"
mv 目录名称 新目录名称: 修改目录的名称(改) 注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作。mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。后面会介绍到mv命令的另一个用法。 mv 目录名称 目录的新位置: 移动目录的位置---剪切(改) 注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作。另外mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。 cp -r 目录名称 目录拷贝的目标位置: 拷贝目录(改),-r代表递归拷贝 注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归 rm [-rf] 目录: 删除目录(删) 注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆, 无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包
文件的操作命令(增删改查)
touch 文件名称: 文件的创建(增) cat/more/less/tail 文件名称 文件的查看(查) cat: 只能显示最后一屏内容 more: 可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看 less: 可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看 tail-10 : 查看文件的后10行,Ctrl+C结束 注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件, 会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控 文 件的变化 vim 文件: 修改文件的内容(改) vim编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用vim编辑修改文件的方式基本会使用就可以了。 在实际开发中,使用vim编辑器主要作用就是修改配置文件,下面是一般步骤: vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q! (输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。) rm -rf 文件: 删除文件(删) 同目录删除:熟记 rm -rf 文件 即可
压缩文件的操作命令
1)打包并压缩文件:
Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。 而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。 命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件 其中: z:调用gzip压缩命令进行压缩 c:打包文件 v:显示运行过程 f:指定文件名 比如:加入test目录下有三个文件分别是 :aaa.txt bbb.txt ccc.txt,如果我们要打包test目录并指定压缩后的压缩包名称为test.tar.gz可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt
或:tar -zcvf test.tar.gz /test/
zip打包及压缩
zip test[.zip 可选] *.txt -> test.zip
2)解压压缩包:
2)解压压缩包: 命令:tar [-xvf] 压缩文件 其中:x:代表解压 示例: 1 将/test下的test.tar.gz解压到当前目录下可以使用命令:tar -xvf test.tar.gz 2 将/test下的test.tar.gz解压到根目录/usr下:tar -xvf xxx.tar.gz -C /usr(- C代表指定解压的位置)
zip解压
unzip test.zip -> 获取解压缩及解包后的文件
unzip test.zip -d 路径 -> 解压缩及解包到指定路径
Linux的权限命令
操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。通过 ls -l
命令我们可以 查看某个目录下的文件或目录的权限
示例:在随意某个目录下ls -l
第一列的内容的信息解释如下:
下面将详细讲解文件的类型、Linux中权限以及文件有所有者、所在组、其它组具体是什么?
文件的类型:
- d: 代表目录
- -: 代表文件
- l: 代表链接(可以认为是window中的快捷方式)
Linux中权限分为以下几种:
- r:代表权限是可读,r也可以用数字4表示
- w:代表权限是可写,w也可以用数字2表示
- x:代表权限是可执行,x也可以用数字1表示
文件和目录权限的区别:
对文件和目录而言,读写执行表示不同的意义。
对于文件: | 权限名称 | 可执行操作 |
---|---|---|
r | 可以使用cat查看文件的内容 | |
w | 可以修改文件的内容 | |
x | 可以将其运行为二进制文件 |
对于目录: | 权限名称 | 可执行操作 |
---|---|---|
r | 可以查看目录下列表 | |
w | 可以创建和删除目录下文件 | |
x | 可以使用cd进入目录 |
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
-
所有者
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 。
-
文件所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组 用ls ‐ahl命令可以看到文件的所有组 也可以使用chgrp 组名 文件名来修改文件所在的组。
-
其它组
除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
> 我们再来看看如何修改文件/目录的权限。
修改文件/目录的权限的命令:chmod
示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,
其他用户只有读的权限
用户角色:
u:当前用户 g:同组用户 o:其他用户 a:所有用户
权限:r(4): 可读 w(2): 可写 x(1): 可执行 -(0): 没有权限
chmod a=rwx 1.txt , chmod a=- 1.txt ,chmod a= 1.txt, chmod 777 1.txt chmod 000 1.txt
不同用户不同权限: chmod u=r,g=w,r=rwx 1.txt , chmod 427 1.txt
管道及重定向
> 输出重定向,会清空文件原有内容 >> 追加输出重定向 > 会重写文件,如果文件里面有内容会覆盖。 > 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空。一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节) >> 这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件。 >> 追加文件,也就是如果文件里面有内容会把新内容追加到文件尾。 例如:echo "hello" >log.txt | 管道 将管道前的输出作为管道符后的输入
文本搜索工具grep
grep(搜索文件中的文本内容):文本搜索工具,它对文本文件逐行查看,按行搜索,搜索到就打印出来包含此模式的所有行。 grep 参数 模式 文件 例如:grep dev /etc/password 在/etc/password 中搜索含有dev的文本内容 参数:-n :显示匹配到的行号 grep -n PATH /.bash_profile -c :不打印匹配的行的内容,而是打印匹配的行数 -i :不区分大小写 -v :打印除匹配行之外的其他行
进程相关的命令
查看进程 ps -ef ps -aux 删除进程 kill -9 进程的pid
批量杀进程ps -ef | grep test | grep -v grep | awk '{print $2}' | xargs kill -9
其中:|
管道符,用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。ps
命令用来列出系统中当前运行的进程,ps -ef
显示所有进程信息,联通命令行。grep
命令用于过滤/搜索特定字符,grep test
在这里为搜索过滤所有含有‘test’名称的进程grep -v grep
-v 显示不包含匹配文本的所有行,在这里为筛选出所有不包含grep
名称的进程,对上一步的进程再做一次筛选(因为ps -ef
列出了所有的命令,包括命令行)awk
在文件或字符串中基于指定规则浏览和抽取信息;把文件逐行读入,以空格为默认分隔符将每行切片,然后再进行后序处理。这里利用awk '{print $2}'
将上一步中过滤得到的进程进行打印,$2
表示打印第二个域(PID,进程号)$0
表示所有域,$1
表示第一个域,$n
表示第n个域。xargs
命令是给命令传递参数的过滤器,善于把标准数据数据转换成命令行参数。在这里则是将获取前一个命令的标准输出然后转换成命令行参数传递给后面的kill
命令。kill -9
强制关闭进程。
链接:
软链接: 好比快捷方式,注意点:删除原始文件软链接无效,创建软链接不会对硬链接数加1,可以目录创建软链接. 非常重要的注意点:如果软链接没有和原始文件在同一个目录里面,那么原始文件需要使用绝对路径
软链接的使用:
ln -s /var/log/messages msg 给 /var/log/messages 建立一个叫msg 的软链接
硬链接: 好比一个人可以有多个名字,删除原始文件不会对硬链接文件产生影响,使用硬链接文件依然可以获取文件数据,注意点: 不能给目录创建硬链接,创建硬链接只能给文件创建,创建硬链接会对硬链接数加1
硬链接的使用:
ln /var/log/messages msg1 给/var/log/messages建立一个叫 msg1 的硬链接