Linux 常用命令

1.linux常见命令

1.1文件处理命令

1.1.1 cd

英文:change directory 命令路径:内部命令 执行权限:所有用户

命令含义
cd切换工作目录
cd -回到上一次的操作所在位置
cd ~回到用户家目录
cd ./当前目录
cd …/回到上一级目录
cd回到用户家目录

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

1.1.3 pwd

英文:print working directory	命令路径:/bin/pwd		
执行权限:所有用户

作用:显示当前工作目录

linux下的路径

pwd: 打印当前工作目录(全目录)

绝对路径: 以根目录为开始的目录

相对路径: 相对当前目录的路径

语法: pwd [-LP]   

eg: [root@qianfeng01 ~]# cd /etc/init.d

pwd [-P]

1.1.4 mkdir 创建文件夹

英文:make directories	命令路径:/bin/mkdir	执行权限:所有用户

作用:创建新目录

语法:mkdir [-p] 目录名

-p 父目录不存在情况下先生成父目录 (parents)

eg: [root@qianfeng01 ~]# mkdir linux/test  
如果目录linux不存在,则报错,使用参数-p即可自动创建父目录

1.1.5 touch 创建文件

命令路径:/bin/touch		执行权限:所有用户

作用:创建空文件或更新已存在文件的时间      

语法:touch 文件名    

eg: [root@qianfeng01 ~]# touch  a.txt  b.txt   touch {a.txt,b.txt}    
同时创建多个文件,注意:后面{}中,中间不能有空格

eg: [root@qianfeng01 ~]# touch "program files"  创建带空格的文件 

1.1.6 echo 输出

命令路径:/bin/echo	执行权限:所有用户

作用:查看某些环境变量/给文件增加内容(将文件创建出来)

语法:echo '字符串'  > 文件名   

eg:
[root@localhost home]# echo "helloworld"
helloworld
# 打印到a.txt 中
[root@localhost home]# echo "helloworld" > a.txt
[root@localhost home]# cat a.txt
helloworld
#  > 表示打印的地方,是覆盖的意思,不管a.txt以前是否有内容
[root@localhost home]# echo "helloworld" > a.txt
[root@localhost home]# cat a.txt
helloworld

#  >> 是追加的意思
[root@localhost home]# echo "helloworld" >> a.txt
[root@localhost home]# cat a.txt
helloworld
helloworld

#  echo 可以打印系统变量,系统变量是区分大小写的,而且是$ 修饰的
[root@localhost home]# echo $PWD
/home
[root@localhost home]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost home]# pwd
/home
[root@localhost home]# echo $pwd
啥也查不出来

1.1.7 cp 复制

英文:copy		命令路径:/bin/cp		执行权限:所有用户

作用:复制文件或目录

语法:cp [–rp]  源文件或目录	 目的目录

可以将一个文件或者文件夹拷贝到另一个地方

eg:
#第一个是相对路径的写法,就是把/home 文件夹下的 a.txt 拷贝到 a里面
[root@localhost home]# cp a.txt a
[root@localhost home]# ls
a  aaa  a.txt  b  bbb  ccc  c.txt  d.txt  e.txt  software
[root@localhost home]# ls a
a.txt  b

#绝对路径
[root@localhost home]# cp /home/a.txt /home/aaa
[root@localhost home]# ls aaa
a.txt
[root@localhost home]# cp bbb aaa
cp: 略过目录"bbb"
[root@localhost home]# cp -r bbb aaa

解释一下: -r  其实是递归的意思,现在可以理解为文件夹中有可能里面继续嵌套文件夹,所以要 加 -r
以后大部分命令,只要是文件夹操作,都需要加 -r

1.1.8 mv 剪切

