centos7系统常用命令

本文已列出大部分常用的命令,其余命令可参考链接:

https://blog.csdn.net/weixin_39951988/article/details/87613816#2.5%C2%A0which%E5%91%BD%E4%BB%A4

一、修改主机名

[root@localhost ~]# hostnamectl set-hostname 名字  #修改名称
[root@localhost ~]# reboot -f   #重启虚拟机

二、linux系统目录结构详解

2.1 /bin

存放经常使用的指令,比如ls,cp,rm

2.2 /sbin

系统管理员使用的系统管理命令

2.3 /home

存放普通用户的主目录,在linux中每个用户都有一个自己的目录,一般该目录是以该用户的账号名为目录名

2.4 /root

系统管理员的用户主目录

2.5 /boot

存放的是启动linux是的核心文件

2.6 /lib

存放库文件的目录

2.7 /etc

存放所有系统管理所需要的配置文件,如果我们的网卡

2.8 /usr

用户的很多应用程序和文件都放在这个目录,有点像windows中的program files目录

2.9 /proc 别动

这是系统内存的映射

2.10 /srv ,别动

service 的缩写,存放的是一些服务启动之后所需要的数据

2.11 /sys 别动

系统相关的文件

2.12 /tmp

用来存放临时文件

2.13 /dev

类型与windows的设备管理器,把所有的硬件用文件的形式存储

2.14 /media

linux 会识别一些设备,比如u盘,光驱,linux会把这个设备挂载到这个目录底下

2.15 /mnt

用于让用户临时挂载别的文件系统,我们可以将外部的存储挂载在/mnt上,我们进入目录进行查看

2.16 /opt

这个一般用来放安装包的

2,17 /var

存放经常需要被修改的文件,比如日志文件

2,18 /usr/local

程序安装后存放的地方

三、文件系统常用命令

3.1pwd 显示当前所在的路径

pwd -->print working directory 显示打印当前所在的目录
[root@test1 sysconfig]# pwd
/etc/sysconfig
[root@test1 sysconfig]# 

3.2cd 切换目录结构

解释:cd --> change directory 改变目录信息
用法:cd 你想要去的路径

绝对路径:
[root@test1 network-scripts]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@test1 network-scripts]# cd /tmp
[root@test1 tmp]# pwd
/tmp

相对路径的用法:
[root@test1 tmp]# cd /etc/sysconfig/
[root@test1 sysconfig]# pwd
/etc/sysconfig
[root@test1 sysconfig]# cd network-scripts/
[root@test1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@test1 network-scripts]# 

快速回到自己进过的目录:
[root@test1 sysconfig]# cd /etc/sysconfig/
[root@test1 sysconfig]# pwd
/etc/sysconfig
[root@test1 sysconfig]# cd /tmp
[root@test1 tmp]# pwd
/tmp
[root@test1 tmp]# cd -
/etc/sysconfig
[root@test1 sysconfig]# pwd
/etc/sysconfig


返回当前路径的上一级目录中:
[root@test1 sysconfig]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@test1 network-scripts]# cd ../
[root@test1 sysconfig]# pwd
/etc/sysconfig
[root@test1 sysconfig]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@test1 network-scripts]# cd ../..
[root@test1 etc]# pwd
/etc
[root@test1 etc]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# cd ../../
[root@test1 etc]# pwd
/etc
[root@test1 etc]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# cd ../../../../../../../../../
[root@test1 /]# pwd
/

如果返回到当前登入用户的家目录
[root@test1 /]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@test1 network-scripts]# cd ~
[root@test1 ~]# pwd
/root
[root@test1 ~]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@test1 network-scripts]# cd 
[root@test1 ~]# pwd
/root

3.3mkdir 创建目录信息

mkdir ---> make directory 
[root@zgh1 movie]# mkdir file2
[root@zgh1 movie]# pwd
/movie

用-p参数创建多级目录
[root@zgh1 movie]# mkdir -p file3/file3.1
[root@zgh1 movie]# cd file3/file3.1/
[root@zgh1 file3.1]# pwd
/movie/file3/file3.1
[root@zgh1 file3.1]# 

我们在创建目录的时候做好是绝对路径创建

3.4创建文件touch

[root@zgh1 movie]# touch abc.txt
[root@zgh1 movie]# ls
abc.txt  file2  file3  movies
[root@zgh1 movie]# touch /test1/test.txt
touch: cannot touch ‘/test1/test.txt’: No such file or directory
[root@zgh1 movie]# ls
abc.txt  file2  file3  movies
[root@zgh1 movie]# touch /file2/file.txt
touch: cannot touch ‘/file2/file.txt’: No such file or directory
[root@zgh1 movie]# touch /movie/file2/file.txt

