文章目录
- 第三章 Linux的常用命令【重要】
- 3.1 命令格式的说明
- 3.2 帮助命令
- 3.2.1 man
- 3.2.2 help
- 3.3 文件处理命令
- 3.3.1 cd
- 3.3.2 ls
- 3.3.3 pwd
- 3.3.4 mkdir
- 3.3.5 touch
- 3.3.6 echo
- 3.3.7 cp
- 3.3.8 mv
- 3.3.9 rm
- 3.3.10 vi编辑器
- 3.3.11 ln
- 3.4 查看命令
- 3.4.1 cat
- 3.4.2 more
- 3.4.3 head
- 3.4.4 tail
- 3.5 搜索查找命令
- 3.5.1 find
- 3.5.2 grep
- 3.5.3 which
- 3.5.4 whereis
- 3.6 磁盘的操作命令
- 3.6.1 df
- 3.6.2 du
- 3.6.3 free
- 3.7 打包压缩命令
- 3.7.1 gzip
- 3.7.2 bzip2
- 3.7.3 zip
- 3.7.4 tar
- 3.7.5 示例
- 3.8 date命令
- 3.9 系统关机命令
- 3.9.1 关机命令:shutdown
- 3.9.2 重启命令:reboot
- 3.9.3 重启命令:init 6
- 3.9.4 执行等级
- 3.9.5 其他命令
- 3.10 Linux的快捷键命令
- 3.11 网络相关操作
- 3.11.1 修改ip地址
- 3.11.2 关闭防火墙
- 3.11.3 关闭NetworkManager
- 3.11.4 网络通信命令
- 3.11.4.1 ping
- 3.11.4.2 ip addr
- 3.11.4.3 netstat
- 3.11.5 修改主机名
- 3.11.6 修改映射关系
- 3.12 进程管理命令
- 3.12.1 进程和程序的区别
- 3.12.2 父进程与子进程
- 3.12.3 进程和线程的区别
- 3.12.4 前台进程和后台进程
- 3.12.5 ps
- 3.12.6 查看系统中所有进程
- 3.12.7 pstree
- 3.12.8 top
- 3.12.9 kill
- 3.12.10 w
- 3.12.11 nohup
- 3.12.12 uptime
- 3.13 用户管理命令
- 3.13.1 su
- 3.13.2 useradd
- 3.13.3 passwd
- 3.13.4 userdel
- 3.13.5 groupadd
- 3.13.6 groupmod
- 3.13.7 groupdel
- 3.14 文件权限命令
- 3.14.1 三种基本权限
- 3.14.2 权限说明
- 3.14.3 chmod
- 3.14.4 chown
- 3.14.5 chgrp
- 3.15 sudo权限的配置
- 3.15.1 作用
- 3.15.2 修改sudoers文件
- 3.15.3 语法
- 3.15.4 实例
- 3.15.4.1 说明信息
- 3.15.4.2 实例1
- 3.15.4.3 实例2
- 3.15.4.4 免密设置
第三章 Linux的常用命令【重要】
3.1 命令格式的说明
命令格式:命令 [-选项][参数] 参数eg: [root@qianfeng01 ~]# ls -la /usr说明: 大部分命令遵从该格式多个选项时,可以一起写 eg: [root@qianfeng01 ~]# ls –l –a ls –la简化选项与完整选项(注:并非所有选项都可使用完整选项) eg: [root@qianfeng01 ~]# ls –all ls –a帮助命令:(相当于命令说明书)
3.2 帮助命令
3.2.1 man
英文:manual 命令路径:/usr/bin/man 执行权限:所有用户作用:获取命令或配置文件的帮助信息语法:man [命令/配置文件]eg:[root@qianfeng01 ~]# man ls man services (查看配置文件时,不需要配置文件的绝对路径,只需要文件名即可)调用的是more命令来浏览帮助文档,按空格翻下一页,按回车翻下一行,按q退出。
3.2.2 help
help 查看shell内置命令的帮助信息eg: [root@qianfeng01 ~]#help cd命令名 --help命令名 --help 列举该命令的常用选项eg: [root@qianfeng01 ~]#cp --help
3.3 文件处理命令
3.3.1 cd
英文:change directory 命令路径:内部命令 执行权限:所有用户cd : 切换工作目录cd -: 回到上一次的操作所在位置cd ~: 回到用户家目录cd ./ : 当前目录cd ../: 回到上一级目录cd : 回到用户家目录
3.3.2 ls
查看目录 ls + 选项 + 目录名英文:list 命令路径:/bin/ls 执行权限:所有用户ll 等价于ls -l-l 列表形式显示 eg: [root@qianfeng01 ~]# ls -l /bin 查看根目录下的bin目录下的所有文件或目录以列表的形式查看-a 所有文件或目录包括隐藏文件 eg: [root@qianfeng01 ~]# ll -a /bin 查看根目录下的bin目录下的所有文件或目录包含隐藏文件-h 以可读的方式显示文件大小,配合-l使用eg: [root@qianfeng01 ~]# ll -h /bin 查看根目录下的bin目录下的所有文件或目录(显示文件大小单位,如KB等)
3.3.3 pwd
英文:print working directory 命令路径:/bin/pwd 执行权限:所有用户作用:显示当前工作目录linux下的路径pwd: 打印当前工作目录(全目录)绝对路径: 以根目录为开始的目录相对路径: 相对当前目录的路径语法: pwd [-LP] eg: [root@qianfeng01 ~]# cd /etc/init.dpwd [-P]
3.3.4 mkdir
英文:make directories 命令路径:/bin/mkdir 执行权限:所有用户作用:创建新目录语法:mkdir [-p] 目录名-p 父目录不存在情况下先生成父目录 (parents)eg: [root@qianfeng01 ~]# mkdir linux/test 如果目录linux不存在,则报错,使用参数-p即可自动创建父目录
3.3.5 touch
命令路径:/bin/touch 执行权限:所有用户作用:创建空文件或更新已存在文件的时间 语法:touch 文件名 eg: [root@qianfeng01 ~]# touch a.txt b.txt touch {a.txt,b.txt} 同时创建多个文件,注意:后面{}中,中间不能有空格eg: [root@qianfeng01 ~]# touch "program files" 创建带空格的文件 注意:生产环境中,文件名,一定不要加空格
3.3.6 echo
命令路径:/bin/echo 执行权限:所有用户作用:查看某些环境变量/给文件增加内容(将文件创建出来)语法:echo '字符串' > 文件名 eg: [root@qianfeng01 ~]# echo $PWD 查看当前的路径[root@qianfeng01 ~]# echo 'haha' > test1.txt 将字符串haha添加到test1.txt里面,注意;会将文件原来的内容覆盖[root@qianfeng01 ~]# echo 'haha' >> test1.txt 将字符串haha追加到test1.txt中,不会覆盖原来的内容
3.3.7 cp
英文:copy 命令路径:/bin/cp 执行权限:所有用户作用:复制文件或目录语法:cp [–rp] 源文件或目录 目的目录-r -R recursive 递归处理,复制目录-p 保留文件属性 (原文件的时间不变)eg:1.相对路径 [root@qianfeng01 ~]# cp –r /etc/* . 将etc下的全部内容递归拷贝到当前的目录下 2.绝对路径 [root@qianfeng01 ~]# cp –r /*ect/service /root/test/aa/bb
3.3.8 mv
英文:move 命令路径:/bin/mv 执行权限:所有用户作用:移动文件或目录、文件或目录改名语法:mv 源文件或目录 目的目录
3.3.9 rm
英文:remove 命令路径:/bin/rm 执行权限:所有用户作用:删除文件语法: rm [-rf] 文件或目录-r(recursive)删除目录,同时删除该目录下的所有文件-f(force) 强制删除文件或目录 即使原档案属性设为唯读,亦直接删除,无需逐一确认注意:工作中,谨慎使用rm –rf 命令。
3.3.10 vi编辑器
vim/vi是Unix / Linux上最常用的文本编辑器而且功能非常强大。只有命令,没有菜单。
命令模式:又称一般模式编辑模式:又称底行模式,命令行模式插入模式: 可以编辑文本
-
插入命令
命令 描述 a 在光标后附加文本 A (shift + a) 在本行末尾附加文本 i 在光标前附加文本 I (shift + i) 在本行行首附加文本 o 在光标下插入新行 O (shift + o) 在光标上插入新行 -
定位命令
命令 描述 :set nu 显示行号 :set nonu 取消行号显示 gg 跳转到第一行 G 跳转到最后一行 nG 跳转到第n行 :n 跳转到第n行 -
保存和退出命令
命令 描述 :w 保存修改的内容 :w file_name 另存为指定文件,如果文件不存在,会创建一个新的文件 :w >> file_name 将内容追加到指定文件中,这个文件需要事先存在 :wq 保存修改并退出 shift + zz (ZZ) 保存修改并退出(快捷键) :q! 不保存修改的内容并强制退出 :wq! 强制保存修改并退出(文件的所有者可以忽略只读权限,进行修改) eg: 1. 如果文本没有修改,可以使用:q退出 2. 如果文本内容已经修改,无法使用:q进行退出,需要使用:q!强制退出 3. 有突发的情况,导致窗口异常退出的时候,需要删除与文件同名的.swp文件
-
删除命令
命令 描述 x 删除光标所在处字符 nx 删除光标所在处后n个字符 dd 删除光标所在行,ndd删除n行 :n1,n2d 删除指定范围的行(eg :1,3d 删除了123这三行) dG 删除光标所在行到末尾的内容 D 删除从光标所在处到行尾 -
复制和剪切命令
命令 作用 yy、Y 复制当前行 nyy、nY 复制当前行以下n行 dd 剪切当前行 ndd 剪切当前行以下n行 p 粘贴在当前光标所在行下一行 P 粘贴在当前光标所在行上一行 -
替换和查找命令
命令 描述 r 取代光标所在处字符 R(shift + r) 从光标所在处开始替换字符,按Esc结束 u undo,取消上一步操作 ctrl+r redo,返回到undo之前 -
搜索和替换命令
命令 作用 /string 向后搜索指定字符串 ?string 向前搜索指定字符串 n 搜索字符串的下一个出现位置,与搜索顺序相同 N(Shift + n) 搜索字符串的上一个出现位置,与搜索顺序相反 :%s/old/new/g 全文替换指定字符串 :n1,n2s/old/new/g 在一定范围内替换指定字符串 注意:当遇到特殊字符时,需要起始行,终止行s/要替换的字符串/替换的新的字符串/g 将/g换成/c 询问确认eg: : %s/ftp/yang/g 全局替换,把ftp替换为yangeg: : 41,44/yang/lee/c 从41行到44行,把yang替换为lee,询问是否替换eg: : 41,44/yang/lee/g 同上,不询问,直接替换eg: : %s/\/root/\/ROOT/g 把/root替换为/ROOT,遇到特殊字符需要进行转义处理eg: : %s#/bin/bash#/bin/ksh#g 把/bin/bash全部替换为/bin/ksh进行转义处理, #之内不需要转义
-
使用替换命令添删注释
:% s/^/#/g 来在全部内容的行首添加 # 号注释 (^代表行首):1,10 s/^/#/g 在1~10 行首添加 # 号注释vi里面查命令:!which cpvi里面导入命令的结果:r !which cp
3.3.11 ln
-
英文: link 命令路径:/bin/ln 执行权限:所有用户
-
作用:产生链接文件
-
语法:
ln -s [源文件][目标文件] 创建软链接 相当于建立快捷方式 注意:源文件 使用 绝对路径ln [源文件][目标文件] 创建硬链接 相当于深拷贝eg: [root@qianfeng01 ~]# ln -s /etc/service ./service.soft创建文件/etc/service的软链接service.softeg: [root@qianfeng01 ~]# ln /etc/service /service.hard 创建文件/etc/service的硬链接/service.hard
-
软连接类似于windows下的快捷方式
软连接文件格式: lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services格式解析:1 1代表硬链接数量,如果该文件没有硬链接,就只有本身一个硬链接。2 13代表 链接文件的长度3 软连接的文件类型是 l(软连接),软连接文件的权限 都是 lrwxrwxrwx 4 -> 箭头指向到源文件真正的权限取决于对源文件的权限时间值为创建软连接的时间软连接可以跨文件系统生成
-
硬链接特性
1 相当于 cp -p +同步更新 2 通过i节点识别,与源文件有相同的inode节点3 硬链接不能跨分区,[root@qianfeng01 ~]# ln /home/test/issuels /boot/test (错误) 4 不能针对目录使用 [root@qianfeng01 ~]# ln /tmp/ aa.hard (无法将目录/tmp 生成硬链接)
-
删除软连接,源文件还在
[root@qianfeng01 ~]# rm -rf symbolic_name
3.4 查看命令
3.4.1 cat
英文:concatenate 命令路径:/bin/cat 执行权限:所有用户作用:显示文件内容,直接显示全部内容语法:cat [-n][文件名]-A 显示所有内容,包括隐藏的字符 -n 显示行号 eg:[root@qianfeng01 ~]# cat /etc/services
3.4.2 more
命令路径:/bin/more 执行权限:所有用户作用:分页显示文件内容语法:more [文件名]空格或f 显示下一页enter键 显示下一行q或Q 退出相关指令:less
3.4.3 head
命令路径:/usr/bin/head 执行权限:所有用户作用:查看文件前几行(默认10行)语法:head [文件名]-n 指定行数 eg:[root@qianfeng01 ~]#
head -20 /etc/services
head –n 3 /etc/services
3.4.4 tail
命令路径:/usr/bin/tail 执行权限:所有用户作用:查看文件的后几行 语法:tail [文件名] -n 指定行数 获取一个大文件的部分文件,可使用head或tail命令eg:
[root@qianfeng01 ~]# head -n 100 /etc/services >config.log 会直接用 /etc/services里面前100行的数据导入conflg.log文件中,并覆盖其中的内容[root@qianfeng01 ~]# head -n 100 /etc/services >>config.log 会直接用 /etc/services里面前100行的数据导入conflg.log文件中,并进行内容的追加
3.5 搜索查找命令
3.5.1 find
命令路径:/bin/find 执行权限:所有用户作用:查找文件或目录 语法:find [搜索路径][匹配条件]如果没有指定搜索路径,默认从当前目录查找
find命令选项
-
-name : 按照名字查找
说明: 按名字查找,精准查找eg: [root@qianfeng01 ~]# find /etc -name “init” 在目录/etc中查找文件init
-
-iname : 按照名字查找
说明: 按名字查找,不区分大小写find查找字符匹配:*: 匹配所有?: 匹配单个字符eg: [root@qianfeng01 ~]# find /etc -name “init???” 在目录/etc中查找以init开头的,且后面有三位的文件模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用单双引号括住查询条件,或者使用\\*。eg: [root@qianfeng01 ~]# find –name "*g"
-
-size : 按照大小查找
以block为单位,一个block是512B, 1K=2block +大于 -小于 不写是等于 eg: [root@qianfeng01 ~]# find /etc -size -204800 在etc目录下找出小于100MB的文件100MB=102400KB=204800block
-
-type : 按照类型查找
f 二进制文件 l 软连接文件 d 目录 c 字符文件 eg:[root@qianfeng01 ~]# find /dev -type cfind查找的基本原则:占用最少的系统资源,即查询范围最小,查询条件最精准注意: 如果明确知道查找的文件在哪一个目录,就直接对指定目录查找,不查找根目录/
3.5.2 grep
命令路径:/bin/grep 执行权限:所有用户作用:在文件中搜寻字符串匹配的行并输出 语法:grep [-cinv] '搜寻字符串' filename选项与参数:-c :输出匹配行的次数(是以行为单位,不是以出现次数为单位)-i :忽略大小写,所以大小写视为相同-n :显示匹配行及行号-v :反向选择,显示不包含匹配文本的所有行。eg:[root@qianfeng01 ~]# grep ftp /etc/services eg: [root@qianfeng01 ~]# grep -v ^# /etc/inittab 去掉文件行首的#号eg: [root@qianfeng01 ~]# grep -n “init”/etc/inittab 显示在inittab文件中,init匹配行及行号eg: [root@qianfeng01 ~]# grep -c“init”/etc/inittab 显示在inittab文件中,init匹配了多少次
管道命令: |
以前面命令的输出结果,作为第二个命令的输入
eg: [root@qianfeng01 ~]# ls | grep abc ls表示列举当前路径下所有的文件,在结果中查找包含abc的内容
3.5.3 which
命令路径:/usr/bin/which 执行权限:所有用户作用:显示系统命令所在目录(绝对路径及别名) which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令eg: [root@qianfeng01 ~]# which ls 出现下面的信息,是ls指令的详情,说明ls指令是存在的alias ls='ls --color=auto'/bin/lseg: [root@qianfeng01 ~]# which zs 出现下面的信息,说明zs指令是不存在的/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)
3.5.4 whereis
命令路径:/usr/bin/whereis 执行权限:所有用户作用:搜索命令所在目录 配置文件所在目录 及帮助文档路径 eg: [root@qianfeng01 ~]# which passwd 和 [root@qianfeng01 ~]#whereis passwd eg: 查看/etc/passwd配置文件的帮助,就用 man 5 passwd
3.6 磁盘的操作命令
3.6.1 df
作用:用于查看Linux文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。看剩余空间语法:df [-hkam][挂载点]-h (human-readable)根据磁盘空间和使用情况 以易读的方式显示 KB,MB,GB等-k 以KB 为单位显示各分区的信息,默认-m 以MB为单位显示信息-a 显示所有分区包括大小为0 的分区
3.6.2 du
作用:用于查看文件或目录的大小(磁盘使用空间)语法:du [-ahs][文件名目录]-a 显示子文件的大小-h 以易读的方式显示 KB,MB,GB等-s summarize 统计总占有量eg: [root@qianfeng01 ~]# du -a(all) /home 显示/home 目录下每个子文件的大小,默认单位为kbeg: [root@qianfeng01 ~]# du -h /home 以K,M,G为单位显示/home 文件夹下各个子目录的大小eg: [root@qianfeng01 ~]# du -sh /home 以常用单位(K,M,G)为单位显示/home 目录的总大小 -s summarizedf命令和du命令的区别:df命令是从文件系统考虑的,不仅考虑文件占用的空间,还要统计被命令或者程序占用的空间。du命令面向文件,只计算文件或目录占用的空间。eg: 执行下面的命令查看区别[root@qianfeng01 ~]# df –h /[root@qianfeng01 ~]# du –sh /
3.6.3 free
作用:显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。语法: free [-kmg]选项:-k: 以KB为单位显示,默认就是以KB为单位显示-m: 以MB为单位显示-g: 以GB为单位显示清理缓存命令:eg: [root@qianfeng01 ~]# echo 1 > /proc/sys/vm/drop_caches
3.7 打包压缩命令
3.7.1 gzip
英文:GNU zip 命令路径:/bin/gzip 执行权限:所有用户作用:压缩(解压)文件,压缩文件后缀为.gz gzip 只能压缩文件,不能压缩目录;不保留原文件语法:gzip 文件-d 将压缩文件解压(decompress)解压使用gzip –d或者 gunzip
3.7.2 bzip2
命令路径:/usr/bin/bzip2 执行权限:所有用户作用:压缩(解压)文件,压缩文件后缀为.bz2语法:bzip2 [-k][文件] -k: 产生压缩文件后保留原文件(压缩比高)-d: 解压缩的参数(decompress)解压使用bzip2 –d或者 bunzip2
3.7.3 zip
命令路径:/usr/bin/zip 执行权限:所有用户作用: 压缩(解压)文件,压缩文件后缀为.zip,保留源文件语法: zip 选项 [压缩后文件名称] [文件或目录] -r 压缩目录eg:[root@qianfeng01 ~]# zip services.zip /etc/services 压缩文件[root@qianfeng01 ~]# zip -r test.zip /test 压缩目录如果不加-r选项,压缩后的文件没有数据。解压使用unzip ,注意如果解压时,已经存在与压缩文件同名的目录名,默认不会进行覆盖,如果选择Y,会进行覆盖
3.7.4 tar
命令路径:/bin/tar 执行权限:所有用户作用:文件、目录打(解)包语法:tar [-zcf] 压缩后文件名 文件或目录-c 建立一个压缩文件的参数指令(create),后缀是.tar-x 解开一个压缩文件的参数指令(extract)-z 以gzip命令压缩/解压缩 -j 以bzip2命令压缩/解压缩 -v 压缩的过程中显示文件(verbose)-f file 指定文件名,必选项
3.7.5 示例
-
简单理解
[root@qianfeng01 ~]# tar –cf tar –xf 单独的打包 ,解包 [root@qianfeng01 ~]# gzip bzip2 打包之后,进行压缩 [root@qianfeng01 ~]# tar –zcvf [root@qianfeng01 ~]#tar -zxvf 一步到位 [root@qianfeng01 ~]# tar -z 以gzip打包目录并压缩 文件格式.tar.gz(.tgz)[root@qianfeng01 ~]# tar -j 以bzip2打包目录并压缩 文件格式.tar.bz2
-
示例
eg: [root@qianfeng01 ~]# tar -zcvf dir1.tar.gz dir1 使用gzip将目录dir1压缩成一个打包并压缩文件dir1.tar.gzeg: [root@qianfeng01 ~]# tar -zxvf dir1.tar.gz -C(大写的) /root 解压到指定的/root目录eg: [root@qianfeng01 ~]# tar -cvf bak.tar . 将当前目录的文件打包为bak.tareg: [root@qianfeng01 ~]# tar -xvPf bak.tar 解压到当前目录,默认是相对路径,P意思是支持绝对路径eg: [root@qianfeng01 ~]# tar -cvPf bak.tar /a/b 将/a/b路径压缩成bak.tareg: [root@qianfeng01 ~]# tar -zcvf bak.tar.gz bak.tar 或 [root@qianfeng01 ~]#gzip bak.tar 使用gzip将打包文件bak.tar压缩为bak.tar.gzeg: [root@qianfeng01 ~]# tar -jcvf bak.tar.bz2 bak.tar 或 [root@qianfeng01 ~]#bzip2 bak.tar 使用bzip2将打包文件bak.tar压缩为bak.tar.bz2eg: [root@qianfeng01 ~]# tar -rvf bak.tar /etc/password 将/etc/password追加文件到bak.tar中eg: [root@qianfeng01 ~]# tar -cjvf test.tar.bz2 test 生成test.tar.bz2的压缩文件eg: [root@qianfeng01 ~]# tar -xjf test.tar.bz2 解压
-
最常用: tar + gzip
[root@qianfeng01 ~]# tar –zcvf 压缩 [root@qianfeng01 ~]# tar –zxvf 解压补充:源文件是保留的,不会被删除
3.8 date命令
1 date命令是显示或设置系统时间与日期。2 查看系统时间直接使用 date3 以自定义的方式显示系统时间: date +'%Y-%m-%d %H:%M:%S' 注意:+与字符串之间不能有空格,与date之间要有空格4 设置时间eg: [root@qianfeng01 ~]# date -s "2015-5-8 19:48:00"5 同步到bios,重启之后才能继续生效eg: [root@qianfeng01 ~]# hwclock -w
3.9 系统关机命令
3.9.1 关机命令:shutdown
语法:shutdown [选项] 时间
选项:
-c: 取消前一个关机命令
-h: 关机
-r: 重启eg:
[root@qianfeng01 ~]# shutdown -h now 立即关机
[root@qianfeng01 ~]# shutdown -h 20:30 定时关机其他关机命令:
halt
poweroff
init 0
3.9.2 重启命令:reboot
eg: reboot 重启系统 [root@qianfeng01 ~]# reboot -h now 立即重启
3.9.3 重启命令:init 6
注意:生产环境中,关机命令和重启命令谨慎执行。
3.9.4 执行等级
linux有七种执行等级:
init 0:停机
init 1:单用户形式,只root进行维护
init 2:多用户,不能使用net file system
init 3:完全多用户
init 5:图形化
init 4:安全模式
init 6:重启
3.9.5 其他命令
uname -r 查看系统版本信息
[root@qianfeng01 ~]# basename a/b/c/test.txt 显示:test.txt 查看命令中的名字
[root@qianfeng01 ~]# dirname a/b/c/test.txt 显示: a/b/c/ 查看命令中的路径
3.10 Linux的快捷键命令
善于查看man help等帮助文档 利用好Tab键 自动补全掌握好一些快捷键ctrl + c(停止当前进程)ctrl + z 挂起当前进程,放后台ctrl + r(查看命令历史) historyctrl + l(清屏,与clear命令作用相同)对当前命令行的操作:方向箭头 上 下 可以查看执行过的命令并再次使用ctrl + a 行首 ctrl + e 行尾 ctrl+d 清除当前的字符ctrl + k 清除光标后面的内容 ctrl+ w 清除光标前面的单词
3.11 网络相关操作
3.11.1 修改ip地址
说明: (以网络方式为NAT示例)
-
使用命令行修改配置文件
# 注: 这里编辑的文件为你的网卡的信息 # 在Windows平台使用VMWare安装,默认使用的是ens33 # 在Mac平台使用Parallels Desktop安装,默认使用的是eth0 [root@qianfeng01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=static # static => 静态ip dhcp => 动态ip none => 不设置,默认静态ip HWADDR=00:0C:29:3D:B0:9B # 电脑的mac地址,建议去掉 UUID=6f89eb5e-bff4-4f6b-a045-b7722bd188fc # 电脑的UID,建议去掉 ONBOOT=yes # 是否开机自动使用 nm_controlled=yes # 设置network manager的参数,实时生效,修改后无需要重启网卡立即生效。建议删掉 IPADDR=192.168.10.101 NETMASK=255.255.255.0 # 或者 PREFIX=24 GATEWAY=192.168.10.2 # 网段2任意,IP地址2固定,网段为vmnet8的设置的IP网段(Mac平台安装的需要将其设置为192.168.10.1) DNS1=114.114.114.114 # 国内的DNS DNS2=8.8.8.8 # 谷歌的DNS defroute=yes # 默认的路由 建议删掉 IPV4_FAILURE_FATAL=yes # 如果为yes,则ipv4配置失败禁用设备 建议删掉
-
重启网络生效
CentOS 6: service network restart CentOS 7: systemctl restart network
3.11.2 关闭防火墙
-
立即关闭防火墙,重启后生效
[root@qianfeng01 ~]# systemctl start firewalld [开启防火墙] [root@qianfeng01 ~]# systemctl stop firewalld [关闭防火墙] [root@qianfeng01 ~]# systemctl restart firewalld [重启防火墙] [root@qianfeng01 ~]# systemctl status firewalld [查看防火墙运行状态]
-
关闭防火墙开机自启动
[root@qianfeng01 ~]# systemctl enable firewalld [打开开机自启动] [root@qianfeng01 ~]# systemctl disable firewalld [关闭开机自启动]
3.11.3 关闭NetworkManager
NetworkManager服务是管理和监控网络设置的守护进程,CentOS7更加注重使用NetworkManager服务来实现网络的配置和管理。它是一个动态的,事件驱动的网络管理服务。
常用管理命令:
[root@qianfeng01 ~]# systemctl status NetworkManager
[root@qianfeng01 ~]# systemctl start NetworkManager
[root@qianfeng01 ~]# systemctl stop NetworkManager
[root@qianfeng01 ~]# systemctl disable NetworkManager
[root@qianfeng01 ~]# systemctl enable NetworkManager
3.11.4 网络通信命令
3.11.4.1 ping
命令路径:/bin/ping 执行权限:所有用户
作用:测试网络的连通性
语法:ping 选项 IP地址
-c 指定发送次数
ping 命令使用的是icmp协议,不占用端口
eg: [root@qianfeng01 ~]#ping -c 3 127.0.0.1
3.11.4.2 ip addr
英文:interface configure 命令路径:/sbin/ifconfig 执行权限:root作用:查看和设置网卡网络配置语法:ifconfig [-a][网卡设备标识] -a: 显示所有网卡信息ifconfig 网卡名字 查看单个的网卡信息
3.11.4.3 netstat
英文:network statistics 命令路径:/bin/netstat 执行权限:所有用户注意:如果在系统中默认没有这个命令:直接安装net-tools包即可作用:主要用于检测主机的网络配置和状况-a (all)显示所有连接和监听端口-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 使用数字方式显示地址和端口号-p 显示socket的PID和进程的名字-l (listening)显示监控中的服务器的socketeg: [root@qianfeng01 ~]# netstat -tlnu 查看本机监听的端口eg: [root@qianfeng01 ~]# tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN协议 待收数据包 待发送数据包 本地ip地址:端口 远程IP地址:端口netstat –antpl eg: [root@qianfeng01 ~]# netstat -ntlp | grep httpd 查看某一个程序的端口信息eg: [root@qianfeng01 ~]# netstat -atnp | grep httpd eg: [root@qianfeng01 ~]# netstat -atnp | grep 80 查看端口
3.11.5 修改主机名
- 临时生效:
hostname qianfeng01
- 永久生效:
hostnamectl set-hostname qianfeng01
3.11.6 修改映射关系
修改主机名和ip地址之间的映射关系执行 [root@qianfeng01 ~]# vim /etc/hosts 进入hosts文件,加入代码 主机ip 主机名192.168.10.111 qianfeng01192.168.10.112 qianfeng02192.168.10.113 qianfeng03最好让主机名字,虚拟机名字,网络连接名字保持一致
3.12 进程管理命令
3.12.1 进程和程序的区别
1 程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。2 程序和进程无一一对应关系。一个进程在活动中可有顺序地执行若干个程序。
3.12.2 父进程与子进程
1 子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程。2 在Linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。3 父进程终止子进程自然终止。
3.12.3 进程和线程的区别
进程: 就是正在执行的程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。线程: 轻量级的进程;进程有独立的地址空间,线程没有;线程不能独立存在,它由进程创建;相对讲,线程耗费的cpu和内存要小于进程。进程管理的作用:判断服务器的健康状态;查看系统所有的进程;杀死进程.
3.12.4 前台进程和后台进程
前台进程:在Shell提示处打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行另一个命令。 后台进程:在Shell提示处打入命令,若后随一个&,Shell创建的子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。后台进程必须是非交互式的。
3.12.5 ps
作用:查看系统中的进程信息语法:ps [-auxle]常用选项a:显示所有用户的进程u:显示用户名和启动时间x:显示没有控制终端的进程e:显示所有进程,包括没有控制终端的进程l:长格式显示
3.12.6 查看系统中所有进程
ps aux #查看系统中所有进程,使用BSD操作系统格式,unixps -le #查看系统中所有进程,使用Linux标准命令格式eg: [root@qianfeng01 ~]# ps -u or ps -l 查看隶属于自己进程详细信息eg: [root@qianfeng01 ~]# ps aux | grep sam 查看用户sam执行的进程 eg: [root@qianfeng01 ~]# ps -ef | grep init 查看指定进程信息
3.12.7 pstree
作用:查看当前进程树语法:pstree [选项]-p 显示进程PID-u 显示进程的所属用户
3.12.8 top
作用:查看系统健康状态 显示当前系统中耗费资源最多的进程,以及系统的一些负载情况。语法:top [选项]-d 秒数,指定几秒刷新一次,默认3秒(动态显示)
3.12.9 kill
作用:关闭进程语法:kill [-选项] pIdeg: [root@qianfeng01 ~]# kill -9 进程号(强行关闭) 常用eg: [root@qianfeng01 ~]# kill -1 进程号(重启进程)eg: [root@qianfeng01 ~]# killall -l 关闭所有进程(忽略进程名的大小写)
3.12.10 w
作用: 查看用户信息语法: w 用户名eg: [root@qianfeng01 ~]# w root 显示:USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 10.0.158.3 06:02 0.00s 0.13s 0.00s w root解释:JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里PCPU:CPU执行程序耗费的时间WHAT:用户正在执行的操作
3.12.11 nohup
作用: 使进程在用户退出登陆后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认储存到文件nohup.out中语法: nohup program & &在后台运行的意思eg: [root@qianfeng01 ~]# nohup ping www.baidu.com &使用: [root@qianfeng01 ~]# ps -ef | grep ping 查看当前的ping进程
3.12.12 uptime
作用: 查看负载例如: 使用uptime确定是服务器还是网络出了问题。如果网络应用程序运行,运行uptime来了解系统负载是否很高。如果负载不高,这个问题很有可能是由于网络引起的而非服务器。语法: uptimeeg: 执行: [root@qianfeng01 ~]# uptime显示: 06:32:04 up 19:57, 4 users, load average: 0.00, 0.01, 0.00解释: 系统时间 用户数量 服务器在过去的1分钟、5分钟、15分钟的系统平均负载值
3.13 用户管理命令
3.13.1 su
语法: su 用户名作用: 切换用户eg: [root@qianfeng01 ~]# su root 切换回root用户,注意:如果是root用户,每次都会要求输入密码.普通的用户可以直接切换
3.13.2 useradd
添加用户语法:useradd [选项] 用户名
3.13.3 passwd
修改密码命令语法:passwd [选项][用户名]用户密码:生产环境中,用户密码长度8位以上,设置大小写加数字加特殊字符,要定期更换密码。ys^h_L9t
3.13.4 userdel
删除用户-r 删除账号时同时删除宿主目录(remove)注意:一个用户已经打开,需要删除做法:先跳到当前用户下面,执行exit 或 exit 用户名。这时会自动跳回root界面。如果还是无法删除,可以将系统重启
3.13.5 groupadd
用于添加组-g 指定gid
3.13.6 groupmod
用于修改组-n 更改组名(new group)[root@qianfeng01 ~]# groupmod -n new_gname old_gname
3.13.7 groupdel
用于删除组如果要删除的组归属于某一个用户的所属组,则不能删除该组[root@qianfeng01 ~]# useradd -g hadoop hdfs[root@qianfeng01 ~]# groupdel hadoop
3.14 文件权限命令
3.14.1 三种基本权限
r 读权限(read)w 写权限(write)x 执行权限 (execute)
3.14.2 权限说明
所有者 所属组 其他人第1位:文件类型(d 目录,- 普通文件,l 链接文件)第2-4位:所属用户(所有者)权限,用u(user)表示第5-7位:所属组权限,用g(group)表示第8-10位:其他用户(其他人)权限,用o(other)表示第2-10位:表示所有的权限,用a(all)表示eg: -rw-r--r--. 1 root root 3664 Nov 30 17:42 CentOS-Vault.repo.bak第十一位的1代表硬链接数
字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读权限 | 可以查看文件内容 | 可以列出目录的内容(ls) |
w | 写权限 | 可以修改文件内容 | 可以在目录中创建删除文件( mkdir,rm ) |
x | 执行权限 | 可以执行文件 | 可以进入目录(cd) |
对于文件,我们有执行权限的命令:r-cat,more,head,tail,lessw-echo,vix-命令,脚本对于目录,我们有执行权限的命令:r-lsw-touch,mkdir,rm,rmdirx-cd 能删除文件的权限是必须对该文件所在的目录有wx权限。
3.14.3 chmod
用于权限更改英文:change mode (change the permissions mode of a file)作用:改变文件或目录权限语法:chmod [{ugoa}{+-=}{rwx}][文件名或目录] chmod [mode=421][ 文件或目录]参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)可以有修改一个文件的权限:1.root2.文件所有者eg: [root@qianfeng01 ~]# chmod u+x a.txteg: [root@qianfeng01 ~]# chmod u+x,o-x a.txt用数字来表示权限(r=4,w=2,x=1,-=0)eg: [root@qianfeng01 ~]# chmod 750 b.txtrwx和数字表示方式能随意切换注意:root用户是超级用户,不管有没有权限,root都能进行更改。用普通用户测试权限。不能用一个普通用户去修改另一个普通用户的权限。
3.14.4 chown
用于更改所有者英文:change file ownership作用:更改文件或者目录的所有者 语法 : chown user[:group] file... -R : 递归修改参数格式 : user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group) eg:[root@qianfeng01 ~]# chown lee file1 把file1文件的所有者改为用户leeeg:[root@qianfeng01 ~]# chown lee:test file1 把file1文件的所有者改为用户lee,所属组改为testeg:[root@qianfeng01 ~]# chown –R lee:test dir 修改dir及其子目录的所有者和所属组
3.14.5 chgrp
用于改变所属组英文:change file group ownership作用:改变文件或目录的所属组语法 : chgrp [group] file... eg: [root@qianfeng01 ~]# chgrp root test.log 把test.log的所属组修改为root
3.15 sudo权限的配置
3.15.1 作用
root把本来只能超级用户执行的命令赋予普通用户执行。sudo的操作对象是系统命令
3.15.2 修改sudoers文件
执行 [root@qianfeng01 ~]# visudo 这里实际修改的是/etc/sudoers文件sudoers文件内部的信息解释root ALL=(ALL) ALL
#用户名 被管理主机的地址(不是访问地址)=(可使用的身份) 授权命令(绝对路径)%wheel ALL=(ALL) ALL
#%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)[root@qianfeng01 ~]# sudo -l 查看可用的sudo命令注意:
sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。
若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。
用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
3.15.3 语法
sudo(选项)(参数)
选项 -b:在后台执行指令;-h:显示帮助; -H:将HOME环境变量设为新身份的HOME环境变量; -k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;-l:列出目前用户可执行与无法执行的指令; -p:改变询问密码的提示符号; -s:执行指定的shell; -u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份; -v:延长密码有效期限5分钟; -V :显示版本信息。
3.15.4 实例
3.15.4.1 说明信息
1 配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。2 之所以使用visudo有两个原因一是它能够防止两个用户同时修改它二是它也能进行有限的语法检查3 所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。 visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。4 visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,错误提示:sudoers file:syntax error,line 22<< 此时我们有三种选择:键入“e”是重新编辑键入“x”是不保存退出键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。
3.15.4.2 实例1
让用户hd1可以通过sudo执行所有root可执行的命令。以root身份用visudo打开配置文件,可以看到类似下面几行:
ALL=(ALL)ALL
这里root有所有权限,只要仿照现有root的例子就行,我们在下面加一行(最好用tab作为空白)
hd1 ALL=(ALL) ALL
第一个ALL是指网络中的主机,它指明hd1可以在此主机上执行后面的命令。
第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令,通常我们指定为all即可。
最后一个ALL当然就是指命令名了。
保存退出后,切换到hd1用户,我们用它的身份执行命令:
[root@qianfeng01 ~]# sudo ls /root 在ls前面添加sudo可以让hd1拥有root的权限,查看root目录
3.15.4.3 实例2
我们限制一下hd1的权利。比如我们只想让他像root那样使用ls和ifconfig,继续修改sudoers文件
db1 ALL=(ALL) /sbin/ifconfig, /bin/ls,/usr/bin/sudo再次切换到hd1用户,执行命令:
[root@qianfeng01 ~]# sudo head -5 /etc/shadow 这是提示hd1没有权限执行这个命令.
3.15.4.4 免密设置
我们这样再添加一行配置文件
hdp1 ALL=NOPASSWD: /bin/cat/ls, /usr/bin/sudo
再来sudo一下:不再需要密码