move 移动 
[root@localhost home]# mv c.txt ccc
[root@localhost home]# ls
a  aaa  a.txt  b  bbb  ccc  d.txt  e.txt  software
[root@localhost home]# mv d.txt e.txt b
mv: 目标"b" 不是目录
[root@localhost home]# mv d.txt e.txt aaa
[root@localhost home]# ls
a  aaa  a.txt  b  bbb  ccc  software
[root@localhost home]# mv ccc bbb
[root@localhost home]# ls
a  aaa  a.txt  b  bbb  software

总结:不管是移动文件还是移动文件夹 都不需要添加任何的参数

mv 还有另一个作用:重命名
[root@localhost home]# mv a.txt abc.txt
[root@localhost home]# ls
a  aaa  abc.txt  b  bbb  software
[root@localhost home]# mv aaa abc
[root@localhost home]# ls
a  abc  abc.txt  b  bbb  software

1.1.9 rm 删掉的意思(慎重)

英文:remove 	命令路径:/bin/rm		执行权限:所有用户

作用:删除文件

语法: rm [-rf] 文件或目录

[root@localhost home]# rm abc.txt
rm:是否删除普通文件 "abc.txt"?y

-f 表示不需要询问,直接强制删除
[root@localhost home]# rm -f b
[root@localhost home]# rm -f bbb
rm: 无法删除"bbb": 是一个目录

-r 删除目录,要加 -r 表示一层层的删除,递归的意思
[root@localhost home]# rm -rf bbb

谨慎操作:  rm -rf /  不要操作!!!

1.1.10 vi编辑器

vim/vi是Unix / Linux上最常用的文本编辑器而且功能非常强大。

只有命令,没有菜单。

image-20210325165006776

  1. 插入命令
命令描述
a在光标后附加文本
A (shift + a)在本行末尾附加文本
i在光标前附加文本
I (shift + i)在本行行首附加文本
o在光标下插入新行
O (shift + o)在光标上插入新行
  1. 定位命令
命令描述
:set nu显示行号
:set nonu取消行号显示
gg跳转到第一行
G跳转到最后一行
nG跳转到第n行
:n跳转到第n行
  1. 保存和退出命令
命令描述
:w保存修改的内容
:w file_name另存为指定文件,如果文件不存在,会创建一个新的文件
:w >> file_name将内容追加到指定文件中,这个文件需要事先存在
:wq保存修改并退出
shift + zz (ZZ)保存修改并退出(快捷键)
:q!不保存修改的内容并强制退出
:wq!强制保存修改并退出(文件的所有者可以忽略只读权限,进行修改)
eg:
1. 如果文本没有修改,可以使用:q退出
2. 如果文本内容已经修改,无法使用:q进行退出,需要使用:q!强制退出
3. 有突发的情况,导致窗口异常退出的时候,需要删除与文件同名的.swp文件

4.删除命令

命令描述
x删除光标所在处字符 nx 删除光标所在处后n个字符
dd删除光标所在行,ndd删除n行
:n1,n2d删除指定范围的行(eg :1,3d 删除了123这三行)
dG删除光标所在行到末尾的内容
D删除从光标所在处到行尾
  1. 复制和剪切命令
命令作用
yy、Y复制当前行
nyy、nY复制当前行以下n行
dd剪切当前行
ndd剪切当前行以下n行
p粘贴在当前光标所在行下一行
P粘贴在当前光标所在行上一行
  1. 替换和查找命令
命令描述
r取代光标所在处字符
R(shift + r)从光标所在处开始替换字符,按Esc结束
uundo,取消上一步操作
ctrl+rredo,返回到undo之前
  1. 搜索和替换命令
命令作用
/string向后搜索指定字符串
?string向前搜索指定字符串
n搜索字符串的下一个出现位置,与搜索顺序相同
N(Shift + n)搜索字符串的上一个出现位置,与搜索顺序相反
:%s/old/new/g全文替换指定字符串
:n1,n2s/old/new/g在一定范围内替换指定字符串

1.2 查看命令

1.2.1 cat

英文:concatenate 	命令路径:/bin/cat		执行权限:所有用户

作用:显示文件内容,直接显示全部内容

