Linux常用命令

命令格式的说明

命令格式:命令 [-选项][参数] 参数
eg: [root@qianfeng01 ~]# ls -la /usr
说明:
⼤部分命令遵从该格式
多个选项时,可以⼀起写
eg: [root@qianfeng01 ~]# ls –l –a ls –la
简化选项与完整选项(注:并⾮所有选项都可使⽤完整选项)
eg: [root@qianfeng01 ~]# ls –all ls –a
帮助命令:(相当于命令说明书)

帮助命令

man

英⽂:manual 命令路径:/usr/bin/man 执⾏权限:所有⽤户
作⽤:获取命令或配置⽂件的帮助信息
语法:man [命令/配置⽂件]
eg:[root@qianfeng01 ~]# man ls man services
(查看配置⽂件时,不需要配置⽂件的绝对路径,只需要⽂件名即可)
调⽤的是more命令来浏览帮助⽂档,按空格翻下⼀⻚,按回⻋翻下⼀⾏,按q退出。

help

help 查看shell内置命令的帮助信息
eg: [root@qianfeng01 ~]#help cd
命令名 --help
命令名 --help 列举该命令的常⽤选项
eg: [root@qianfeng01 ~]#cp --help

⽂件处理命令

cd

英⽂:change directory 命令路径:内部命令 执⾏权限:所有⽤户
cd -: 回到上⼀次的操作所在位置
cd ~: 回到⽤户家⽬录
cd ./ : 当前⽬录
cd ../: 回到上⼀级⽬录
cd : 回到⽤户家⽬录

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等)

pwd

英⽂:print working directory 命令路径:/bin/pwd 执⾏权限:所有⽤户
作⽤:显示当前⼯作⽬录
linux下的路径
pwd: 打印当前⼯作⽬录(全⽬录)
绝对路径: 以根⽬录为开始的⽬录
相对路径: 相对当前⽬录的路径
语法: pwd [-LP]
eg: [root@qianfeng01 ~]# cd /etc/init.d
pwd [-P]

mkdir

英⽂:make directories 命令路径:/bin/mkdir 执⾏权限:所有⽤户
作⽤:创建新⽬录
语法:mkdir [-p] ⽬录名
-p ⽗⽬录不存在情况下先⽣成⽗⽬录 (parents)
eg: [root@qianfeng01 ~]# mkdir linux/test 如果⽬录linux不存在,则报错,使⽤参数-p即可⾃动创建⽗⽬录

touch

命令路径:/bin/touch 执⾏权限:所有⽤户
作⽤:创建空⽂件或更新已存在⽂件的时间
语法:touch ⽂件名
eg: [root@qianfeng01 ~]# touch a.txt b.txt touch
{a.txt,b.txt} 同时创建多个⽂件,注意:后⾯{}中,中间不能有空格
eg: [root@qianfeng01 ~]# touch "program files" 创建带空格的⽂件
注意:⽣产环境中,⽂件名,⼀定不要加空格

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中,不会覆盖原来的内容

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

mv

英⽂:move 命令路径:/bin/mv 执⾏权限:所有⽤户
作⽤:移动⽂件或⽬录、⽂件或⽬录改名
语法:mv 源⽂件或⽬录 ⽬的⽬录

rm

英⽂:remove 命令路径:/bin/rm 执⾏权限:所有⽤户
作⽤:删除⽂件
语法: rm [-rf] ⽂件或⽬录
-r(recursive)删除⽬录,同时删除该⽬录下的所有⽂件
-f(force) 强制删除⽂件或⽬录 即使原档案属性设为唯读,亦直接删除,⽆需逐⼀确认
注意:⼯作中,谨慎使⽤rm –rf 命令。

vi编辑器

vim/vi是Unix / Linux上最常⽤的⽂本编辑器⽽且功能⾮常强⼤。
只有命令,没有菜单。

在这里插入图片描述

命令模式:⼜称⼀般模式
编辑模式:⼜称底⾏模式,命令⾏模式
插⼊模式: 可以编辑⽂本

插⼊命令
在这里插入图片描述

位命令

在这里插入图片描述

保存和退出命令

在这里插入图片描述

eg:
1. 如果⽂本没有修改,可以使⽤:q退出
2. 如果⽂本内容已经修改,⽆法使⽤:q进⾏退出,需要使⽤:q!强制退出
3. 有突发的情况,导致窗⼝异常退出的时候,需要删除与⽂件同名的.swp⽂件

删除命令

在这里插入图片描述

复制和剪切命令