3.5ls检查文件或者目录是否存在,并列出目录下的文件

[root@zgh1 /]# ls
bin   etc   lib64  movie   proc  sbin  tmp
boot  home  media  movie1  root  srv   usr
dev   lib   mnt    opt     run   sys   var
[root@zgh1 /]# ls -l

#ls -l 默认是创建时间最新到最老排序
lrwxrwxrwx.   1 root root    7 Mar  5 14:15 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Mar  5 14:23 boot
drwxr-xr-x.  20 root root 3220 Mar  6 15:17 dev
drwxr-xr-x.  80 root root 8192 Mar  7 10:29 etc
drwxr-xr-x.   3 root root   20 Mar  6 15:37 home
lrwxrwxrwx.   1 root root    7 Mar  5 14:15 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Mar  5 14:15 lib64 -> usr/li

# 如何按照时间的创建顺序反排
ls -ltr 
drwxr-xr-x.   2 root root    6 Apr 11  2018 srv
drwxr-xr-x.   2 root root    6 Apr 11  2018 opt
drwxr-xr-x.   2 root root    6 Apr 11  2018 mnt
drwxr-xr-x.   2 root root    6 Apr 11  2018 media
lrwxrwxrwx.   1 root root    7 Mar  5 14:15 bin -> usr/bin
lrwxrwxrwx.   1 root root    9 Mar  5 14:15 lib64 -> usr/lib64

3.6cat查看文件信息的命令

concatenate

# cat查看文件内容
[root@zgh1 movie]# cat abc.txt 
hello

# 查看多个文件的内容同时输出
[root@zgh1 movie]# cat abc.txt  abc1.txt 
hello
world

#将多个文件的内容读取出来以后,放入到一个文件当中

[root@zgh1 movie]# cat abc.txt  abc1.txt > abc2.txt
[root@zgh1 movie]# cat abc2.txt 
hello
world

3.7echo将信息进行输出

# 直接输出信息
[root@zgh1 movie]# echo "hai girl"
hai girl

#将echo的内容写入文件,> 是覆盖的意思,>> 是追加
# 格式:echo 内容 > 文件
# 格式:echo 内容 >> 文件

[root@zgh1 movie]# echo hai girl > abc1.txt 
> 是覆盖的意思,会覆盖原来文件内的内容
[root@zgh1 movie]# cat abc1.txt 
hai girl

>> 是追加
[root@zgh1 movie]# echo you are so pretty >> abc1.txt 
[root@zgh1 movie]# cat abc1.txt 
hai girl
you are so pretty

3.8cp复制

cp ---> cope
语法格式: cp 参数(可选) 要进行复制的信息  复制到什么位置

#复制文件

在复制文文件时,不要在文件名称后面加/,一般只能在目录后面加/
[root@zgh1 movie]# cp abc.txt abc3.txt
[root@zgh1 movie]# cat abc3.txt 
hello
[root@zgh1 movie]# ls
abc1.txt  abc3.txt  file2  movies
abc2.txt  abc.txt   file3

[root@zgh1 movie]# cp abc.txt movies/
[root@zgh1 movie]# cp abc.txt movies/test.txt
[root@zgh1 movie]# cd movies/
[root@zgh1 movies]# ls
abc.txt  loveyou  test.txt


#如果存在会请求你是否覆盖
[root@zgh1 movies]# cp test.txt abc.txt
cp: overwrite ‘abc.txt’? y


#复制文件夹

[root@zgh1 movies]# cp loveyou/ loveyou1/
cp: omitting directory ‘loveyou/’
[root@zgh1 movies]# cp -r loveyou/ loveyou1/

cp  参数:
-d 和链接相关的文件
-r 进行递归复制
-p 保持属性不变
-a == -drp

#利用cp 做备份
[root@zgh1 movie]# cp abc.txt test1.txt
[root@zgh1 movie]# ls
abc1.txt  abc3.txt  file2  file4  movies
abc2.txt  abc.txt   file3  file5  test1.txt

[root@zgh1 movie]# rm -rf abc3.txt 
[root@zgh1 movie]# ls
abc1.txt  abc.txt  file3  file5   test1.txt
abc2.txt  file2    file4  movies