语法:cat [-n][文件名]

-A  显示所有内容,包括隐藏的字符   

-n	显示行号     

eg:[root@qianfeng01 ~]# cat /etc/services

1.2.2 more

命令路径:/bin/more		执行权限:所有用户

作用:分页显示文件内容

语法:more [文件名]

空格或f   显示下一页

enter键   显示下一行

q或Q  退出

相关指令:less

1.2.3 head

命令路径:/usr/bin/head		执行权限:所有用户

作用:查看文件前几行(默认10行)

语法:head [文件名]

-n 指定行数 

eg:[root@qianfeng01 ~]# 
head -20 /etc/services   
head –n 3 /etc/services

1.2.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文件中,并进行内容的追加

1.3 搜索查找命令

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

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

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

1.3.4 whereis

命令路径:/usr/bin/whereis		执行权限:所有用户

作用:搜索命令所在目录 配置文件所在目录  及帮助文档路径      

eg: 
[root@qianfeng01 ~]# which passwd    和   [root@qianfeng01 ~]#whereis  passwd   

eg: 查看/etc/passwd配置文件的帮助,就用  man 5 passwd

1.4 磁盘的操作命令

1.4.1 df

作用:用于查看Linux文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。看剩余空间

语法:df [-hkam][挂载点]

-h  (human-readable)根据磁盘空间和使用情况 以易读的方式显示 KB,MB,GB等

-k   以KB 为单位显示各分区的信息,默认

-m   以MB为单位显示信息

-a   显示所有分区包括大小为0 的分区

1.4.2 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 /

1.4.3 free

作用:显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。

语法: free [-kmg]

选项:

-k:  以KB为单位显示,默认就是以KB为单位显示

-m:  以MB为单位显示

-g:  以GB为单位显示

清理缓存命令:

eg: [root@qianfeng01 ~]# echo 1 > /proc/sys/vm/drop_caches

1.5 打包压缩命令

1.5.1 gzip

英文:GNU zip 	命令路径:/bin/gzip		执行权限:所有用户

作用:压缩(解压)文件,压缩文件后缀为.gz    

gzip 只能压缩文件,不能压缩目录;不保留原文件

语法:gzip 文件
 
-d   将压缩文件解压(decompress)

解压使用gzip –d或者 gunzip

1.5.2 bzip2

命令路径:/usr/bin/bzip2		执行权限:所有用户

作用:压缩(解压)文件,压缩文件后缀为.bz2

语法:bzip2 [-k][文件]   

-k: 产生压缩文件后保留原文件(压缩比高)

-d: 解压缩的参数(decompress)

解压使用bzip2 –d或者 bunzip2

1.5.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,会进行覆盖

1.5.4 tar

命令路径:/bin/tar	执行权限:所有用户

作用:文件、目录打(解)包

语法:tar [-zcf] 压缩后文件名  文件或目录

-c 建立一个压缩文件的参数指令(create),后缀是.tar

-x 解开一个压缩文件的参数指令(extract)

-z 以gzip命令压缩/解压缩  

-j  以bzip2命令压缩/解压缩 

-v 压缩的过程中显示文件(verbose)

-f file 指定文件名,必选项

1.5.5 示例

  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
    
  2. 示例

    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        解压
    
  3. 最常用: tar + gzip

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

1.6 linux快捷键命令

善于查看man help等帮助文档 

利用好Tab键  自动补全

掌握好一些快捷键

ctrl + c(停止当前进程)

ctrl + z  挂起当前进程,放后台

ctrl + r(查看命令历史) history

ctrl + l(清屏,与clear命令作用相同)

对当前命令行的操作:

方向箭头  上 下 可以查看执行过的命令并再次使用

ctrl + a  行首 ctrl + e 行尾  ctrl+d  清除当前的字符

ctrl + k  清除光标后面的内容   ctrl+ w 清除光标前面的单词

1.7 网络相关操作