在这里插入图片描述

替换和查找命令

在这里插入图片描述

搜索和替换命令

在这里插入图片描述

注意:当遇到特殊字符时,需要起始⾏,终⽌⾏s/要替换的字符串/替换的新的字符串/g 将/g换成/c 询问确认
eg: : %s/ftp/yang/g 全局替换,把ftp替换为yang
eg: : 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 cp
vi⾥⾯导⼊命令的结果
:r !which cp

ln

英⽂: link 命令路径:/bin/ln 执⾏权限:所有⽤户
作⽤:产⽣链接⽂件
语法:

ln -s [源⽂件][⽬标⽂件] 创建软链接 相当于建⽴快捷⽅式
注意:源⽂件 使⽤ 绝对路径
ln [源⽂件][⽬标⽂件] 创建硬链接 相当于深拷⻉
eg: [root@qianfeng01 ~]# ln -s /etc/service ./service.soft
创建⽂件/etc/service的软链接service.soft
eg: [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 

查看命令

cat

英⽂:concatenate 命令路径:/bin/cat 执⾏权限:所有⽤户
作⽤:显示⽂件内容,直接显示全部内容
语法:cat [-n][⽂件名]
-A 显示所有内容,包括隐藏的字符
-n 显示⾏号
eg:[root@qianfeng01 ~]# cat /etc/services

more

命令路径:/bin/more 执⾏权限:所有⽤户
作⽤:分⻚显示⽂件内容
语法:more [⽂件名]
空格或f 显示下⼀⻚
enter键 显示下⼀⾏
q或Q 退出
相关指令:less

head

命令路径:/usr/bin/head 执⾏权限:所有⽤户
作⽤:查看⽂件前⼏⾏(默认10⾏)
语法:head [⽂件名]
-n 指定⾏数
eg:[root@qianfeng01 ~]#
head -20 /etc/services
head –n 3 /etc/services

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⽂件中,并进⾏内容的追加

搜索查找命令

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 c
find查找的基本原则:
占⽤最少的系统资源,即查询范围最⼩,查询条件最精准
注意: 如果明确知道查找的⽂件在哪⼀个⽬录,就直接对指定⽬录查找,不查找根⽬录/

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的内容

which

命令路径:/usr/bin/which 执⾏权限:所有⽤户
作⽤:显示系统命令所在⽬录(绝对路径及别名)
which命令的作⽤是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第⼀个搜索结果。也就是说,使⽤which命令,就可以看到某个系统命令是否存在,以及执⾏的到底是哪⼀个位置的命令
eg: [root@qianfeng01 ~]# which ls 出现下⾯的信息,是ls指令的详情,说明ls指令是存在的
alias ls='ls --color=auto'
/bin/ls
eg: [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)

whereis

命令路径:/usr/bin/whereis 执⾏权限:所有⽤户
作⽤:搜索命令所在⽬录 配置⽂件所在⽬录 及帮助⽂档路径
eg: [root@qianfeng01 ~]# which passwd 和 [root@qianfeng01~]#whereis passwd
eg: 查看/etc/passwd配置⽂件的帮助,就⽤ man 5 passwd

磁盘的操作命令

df

作⽤:⽤于查看Linux⽂件系统的状态信息,显示各个分区的容量、已使⽤量、未使⽤量及挂载点等信息。看剩余空间
语法:df [-hkam][挂载点]
-h (human-readable)根据磁盘空间和使⽤情况 以易读的⽅式显示 KB,MB,GB等
-k 以KB 为单位显示各分区的信息,默认
-m 以MB为单位显示信息
-a 显示所有分区包括⼤⼩为0 的分区

du

作⽤:⽤于查看⽂件或⽬录的⼤⼩(磁盘使⽤空间)
语法:du [-ahs][⽂件名⽬录]
-a 显示⼦⽂件的⼤⼩
-h 以易读的⽅式显示 KB,MB,GB等
-s summarize 统计总占有量
eg: [root@qianfeng01 ~]# du -a(all) /home  显示/home ⽬录下每个⼦
⽂件的⼤⼩,默认单位为kb
eg: [root@qianfeng01 ~]# du -h /home 以K,M,G为单位显示/home ⽂件夹下各个⼦⽬录的⼤⼩
eg: [root@qianfeng01 ~]# du -sh /home  以常⽤单位(K,M,G)为单位显示/home ⽬录的总⼤⼩ -s summarize
df命令和du命令的区别:
df命令是从⽂件系统考虑的,不仅考虑⽂件占⽤的空间,还要统计被命令或者程序占⽤的空间。
du命令⾯向⽂件,只计算⽂件或⽬录占⽤的空间。
eg: 执⾏下⾯的命令查看区别
[root@qianfeng01 ~]# df –h /
[root@qianfeng01 ~]# du –sh /

free

作⽤:显示系统内存的使⽤情况,包括物理内存、交换内存(swap)和内核缓冲区内存。
语法: free [-kmg]
选项:
-k: 以KB为单位显示,默认就是以KB为单位显示
-m: 以MB为单位显示
-g: 以GB为单位显示
清理缓存命令:
eg: [root@qianfeng01 ~]# echo 1 > /proc/sys/vm/drop_caches

打包压缩命令

gzip

英⽂:GNU zip 命令路径:/bin/gzip 执⾏权限:所有⽤户
作⽤:压缩(解压)⽂件,压缩⽂件后缀为.gz
gzip 只能压缩⽂件,不能压缩⽬录;不保留原⽂件
语法:gzip ⽂件
-d 将压缩⽂件解压(decompress)
解压使⽤gzip –d或者 gunzip

bzip2

命令路径:/usr/bin/bzip2 执⾏权限:所有⽤户
作⽤:压缩(解压)⽂件,压缩⽂件后缀为.bz2
语法:bzip2 [-k][⽂件]
-k: 产⽣压缩⽂件后保留原⽂件(压缩⽐⾼)
-d: 解压缩的参数(decompress)
解压使⽤bzip2 –d或者 bunzip2

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,会进⾏覆盖

tar

命令路径:/bin/tar 执⾏权限:所有⽤户
作⽤:⽂件、⽬录打(解)包
语法:tar [-zcf] 压缩后⽂件名 ⽂件或⽬录
-c 建⽴⼀个压缩⽂件的参数指令(create),后缀是.tar
-x 解开⼀个压缩⽂件的参数指令(extract)
-z 以gzip命令压缩/解压缩
-j 以bzip2命令压缩/解压缩
-v 压缩的过程中显示⽂件(verbose)
-f file 指定⽂件名,必选项

示例

  1. 简单理解
[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
  1. 示例

    eg: [root@qianfeng01 ~]# tar -zcvf dir1.tar.gz dir1 使⽤gzip将⽬录dir1压缩成⼀个打包并压缩⽂件dir1.tar.gz
    eg: [root@qianfeng01 ~]# tar -zxvf dir1.tar.gz -C(⼤写的)/root 解压到指的/root⽬录
    eg: [root@qianfeng01 ~]# tar -cvf bak.tar . 将当前⽬录的⽂件打包为bak.tar
    eg: [root@qianfeng01 ~]# tar -xvPf bak.tar 解压到当前⽬录,默认是相对路径,P意思是⽀持绝对路径
    eg: [root@qianfeng01 ~]# tar -cvPf bak.tar /a/b 将/a/b路径压缩成bak.tar
    eg: [root@qianfeng01 ~]# tar -zcvf bak.tar.gz bak.tar 或
    [root@qianfeng01 ~]#gzip bak.tar 使⽤gzip将打包⽂件bak.tar压缩为bak.tar.gz
    eg: [root@qianfeng01 ~]# tar -jcvf bak.tar.bz2 bak.tar 或
    [root@qianfeng01 ~]#bzip2 bak.tar 使⽤bzip2将打包⽂件bak.tar压缩为bak.tar.bz2
    eg: [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 解压
    
  2. 最常⽤: tar + gzip

    [root@qianfeng01 ~]# tar –zcvf 压缩
    [root@qianfeng01 ~]# tar –zxvf 解压
    补充:源⽂件是保留的,不会被删除
    

date命令

1 date命令是显示或设置系统时间与⽇期。
2 查看系统时间直接使⽤ date
3 以⾃定义的⽅式显示系统时间: 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

系统关机命令

关机命令:shutdown

语法:shutdown [选项] 时间
选项:
-c: 取消前⼀个关机命令
-h: 关机
-r: 重启
eg:
[root@qianfeng01 ~]# shutdown -h now ⽴即关机
[root@qianfeng01 ~]# shutdown -h 20:30 定时关机
其他关机命令:
halt
poweroff
init 0

重启命令:reboot

eg: reboot 重启系统
[root@qianfeng01 ~]# reboot -h now ⽴即重启

重启命令:init 6

注意:⽣产环境中,关机命令和重启命令谨慎执⾏

执⾏等级

linux有七种执⾏等级:
init 0:停机
init 1:单⽤户形式,只root进⾏维护
init 2:多⽤户,不能使⽤net file system
init 3:完全多⽤户
init 5:图形化
init 4:安全模式
init 6:重启

其他命令

uname -r 查看系统版本信息
[root@qianfeng01 ~]# basename a/b/c/test.txt 显示:test.txt 查看命令中的名字
[root@qianfeng01 ~]# dirname a/b/c/test.txt 显示:a/b/c/ 查看命令中的路径

Linux的快捷键命令

善于查看man help等帮助⽂档
利⽤好Tab键 ⾃动补全
掌握好⼀些快捷键
ctrl + c(停⽌当前进程)
ctrl + z 挂起当前进程,放后台
ctrl + r(查看命令历史) history
ctrl + l(清屏,与clear命令作⽤相同)
对当前命令⾏的操作:
⽅向箭头 上 下 可以查看执⾏过的命令并再次使⽤
ctrl + a ⾏⾸ ctrl + e ⾏尾 ctrl+d 清除当前的字符
ctrl + k 清除光标后⾯的内容 ctrl+ w 清除光标前⾯的单词

⽹络相关操作

修改ip地址

说明: (以⽹络⽅式为NAT示例)

  1. 使⽤命令⾏修改配置⽂件
# 注: 这⾥编辑的⽂件为你的⽹卡的信息
# 在Windows平台使⽤VMWare安装,默认使⽤的是ens33
# 在Mac平台使⽤Parallels Desktop安装,默认使⽤的是eth0
[root@qianfeng01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=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配置失败禁⽤设备建议删掉
  1. 重启⽹络⽣效
CentOS 6: service network restart
CentOS 7: systemctl restart network

关闭防⽕墙

  1. ⽴即关闭防⽕墙,重启后⽣效
[root@qianfeng01 ~]# systemctl start firewalld [开启防⽕墙]
[root@qianfeng01 ~]# systemctl stop firewalld [关闭防⽕墙]
[root@qianfeng01 ~]# systemctl restart firewalld [重启防⽕墙]
[root@qianfeng01 ~]# systemctl status firewalld [查看防⽕墙运⾏状态]
  1. 关闭防⽕墙开机⾃启动
[root@qianfeng01 ~]# systemctl enable firewalld [打开开机⾃启动]
[root@qianfeng01 ~]# systemctl disable firewalld [关闭开机⾃启动]

关闭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

⽹络通信命令

ping

命令路径:/bin/ping 执⾏权限:所有⽤户
作⽤:测试⽹络的连通性
语法:ping 选项 IP地址
-c 指定发送次数
ping 命令使⽤的是icmp协议,不占⽤端⼝
eg: [root@qianfeng01 ~]#ping -c 3 127.0.0.1

ip addr

英⽂:interface configure 命令路径:/sbin/ifconfig 执⾏权限:root
作⽤:查看和设置⽹卡⽹络配置
语法:ifconfig [-a][⽹卡设备标识]
-a: 显示所有⽹卡信息
ifconfig ⽹卡名字 查看单个的⽹卡信息

netstat

英⽂:network statistics 命令路径:/bin/netstat 执⾏权限:所有⽤户
注意:如果在系统中默认没有这个命令:直接安装net-tools包即可
作⽤:主要⽤于检测主机的⽹络配置和状况
-a (all)显示所有连接和监听端⼝
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 使⽤数字⽅式显示地址和端⼝号
-p 显示socket的PID和进程的名字
-l (listening)显示监控中的服务器的socket
eg: [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 查看端⼝

修改主机名

临时⽣效: hostname qianfeng01
永久⽣效: hostnamectl set-hostname qianfeng01

修改映射关系

修改主机名和ip地址之间的映射关系
执⾏ [root@qianfeng01 ~]# vim /etc/hosts 进⼊hosts⽂件,加⼊代码
主机ip 主机名
192.168.10.111 qianfeng01
192.168.10.112 qianfeng02
192.168.10.113 qianfeng03
最好让主机名字,虚拟机名字,⽹络连接名字保持⼀致

进程管理命令

进程和程序的区别

1 程序是静态概念,本身作为⼀种软件资源⻓期保存;⽽进程是程序的执⾏过程,它是动态概念,有⼀定的⽣命期,是动态产⽣和消亡的。
2 程序和进程⽆⼀⼀对应关系。⼀个进程在活动中可有顺序地执⾏若⼲个程序。

⽗进程与⼦进程

1 ⼦进程是由⼀个进程所产⽣的进程,产⽣这个⼦进程的进程称为⽗进程。
2 在Linux系统中,使⽤系统调⽤fork创建进程。fork复制的内容包括⽗进程的数据和堆栈段以及⽗进程的进程环境。
3 ⽗进程终⽌⼦进程⾃然终⽌

进程和线程的区别

进程: 就是正在执⾏的程序或命令,每⼀个进程都是⼀个运⾏的实体,都有⾃⼰的地址空间,并占⽤⼀定的系统资源。
线程: 轻量级的进程;进程有独⽴的地址空间,线程没有;线程不能独⽴存在,它由进程创建;相对讲,线程耗费的cpu和内存要⼩于进程。
进程管理的作⽤:判断服务器的健康状态;查看系统所有的进程;杀死进程.

前台进程和后台进程

前台进程:
在Shell提示处打⼊命令后,创建⼀个⼦进程,运⾏命令,Shell等待命令退出,然后返回到对⽤户给出提示符。这条命令与Shell异步运⾏,即在前台运⾏,⽤户在它完成之前不能执⾏另⼀个命令。
后台进程:
在Shell提示处打⼊命令,若后随⼀个&,Shell创建的⼦进程运⾏此命令,但不等待命令退出,⽽直接返回到对
⽤户给出提示。这条命令与Shell同步运⾏,即在后台运⾏。后台进程必须是⾮交互式
的。

ps

作⽤:查看系统中的进程信息
语法:ps [-auxle]
常⽤选项
a:显示所有⽤户的进程
u:显示⽤户名和启动时间
x:显示没有控制终端的进程
e:显示所有进程,包括没有控制终端的进程
l:⻓格式显示

查看系统中所有进程

ps aux #查看系统中所有进程,使⽤BSD操作系统格式,unix
ps -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 查看指定进程信息

pstree

作⽤:查看当前进程树
注意:先安装软件包 psmisc
yum -y install psmisc
语法:pstree [选项]
-p 显示进程PID
-u 显示进程的所属⽤户

top

作⽤:查看系统健康状态
显示当前系统中耗费资源最多的进程,以及系统的⼀些负载情况。
语法:top [选项]
-d 秒数,指定⼏秒刷新⼀次,默认3秒(动态显示

kill

作⽤:关闭进程
语法:kill [-选项] pId
eg: [root@qianfeng01 ~]# kill -9 进程号(强⾏关闭) 常⽤
eg: [root@qianfeng01 ~]# kill -1 进程号(重启进程)
eg: [root@qianfeng01 ~]# killall -l 关闭所有进程(忽略进程名的⼤⼩写)

W

作⽤: 查看⽤户信息
语法: w ⽤户名
eg: [root@qianfeng01 ~]# w root
显示:
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.158.3 06:02 0.00s 0.13s 0.00s w root
解释:
JCPU:以终端代号来区分,该终端所有相关的进程执⾏时,所消耗的CPU时间会显示在这⾥
PCPU:CPU执⾏程序耗费的时间
WHAT:⽤户正在执⾏的操

nohup

作⽤: 使进程在⽤户退出登陆后仍旧继续执⾏,nohup命令将执⾏后的数据信息和错误信息默认储存到⽂件nohup.out中
语法: nohup program & &在后台运⾏的意思
eg: [root@qianfeng01 ~]# nohup ping www.baidu.com &
使⽤: [root@qianfeng01 ~]# ps -ef | grep ping 查看当前的ping进程

uptime

作⽤: 查看负载
例如: 使⽤uptime确定是服务器还是⽹络出了问题。如果⽹络应⽤程序运⾏,运⾏uptime来了解系统负载是否很⾼。如果负载不⾼,这个问题很有可能是由于⽹络引起的⽽⾮服务器。
语法: uptime
eg: 执⾏: [root@qianfeng01 ~]# uptime
显示: 06:32:04 up 19:57, 4 users, load average: 0.00, 0.01,0.00
解释: 系统时间 ⽤户数量 服务器在过去的1分钟、5分钟、15分钟的系统平均负载值

⽤户管理命令

su

语法: su ⽤户名
作⽤: 切换⽤户
eg: [root@qianfeng01 ~]# su root 切换回root⽤户,注意:如果是root⽤户,每次都会要求输⼊密码.普通的⽤户可以直接切换

useradd

添加⽤户
语法:useradd [选项] ⽤户名

passwd

修改密码命令
语法:passwd [选项][⽤户名]
⽤户密码:⽣产环境中,⽤户密码⻓度8位以上,设置⼤⼩写加数字加特殊字符,要定期
更换密码。
ys^h_L9t

userdel

删除⽤户
-r 删除账号时同时删除宿主⽬录(remove)
注意:⼀个⽤户已经打开,需要删除
做法:先跳到当前⽤户下⾯,执⾏exit 或 exit ⽤户名。这时会⾃动跳回root界⾯。
如果还是⽆法删除,可以将系统重启

groupadd

⽤于添加组
-g 指定gid

groupmod

⽤于修改组
-n 更改组名(new group)
[root@qianfeng01 ~]# groupmod -n new_gname old_gname

⽂件权限命令

三种基本权限

r 读权限(read)
w 写权限(write)
x 执⾏权限 (execute)

权限说明

在这里插入图片描述

所有者 所属组 其他⼈
第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-cat,more,head,tail,less
w-echo,vi
x-命令,脚本
对于⽬录,我们有执⾏权限的命令:
r-ls
w-touch,mkdir,rm,rmdir
x-cd
能删除⽂件的权限是必须对该⽂件所在的⽬录有wx权限。

chmod

⽤于权限更改
英⽂:change mode (change the permissions mode of a file)
作⽤:改变⽂件或⽬录权限
语法:
chmod [{ugoa}{+-=}{rwx}][⽂件名或⽬录]
chmod [mode=421][ ⽂件或⽬录]
参数:-R 下⾯的⽂件和⼦⽬录做相同权限操作(Recursive递归的)
可以有修改⼀个⽂件的权限:
1.root
2.⽂件所有者
eg: [root@qianfeng01 ~]# chmod u+x a.txt
eg: [root@qianfeng01 ~]# chmod u+x,o-x a.txt
⽤数字来表示权限(r=4,w=2,x=1,-=0)
eg: [root@qianfeng01 ~]# chmod 750 b.txt
rwx和数字表示⽅式能随意切换
注意:root⽤户是超级⽤户,不管有没有权限,root都能进⾏更改。⽤普通⽤户测试
权限。
不能⽤⼀个普通⽤户去修改另⼀个普通⽤户的权限。

chown

⽤于更改所有者
英⽂:change file ownership
作⽤:更改⽂件或者⽬录的所有者
语法 : chown user[:group] file...
-R : 递归修改
参数格式 : user : 新的档案拥有者的使⽤者 ID
group : 新的档案拥有者的使⽤者群体(group)
eg:[root@qianfeng01 ~]# chown lee file1 把file1⽂件的所有者改为
⽤户lee
eg:[root@qianfeng01 ~]# chown lee:test file1 把file1⽂件的所有
者改为⽤户lee,所属组改为test
eg:[root@qianfeng01 ~]# chown –R lee:test dir 修改dir及其⼦⽬录的所有者和所属组

chgrp

⽤于改变所属组
英⽂:change file group ownership
作⽤:改变⽂件或⽬录的所属组
语法 : chgrp [group] file...
eg: [root@qianfeng01 ~]# chgrp root test.log 把test.log的所属组
修改为root

sudo权限的配置

作⽤

root把本来只能超级⽤户执⾏的命令赋予普通⽤户执⾏。
sudo的操作对象是系统命令

修改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分钟的有效期限,超过期限则必须重新输⼊密码。

语法

sudo(选项)(参数)
选项
-b:在后台执⾏指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执⾏sudo时便需要输⼊密码;
-l:列出⽬前⽤户可执⾏与⽆法执⾏的指令;
-p:改变询问密码的提示符号;
-s:执⾏指定的shell;
-u<⽤户>:以指定的⽤户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延⻓密码有效期限5分钟;
-V :显示版本信息。

实例

说明信息

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将不会再运⾏,直到错误被纠正。

实例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⽬录

实例2

我们限制⼀下hd1的权利。⽐如我们只想让他像root那样使⽤ls和ifconfig,继续修改sudoers⽂件
db1 ALL=(ALL) /sbin/ifconfig, /bin/ls,/usr/bin/head

再次切换到hd1⽤户,执⾏命令:
[root@qianfeng01 ~]# sudo head -5 /etc/shadow 这是提示hd1没有权限执⾏这个命令.

免密设置

我们这样再添加⼀⾏配置⽂件
hdp1 ALL=NOPASSWD: /bin/cat, /usr/bin/head
再来sudo⼀下:不再需要密码

## 实例

### 说明信息

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将不会再运⾏,直到错误被纠正。


### 实例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⽬录

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值