# 多文件信息重复,会多次确认提示,如何避免
#解决方法
[root@zgh1 file4]# \cp -r /movie1/movies/loveyou/one/abc/ /movie/file4/ 
[root@zgh1 file4]# ls
abc

3.9mv剪切命令

mv -->move
对文件或者文件夹进行剪切(移动)
语法格式 : mv 参数(可选) 要移动的文件或者文件夹  移动什么位置
可以是绝对路径也可以是相对路径(绝对路径是从根目录开始的路径)
#我们要先创建这个文件

移动文件
[root@zgh1 movie1]# mkdir test
[root@zgh1 movie1]# ls
file2.txt  test
[root@zgh1 movie1]# mv file2.txt test
[root@zgh1 movie1]# ls
test
[root@zgh1 movie1]# cd test
[root@zgh1 test]# ls
file2.txt
移动文件夹
[root@zgh1 movie1]# mkdir dir1
[root@zgh1 movie1]# ls
dir1  test
[root@zgh1 movie1]# mv test/ dir1/
[root@zgh1 movie1]# ls
dir1
[root@zgh1 movie1]# cd dir1/
[root@zgh1 dir1]# ls
test


# 利用mv 命令给文件重命名
[root@zgh1 test]# ls
file2.txt
[root@zgh1 test]# mv file2.txt file.txt
[root@zgh1 test]# ls
file.txt

3.10rm 命令(删除)

rm --->remove
语法 :rm 参数 要删除的数据信息

#删除文件
[root@zgh1 test]# ls
file.txt
[root@zgh1 test]# rm file.txt 
rm: remove regular file ‘file.txt’? y
[root@zgh1 test]# ls
[root@zgh1 test]# 

#删除文件夹
[root@zgh1 abc]# rm -f /movie/
rm: cannot remove ‘/movie/’: Is a directory
[root@zgh1 abc]# rm -r /movie/
rm: descend into directory ‘/movie/’? y


# 强制删除rm -rf,该命令不会询问直接删除
[root@zgh1 abc]# rm -rf /movie/
[root@zgh1 abc]# cd /
[root@zgh1 /]# ls
bin   dev  home  lib64  mnt     opt   root  sbin  sys  usr
boot  etc  lib   media  movie1  proc  run   srv   tmp  var
说明centos6.7以后对删除根目录做了保护,但是删除根目录仍然会对系统造成损坏
rm -rf /

3.11vim 编辑器

换源到阿里源 https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11q17Xub切换我们yum源
yum install 软件 -y 不需要征求是否同意

安装vim 
命令: yum -y install vim 

vim 有种状态
1 正常模式(我们用vim打开文件就是进入正常模式)
    比如复制,粘贴等
    
2 插入模式
    在插入模式下,我们们输入内容,编辑内容
    如何从正常模式切换插入模式:i,o,a,I,O,A,R任意一个键都能重正常模式进入插入模式
    正常习惯按i,因为好记,i-->insert
    
3 命令模式
    在这个模式下,我们可以输入相关的命令,比如退出,,保存,等操作
终结:vim三种模式可以随意切换


正常模式下的命令:
    拷贝:yy  粘贴:p

    拷贝当前行向下2行,并粘贴
    拷贝2行:2yy
    拷贝几行数字就是几
    粘贴:p

    删除当前行
    删除:dd
    向下删除2行
    删除:2dd
    
    光标移到最后一行:   G
    光标移动了首行: gg
    光标移动2行: 2gg
    
    撤销: u
    
编辑模式下:进入以后就可以编辑



命令模式:
    1 查找内容
    :/关键字
    2 取消高亮
    :nohl
    3 显示行数
    :set nu
    4 取消行号
    :set nonu
    5 没有修改的情况下推出
    :q
    6如果我们改了,但是我们不想他保存
    :q!
    7 如果我们改了,并想保存退出,
    :wq

3.12stat命令

查看文件的访问时间,修改时间等

[root@zgh1 test]# stat file.txt 
  File: ‘file.txt’
  Size: 40          Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 8420599     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-03-07 17:30:27.457540495 +0800
Modify: 2020-03-07 17:29:21.243544671 +0800
Change: 2020-03-07 17:29:21.265544669 +0800
 Birth: -

四、关机、重启命令

shutdown 命令:
    shutdown -h now   #立即关机
    shutdown -h 1     #1分钟后关机
    shutdown -r now   # 立即重启
    shutdown -r 1     #1分钟后重启
    
halt 关机
reboot 重启
sync  把内存中的数据同步到硬盘中