1.7.1 修改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配置失败禁用设备   建议删掉
    
  2. 重启网络生效

    CentOS 6: service network restart
    CentOS 7: systemctl restart network
    

1.7.2 关闭防火墙

  1. 立即关闭防火墙,重启后生效

    [root@qianfeng01 ~]# systemctl start firewalld		[开启防火墙]
    [root@qianfeng01 ~]# systemctl stop firewalld	    [关闭防火墙]
    [root@qianfeng01 ~]# systemctl restart firewalld  [重启防火墙]
    [root@qianfeng01 ~]# systemctl status firewalld   [查看防火墙运行状态]
    
  2. 关闭防火墙开机自启动

    [root@qianfeng01 ~]# systemctl enable firewalld	  [打开开机自启动]
    [root@qianfeng01 ~]# systemctl disable firewalld  [关闭开机自启动]
    

1.7.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

1.7.4 网络通信命令

1.7.4.1. ping
命令路径:/bin/ping		执行权限:所有用户
作用:测试网络的连通性
语法:ping 选项 IP地址 
-c 指定发送次数    
ping 命令使用的是icmp协议,不占用端口
eg: [root@qianfeng01 ~]#ping -c 3 127.0.0.1
1.7.4.2. ip addr
英文:interface configure 命令路径:/sbin/ifconfig		执行权限:root

作用:查看和设置网卡网络配置

语法:ifconfig [-a][网卡设备标识]   

-a:  显示所有网卡信息

ifconfig  网卡名字    查看单个的网卡信息
1.7.4.3. 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   查看端口

1.7.5 修改主机名

  • 临时生效: hostname qianfeng01
  • 永久生效: hostnamectl set-hostname qianfeng01

1.7.6 修改映射关系

修改主机名和ip地址之间的映射关系

执行 [root@qianfeng01 ~]# vim /etc/hosts   进入hosts文件,加入代码  

主机ip   			主机名

192.168.10.111      qianfeng01

192.168.10.112      qianfeng02

192.168.10.113      qianfeng03

最好让主机名字,虚拟机名字,网络连接名字保持一致

1.8 进程管理命令

1.8.1 进程和程序的区别

1 程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。

2 程序和进程无一一对应关系。一个进程在活动中可有顺序地执行若干个程序。

1.8.2 父进程与子进程

1 子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程。

2 在Linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。

3 父进程终止子进程自然终止。

1.8.3 进程和线程的区别

进程: 就是正在执行的程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

线程: 轻量级的进程;进程有独立的地址空间,线程没有;线程不能独立存在,它由进程创建;相对讲,线程耗费的cpu和内存要小于进程。

进程管理的作用:判断服务器的健康状态;查看系统所有的进程;杀死进程.

1.8.4 前台进程和后台进程

前台进程:

在Shell提示处打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行另一个命令。 

后台进程:

在Shell提示处打入命令,若后随一个&,Shell创建的子进程运行此命令,但不等待命令退出,而直接返回到对

用户给出提示。这条命令与Shell同步运行,即在后台运行。后台进程必须是非交互式的。

1.8.5 ps

作用:查看系统中的进程信息

语法:ps [-auxle]

常用选项

a:显示所有用户的进程

u:显示用户名和启动时间

x:显示没有控制终端的进程

e:显示所有进程,包括没有控制终端的进程

l:长格式显示

1.8.6 查看系统中所有进程

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        查看指定进程信息

1.8.7 pstree

作用:查看当前进程树

语法:pstree [选项]

-p  显示进程PID

-u  显示进程的所属用户

1.8.8 top

作用:查看系统健康状态  

显示当前系统中耗费资源最多的进程,以及系统的一些负载情况。

语法:top [选项]

-d 秒数,指定几秒刷新一次,默认3秒(动态显示)

1.8.9 kill

作用:关闭进程

语法:kill [-选项] pId

eg: [root@qianfeng01 ~]# kill -9 进程号(强行关闭)  常用
	