注意:当关机或者从起的时候,一定要先执行sync命令,防止数据丢失。

五、用户 与用户主

5.1 为什么要用户

正常公司的服务器,不会给你root用户,就算给你root用户,你也不要要,权限越大风险就越大。正常情况下使用的是普通用户登入。当然可以切换用户

5.2 如何查看当前登入的用户

命令:

[root@localhost ~]# whoami
root

5.3 如何添加用户

useradd 选项 用户名
例如:
useradd lxx
说明:成功创建后,就会自动创建于用户名同名的家目录

给用户自定家目录
useradd -d 目录路径 用户名

指定用户组
useradd -g 用户主名 用户名

5.4 给指定用户添加或修改密码

passwd 用户名
密码最少要8个字符

5.5 如何删除用户

userdel 用户名                 删除用户,保留家目录
userdel -r 用户名              删除用户,不保留家目录

#一般不会删除用户的家目录

5.6如何查询用户是否存在

id 用户名

如何切换用户:su - 用户名
回到原来的用户: exit

5.7 编辑用户组

因为我们要对权限做同意的管理,运维,开发,方便权限的管理

1 如何添加一个组
groupadd  组名 

2 删除组
groupdel 组名

groupdel如果该组里面有用户的话,是不能删除的,除非删除这个用户

3 如何给用户切换组
usermod -g 组名 用户名

六、文件权限

查看文件权限ls -lhi /etc 最多用的是ll
结果如下:
 4261971 -rw-r--r--.  1 root root  111 Oct 31  2018 magic
 4657110 -rw-r--r--.  1 root root 2.0K Apr 11  2018 mail.rc
 4790595 -rw-r--r--.  1 root root 5.1K Aug  8  2019 makedumpfile.conf.sample
 4916208 -rw-r--r--.  1 root root 5.1K Oct 31  2018 man_db.conf
 4937598 -rw-r--r--.  1 root root  936 Aug  9  2019 mke2fs.conf
01        02          03 04   05    06      07       08

01 文件索引节点信息 inode
02 文件的类型以及文件的权限信息
03 硬链接数
04 文件所属的用户
05 文件所属的用户组
06 文件大小
07 最后一次被修改的时间
08 文件名

*******解释02***********
d    rwx    r-x    ---
1     2      3      4

上述*******解释02***********的1,表示文件的类型
d  directory 目录类型文件
-  file   普通文件
l  softlint 链接类型

上述*******解释02***********的2,表示当前用户对当前文件权限
上述*******解释02***********的3,表示当前用户组对当前文件权限
上述*******解释02***********的4,表示其他用户对当前文件的权限
总结:
文件(你的玩具) :上述*******解释02***********的2,你自己对你的玩具有什么权限
文件(你的玩具):上述*******解释02***********的3,你的家人对你的玩具有什么权限
文件(你的玩具): 上述*******解释02***********的4,隔壁老王,陌生人对你的玩具有什么权限

一个文件的权限有3位组成:
rwx --->分别代表了读,写,执行这个三个权限
r -->read-->读权限  数值 4
w --->write--->写权限  数值 2
x ---> exwcute-->执行  数值 1
- --->没有权限          数值 0

rwx  r-x  r-x  请问属主什么权限  属主组有什么权限   其他用户有什么权限
7    5    5    读 写 执行           读 执行       读 执行

############
04 文件所属的用户 root -->该文件的属主是root
05 文件所属的用户组root  ---》该文件的属主组是root组

6.1 如何修改文件的权限

语法 : chmod 参数  权限值 文件路径
[root@zgh1 movie1]# ls -lhi dir1/
total 0
8420595 drwxr-xr-x. 2 root root 6 Mar  7 16:47 test
[root@zgh1 movie1]# chmod 777 dir1/
[root@zgh1 movie1]# ls -lhi dir1/
total 0
8420595 drwxr-xr-x. 2 root root 6 Mar  7 16:47 test


让文件夹以及子文件递归变成我们指定的权限
执行 :chomd  -R 777 /dir1

6.2 如何修改文件的属主及属主组

chown 参数 用户名.组名  文件/文件夹

让文件夹以及子文件递归变成我们指定的用户.组
执行 :chown  -R jj.sb a.txt

七、换yum源

换源到阿里源复制下面源链接直接执行即可
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11q17Xub
yum安装软件的方法:yum install 软件 -y 不需要征求是否同意
上一篇:scrapy框架的创建


下一篇:Python 爬取豆瓣电影Top250排行榜,爬虫初试