eg: [root@qianfeng01 ~]# kill -1 进程号(重启进程)

eg: [root@qianfeng01 ~]# killall -l  关闭所有进程(忽略进程名的大小写)

1.8.10 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:用户正在执行的操作

1.8.11 nohup

作用: 使进程在用户退出登陆后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认储存到文件nohup.out中

语法: nohup program &      &在后台运行的意思

eg: [root@qianfeng01 ~]# nohup ping  www.baidu.com  &

使用: [root@qianfeng01 ~]# ps -ef  | grep  ping 查看当前的ping进程

1.8.12 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分钟的系统平均负载值

1.8.13用户管理命令

1.8.13.1. su
语法:  su  用户名

作用:  切换用户

eg: [root@qianfeng01 ~]# su  root    切换回root用户,注意:如果是root用户,每次都会要求输入密码.普通的用户可以直接切换
1.8.13.2. useradd
添加用户

语法:useradd [选项] 用户名
1.8.13.3. passwd
修改密码命令

语法:passwd [选项][用户名]

用户密码:生产环境中,用户密码长度8位以上,设置大小写加数字加特殊字符,要定期更换密码。

ys^h_L9t  
1.8.13.4. userdel
删除用户

-r 删除账号时同时删除宿主目录(remove)

注意:一个用户已经打开,需要删除

做法:先跳到当前用户下面,执行exit  或 exit 用户名。这时会自动跳回root界面。

如果还是无法删除,可以将系统重启
1.8.13.5. groupadd
用于添加组

-g 指定gid
1.8.13.6. groupmod
用于修改组

-n 更改组名(new group)

[root@qianfeng01 ~]# groupmod  -n new_gname old_gname
1.8.13.7. groupdel
用于删除组

如果要删除的组归属于某一个用户的所属组,则不能删除该组

[root@qianfeng01 ~]# useradd -g hadoop hdfs

[root@qianfeng01 ~]# groupdel hadoop

1.8.14 文件权限命令

1.8.14.1. 三种基本权限
r 读权限(read)

w 写权限(write)

x 执行权限 (execute)
1.8.14.2. 权限说明

image-20210326152735995

所有者  所属组  其他人

第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,less

w-echo,vi

x-命令,脚本

对于目录,我们有执行权限的命令:

r-ls

w-touch,mkdir,rm,rmdir

x-cd 

能删除文件的权限是必须对该文件所在的目录有wx权限。
1.8.14.3. 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都能进行更改。用普通用户测试权限。

不能用一个普通用户去修改另一个普通用户的权限。
1.8.14.4. 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及其子目录的所有者和所属组
1.8.14.5. chgrp
用于改变所属组

英文:change file group ownership

作用:改变文件或目录的所属组

语法 : chgrp [group] file... 

eg: [root@qianfeng01 ~]# chgrp root test.log    把test.log的所属组修改为root

1.8.15 sudo权限的配置

1.8.15.1. 作用
root把本来只能超级用户执行的命令赋予普通用户执行。

sudo的操作对象是系统命令
1.8.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分钟的有效期限,超过期限则必须重新输入密码。
1.8.15.3. 语法
sudo(选项)(参数)
选项 

-b:在后台执行指令;

-h:显示帮助; 

-H:将HOME环境变量设为新身份的HOME环境变量; 

-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;

-l:列出目前用户可执行与无法执行的指令; 

-p:改变询问密码的提示符号; 

-s:执行指定的shell; 

-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份; 

-v:延长密码有效期限5分钟; 

-V :显示版本信息。
1.8.15.4. 实例
1.8.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将不会再运行,直到错误被纠正。 
1.8.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目录
1.8.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没有权限执行这个命令.
1.8.15.4.4. 免密设置
我们这样再添加一行配置文件
hdp1 ALL=NOPASSWD: /bin/cat/ls, /usr/bin/sudo
再来sudo一下:不再需要密码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值