Liunx 操作命令学习记录

常用的基本命令

目录管理

绝对路径、相对路径

# 切换目录命令!
cd 
# 当前目录
./ 
# 返回上一级
cd .. 

ls (列出目录)

 # 查看全部文件,包括隐藏文件
 -a, --all                  do not ignore entries starting with .
 # 列出所有的文件,包含文件的属性和权限,没有隐藏文件
 -l                         use a long listing format
 
 # 参数可以组合使用 例: ls -al

cd 命令 切换目录

cd 目录名(绝对路径都是以/开头,相对路径,对于当前目录)

pwd 显示当前用户所在的目录

[root@VM_0_9_centos home]# pwd
/home

mkdir 创建文件夹

[root@VM_0_9_centos home]# mkdir ceshi
[root@VM_0_9_centos home]# ls
ceshi  dockerfile  docker-test-volume  mysql

# 递归创建/创建多级目录 -p
[root@VM_0_9_centos home]# mkdir -p ceshi1/ceshi2
[root@VM_0_9_centos home]# ls
ceshi  ceshi1  dockerfile  docker-test-volume  mysql
[root@VM_0_9_centos home]# cd ceshi1
[root@VM_0_9_centos ceshi1]# ls
ceshi2

rmdir 删除目录

# 只能删除空的目录
[root@VM_0_9_centos home]# rmdir ceshi1
rmdir: failed to remove ‘ceshi1’: Directory not empty
# 如果下面存在文件,需要删除文件,递归删除多个目录用 -p参数
[root@VM_0_9_centos home]# rmdir -p ceshi1/ceshi2
[root@VM_0_9_centos home]# ls
ceshi  dockerfile  docker-test-volume  mysql

cp (复制文件或者目录)

# cp 原来的目录 新的目录
[root@VM_0_9_centos home]# ls
ceshi  ceshi1  dockerfile  docker-test-volume  mysql
[root@VM_0_9_centos home]# cd ceshi
[root@VM_0_9_centos ceshi]# ls
test1.java  test.java
[root@VM_0_9_centos ceshi]# cp test.java ../ceshi1
[root@VM_0_9_centos ceshi]# cd ..
[root@VM_0_9_centos home]# cd ceshi1
[root@VM_0_9_centos ceshi1]# ls
test.java

# 文件重复 拷贝会询问是否覆盖,与windows是一样的
[root@VM_0_9_centos ceshi]# cp test.java ../ceshi1
cp: overwrite ‘../ceshi1/test.java’? y

rm (移除文件或者目录!)

# -f 忽略不存在的文件,不会出现警告,强制删除
# -r 递归删除目录
# -i 互动,删除询问是否删除


[root@VM_0_9_centos ceshi1]# rm -rf test.java
[root@VM_0_9_centos ceshi1]# ls
[root@VM_0_9_centos ceshi1]# 

rm -rf / 系统中所有的文件都会被删除,且不会提示,这个命令很危险!!!!!

rm -rf / 系统中所有的文件都会被删除,且不会提示,这个命令很危险!!!!!

rm -rf / 系统中所有的文件都会被删除,且不会提示,这个命令很危险!!!!!

rm -rf / 系统中所有的文件都会被删除,且不会提示,这个命令很危险!!!!!

rm -rf / 系统中所有的文件都会被删除,且不会提示,这个命令很危险!!!!!

mv 移动文件或者

# -f 强制
# -u 只替换已经更新过的文件

# 移动文件
[root@VM_0_9_centos ceshi]# ls
test1.java  test.java
[root@VM_0_9_centos ceshi]# mv test.java ../ceshi1
[root@VM_0_9_centos ceshi]# ls
test1.java
[root@VM_0_9_centos ceshi]# cd ../ceshi1
[root@VM_0_9_centos ceshi1]# ls
test.java

#重命名文件夹
[root@VM_0_9_centos home]# mv ceshi1 ceshi2
[root@VM_0_9_centos home]# ls
ceshi  ceshi2

基本属性

看懂文件属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同用户访问同一问价(包括目录文件)的权限做了不同的规定.

在Linux中我们可以使用ll 或者ls -l命令来显示一个文件的属性以及文件所属的用户和组,如:

[root@VM_0_9_centos /]# ll
total 84
-rw-r--r--   1 root root    93 Jul 17  2020 backup.db
lrwxrwxrwx.  1 root root     7 Mar  7  2019 bin -> usr/bin
dr-xr-xr-x.  5 root root  4096 Jul 17  2020 boot
drwxr-xr-x   2 root root  4096 Nov  5  2019 data
drwxr-xr-x  19 root root  2980 Jul  8  2020 dev
drwxr-xr-x. 93 root root 12288 Jun  2 11:49 etc
drwxr-xr-x.  7 root root  4096 Jun 11 09:26 home
lrwxrwxrwx.  1 root root     7 Mar  7  2019 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Mar  7  2019 lib64 -> usr/lib64
drwx------.  2 root root 16384 Mar  7  2019 lost+found
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x   3 root root  4096 Jun  9 18:08 mydata
drwxr-xr-x   2 root root  4096 Aug 20  2020 nmon
drwxr-xr-x.  4 root root  4096 Jun  2 11:49 opt
dr-xr-xr-x  87 root root     0 Jul  8  2020 proc
dr-xr-x---.  9 root root  4096 Jun  8 11:52 root
drwxr-xr-x  30 root root  1000 Jun  7 11:16 run
lrwxrwxrwx.  1 root root     8 Mar  7  2019 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Jun  7 10:45 sys
drwxrwxrwt.  9 root root  4096 Jun 11 09:25 tmp
drwxr-xr-x. 13 root root  4096 Mar  7  2019 usr
drwxr-xr-x. 19 root root  4096 Apr 22  2020 var

实例中,boot文件的第一个属性用"d"表示."d"在Linux中代表该文件是一个目录文件

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:

  • 当为[d]则是目录 目录文件
  • 当为[-]则是文件 普通文件
  • 若是[l]则表示为链接文档(link file) 符号链接文件
  • 若是[b]则表示为装置文件里面的可供存储的接口设备(可随机存取装置) 块设备文件
  • 若是[c]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置) 字符设备文件

接下来的字符中,以三个为一组,且均为【rwx】的三个参数的组合.

其中,[r]代表可读(read)、[w]代表可写(write)、[x]代表可执行(execute)

要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[-]而已

每个文件的属性由左边第一部分的10个字符来确定

图片

从左至右用0-9这些数字来表示.

第0位确定文件类型,

第1-3位确定属主(该文件的所有者)拥有该文件的权限.

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,

第7-9位确定其他用户拥有该文件的权限

其中:

第1、4、7位表示读权限,如果用“r”字符表示,则有读权限,如果用“-”字符表示,则没有读权限;

第2、5、8位表示写权限,如果用“w"字符表示,则有写权限,如果用”-“字符,则表示没有写权限;

第3、6、9位表示,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限;

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户

同时,在linux中,用户是按组分类的,一个用户属于一个或多个组

文件所有者以外的用户又可以为文件所有者的同组用户和其他用户.

因此,Linux系统按照文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限

在以上实例中,boot文件是一个目录文件,属主和数组都为root

修改文件属性

1 . chgrp : 更改文件属组

chgrp [-R] 属组名 文件名

-R: 递归更改文件属组,就是在更改某个目录的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改.

2. chgrp : 更改文件属主,也可以同时更改文件属组

chown [-R] 属主名 文件名
chown [-R] 属主名: 属组名 文件名

3. chmod: 更改文件9个属性(掌握)

chmod [-R] xyz 文件或目录

Linux文件属性有两种设置方法,一种是数字,一种是符号

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限

先复习一下刚刚上面提到的数据:文件的权限字符为[-rwxrwxrwx],这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4   w:2  x:1

每种身份(owner/group/others)各自的权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---]分数则是

  • owner = rwx = 4+2+1 =7
  • group=rwx = 4+2+1 =7
  • others= --- =0+0+0 =0
chmod 770 filename

文件内容查看

Linux系统中是使用以下命令来查看文件的内容:

  • cat 由第一行开始显文件内容

    [root@VM_0_9_centos network-scripts]# cat ifcfg-eth0 
    # Created by cloud-init on instance boot automatically, do not edit.
    #
    BOOTPROTO=dhcp
    DEVICE=eth0
    HWADDR=52:54:00:de:11:64
    ONBOOT=yes
    PERSISTENT_DHCLIENT=yes
    TYPE=Ethernet
    USERCTL=no
    
  • tac 从最后一行开始显示,可以看出tac是cat的倒着写

    [root@VM_0_9_centos network-scripts]# tac ifcfg-eth0
    USERCTL=no
    TYPE=Ethernet
    PERSISTENT_DHCLIENT=yes
    ONBOOT=yes
    HWADDR=52:54:00:de:11:64
    DEVICE=eth0
    BOOTPROTO=dhcp
    
  • nl 显示的时候,顺道输出行号

    [root@VM_0_9_centos network-scripts]# nl ifcfg-eth0
         1  # Created by cloud-init on instance boot automatically, do not edit.
         2  #
         3  BOOTPROTO=dhcp
         4  DEVICE=eth0
         5  HWADDR=52:54:00:de:11:64
         6  ONBOOT=yes
         7  PERSISTENT_DHCLIENT=yes
         8  TYPE=Ethernet
         9  USERCTL=no
    
  • more 一页一页 的显示文件内容 (空格下一页 enter下一行)

    [root@VM_0_9_centos etc]# more csh.login
    # /etc/csh.login
    
    # System wide environment and startup programs, for login setup
    
    if ( ! ${?PATH} ) then
            if ( $uid == 0 ) then
        
                    setenv PATH "/usr/local/sbin:/usr/sbin:/usr/local/bin:/usr/bin"
            else
                    setenv PATH "/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin"
            endif
    else
            #add sbin directories to the path
            foreach p ( /usr/local/sbin /usr/sbin )
                    switch (":${PATH}:")
                    case "*:${p}:*":
                            breaksw
                    default:
    --More--(39%)
    
  • less 与 more类似,但是比more更好的是,他可以往前翻页(空格翻页,退出q命令,查找字符串/要查询向下查询,向上查询使用?要查询的字符串 n继续搜寻下一个,N 向上寻找)

    [root@VM_0_9_centos etc]# less csh.login
    # /etc/csh.login
    
    # System wide environment and startup programs, for login setup
    
    if ( ! ${?PATH} ) then
            if ( $uid == 0 ) then
                    setenv PATH "/usr/local/sbin:/usr/sbin:/usr/local/bin:/usr/bin"
            else
                    setenv PATH "/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin"
            endif
    else
    
  • head 只看头几行

    [root@VM_0_9_centos etc]# head csh.login
    # /etc/csh.login
    
    # System wide environment and startup programs, for login setup
    
    if ( ! ${?PATH} ) then
            if ( $uid == 0 ) then
                    setenv PATH  "/usr/local/sbin:/usr/sbin:/usr/local/bin:/usr/bin"
            else
                    setenv PATH  "/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin"
            endif
    
  • tail 只看尾巴几行 (-n 行数)

    [root@VM_0_9_centos etc]# tail csh.login
                    if ( -r "$i" ) then
                                    if ($?prompt) then
                                          source "$i"
                                    else
                                          source "$i" >& /dev/null
                                    endif
                    endif
            end
            unset i nonomatch
    endif
    

你可以使用man[命名]来查看各个命令的使用文档,如: man cp

ifconfig 查看网络配置> 拓展: Linux 链接概念

Linux的链接分为两种:硬链接 软连接

硬链接: A---B,假设B是A的硬链接,那么他们两个指向了同一个文件!,允许一个文件拥有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防止误删!

软链接: 类似window的快捷方式,删除的源文件,快捷方式也无法访问

# 硬链接
[root@VM_0_9_centos ceshi]# ln test test1  
# 软链接(符号链接)
[root@VM_0_9_centos ceshi]# ln -s test test2
[root@VM_0_9_centos ceshi]# ls -ll
total 0
-rw-r--r-- 2 root root 0 Jun 15 10:18 test
-rw-r--r-- 2 root root 0 Jun 15 10:18 test1
-rw-r--r-- 1 root root 0 Jun  4 10:47 test1.java
lrwxrwxrwx 1 root root 4 Jun 15 10:19 test2 -> test
[root@VM_0_9_centos ceshi]# echo "hello world" >> test
[root@VM_0_9_centos ceshi]# cat test
hello world
[root@VM_0_9_centos ceshi]# cat test1
hello world
[root@VM_0_9_centos ceshi]# cat test2
hello world
# 删除源文件
[root@VM_0_9_centos ceshi]# rm -rf test
[root@VM_0_9_centos ceshi]# ls
test1  test1.java  test2
[root@VM_0_9_centos ceshi]# cat test1
hello world
# 软链接已经失效
[root@VM_0_9_centos ceshi]# cat test2
cat: test2: No such file or directory

创建 ln命令

touch 创建文件命令

echo 输入字符串

vim 编辑器

三种使用模式

基本上vi/vim共分为三种模式,分别是命令模式(Command mode),输入模式(insert mode)底线命令模式(Last line mode). 这三种模式的作用分别是:

命令模式:

用户刚刚启动vi/vim,便进入了命令模式.

此状态下敲击键盘动作会被vim识别为命令,而非输入字符串,比如我们此时按下i,并不会输入一个字符,i被当做了一个命令.

以下是常用的几个命令:

  • i 切换到输入模式,以输入字符
  • x删除当前光标所在处的字符
  • : 切换到底线命令模式,以在最低一行输入命令

若想要编辑文本,启动vim.进入命令模式,按下i,切换到输入模式

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令

输入模式

在命令模式按下i进入输入模式

在输入模式中,可以使用一下按键:

  • 字符按键以及shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE 退格键,删除光标前一个字符
  • DEL 删除键,删除光标后一个字符
  • 方向键 在文本中移动光标
  • HOME/END 移动光标到行首/行尾
  • page Up/page Down 上/下翻页
  • insert 切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC 退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下: (英文冒号)就进入了底线命令模式

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多

在底线命令模式中,基本的命令有(已经省略了:)

  • q 退出程序
  • w 保存文件

按esc可随时退出底线命令模式

第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

移动光标的方法
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符
[Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d] 屏幕『向下』移动半页
[Ctrl] + [u] 屏幕『向上』移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n< space> 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。
0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个档案的最后一行(常用)
nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg 移动到这个档案的第一行,相当于 1G 啊!(常用)
n< Enter> n 为数字。光标向下移动 n 行(常用)
搜索替换
/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
?word 向光标之上寻找一个字符串名称为 word 的字符串。
n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
删除、复制与粘贴
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd 删除游标所在的那一整行(常用)
ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除游标所在处,到该行的最后一个字符
d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G 复制游标所在行到第一行的所有数据
yG 复制游标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用)
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)

第二部分:一般模式切换到编辑模式的可用的按钮说明

进入输入或取代的编辑模式
i, I 进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用)
a, A 进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
o, O 进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』;O 为在目前光标所在处的上一行输入新的一行!(常用)
r, R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
[Esc] 退出编辑模式,回到一般模式中(常用)

第三部分:一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中看 /home 底下以 ls 输出的档案信息!
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与 set nu 相反,为取消行号!

账号管理

简介

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。

添加账号 useradd

useradd -选项 用户名

参数说明:

  • 选项 :

    • -c comment 指定一段注释性描述。
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    • -g 用户组 指定用户所属的用户组。
    • -G 用户组,用户组 指定用户所属的附加组。
    • -m 使用者目录如不存在则自动建立。
    • -s Shell文件 指定用户的登录Shell。
    • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
  • 用户名 :

    • 指定新账号的登录名。

测试:

[root@VM_0_9_centos ~]# useradd -m zhonglao
[root@VM_0_9_centos ~]# cd /home/
[root@VM_0_9_centos home]# ls
dockerfile  docker-test-volume  mysql  zhonglao

本质:Linux中一切皆文件,这里的添加用户说白了就是往某一个文件中写入用户的信息了! 可以查看配置 /etc/passwd

删除用户 userdel

userdel -r zhonglao
# 删除用户,并将他的目录也一并删除
[root@VM_0_9_centos home]# userdel -r zhonglao
[root@VM_0_9_centos home]# ls
dockerfile  docker-test-volume  mysql

修改用户 usermod

修改的其他选项,与新增一致

usermod -d /home/233 zhonglao


[root@VM_0_9_centos home]# useradd -m zhonglao
[root@VM_0_9_centos home]# usermod -d /home/233 zhonglao
[root@VM_0_9_centos home]# ls
dockerfile  docker-test-volume  mysql  zhonglao
[root@VM_0_9_centos home]# cat /etc/passwd
 //......
zhonglao:x:1001:1001::/home/233:/bin/bash

切换用户

root用户

1.切换用户的命令为:su username [username是你的用户名]

2.从普通用户切换到root用户,还可以使用命令: sudo su

3.在中断输入exit和logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:[su-root]

$表示普通用户

表示超级用户,也就是root用户

注意 如果出现

# 这样的情况
[root@VM_0_9_centos home]# su zhonglao
bash-4.2$ 

# 可以先查看 用户的目录情况
[root@VM_0_9_centos home]# cat /etc/passwd
//..........
zhonglao:x:1001:1001::/home/233:/bin/bash

# 改回之前的目录或者创建
[root@VM_0_9_centos home]# usermod -d /home/zhonglao zhonglao
//...
zhonglao:x:1001:1001::/home/zhonglao:/bin/bash
# 再次切换
[root@VM_0_9_centos home]# su zhonglao
[zhonglao@VM_0_9_centos home]$ 
# 查看主机名
[root@VM_0_9_centos home]# hostname
# 修改主机名
[root@VM_0_9_centos home]# hostname rootzl
# 重新登录 主机名就会变了  重启电脑之后就会消失
[root@rootzl ~]# 

用户的密码设置

给用户设置密码,用户就可以登录了,liunx密码是不会显示的

超级用户可以改任何用户指定密码

# passwd username
[root@rootzl ~]# passwd zhonglao
Changing password for user zhonglao.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

如果是普通用户

passwd
(current) UNIX password:
new password:
re password

锁定账户

passwd -l zhonglao # 锁定之后这个用户就不能登录了
passwd -d zhonglao # 没有密码也不能登录

用户组管理

属主 属组

每个用户都有一个用户组,系统可以对一个用户组中的所用用户进行集中管理(开发 测试 运维 root),不同的Liunx系统对用户组的规定有所不同,如Linux下的用户属于与他同名的用户组,这个用户组在创建用户时间时创建

用户组的管理设计用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新

创建用户组

[root@rootzl ~]# groupadd zld
[root@rootzl ~]# cat /etc/group
//...
docker:x:990:
zhonglao:x:1001:
zld:x:1002:

创建完用户组可以得到一个组的id,这个id是可以指定的(-g 520),如果不指定就是自增的

删除用户组

[root@rootzl ~]# groupdel zld

修改用户组的权限信息和名字

[root@rootzl ~]# groupmod -g 520 -n newzld zld

用户切换用户组

# 登录当前用户 zhonglao
$ newgrp root

拓展:文件的查看

/etc/passwd

用户名:口令(登录密码,我们不可见):用户标识号:组标识号:注释性描述:主目录:登录shell

这个文件中的每一行都代表一个用户,我们可以从这里看出这个用户目录在哪里,属于那个组

登录口令:把真正的加密后的用户口令存放到/etc/shadow文件中,保证我们密码的安全性!

磁盘管理

df (列出文件系统整体的磁盘使用量) du(检查磁盘控件使用量)


# df
[root@rootzl ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
devtmpfs          930108        0    930108   0% /dev
tmpfs             941028        0    941028   0% /dev/shm
tmpfs             941028      660    940368   1% /run
tmpfs             941028        0    941028   0% /sys/fs/cgroup
/dev/vda1       51473868 12787188  36489436  26% /
tmpfs             188208        0    188208   0% /run/user/0
# -h 把字节转换成 M
[root@rootzl ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M     0  919M   0% /dev/shm
tmpfs           919M  660K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        50G   13G   35G  26% /
tmpfs           184M     0  184M   0% /run/user/0


# du
[root@rootzl ~]# du
8       ./.cache/abrt
12      ./.cache
8       ./.pip
8       ./.docker
8       ./.ssh
4       ./.pki/nssdb
8       ./.pki
4       ./.config/abrt
8       ./.config
......
# 包括隐藏文件
[root@rootzl ~]# du -a

# 检查根目录下每个目录所占用的容量
[root@rootzl ~]# du -sm /*

Mac或者想使用Linux挂载我们的一些本地磁盘或者文件

挂载: mount 将 外部设备 挂载到mnt下进行 访问

[root@rootzl /]# ls
backup.db  boot  dev  home  lib64       media  mydata  opt   root  sbin  sys  usr
bin        data  etc  lib   lost+found  mnt    nmon    proc  run   srv   tmp  var
[root@rootzl /]# mount /dev/zhonglao /mnt/zhonglao

卸载: umount -f [挂载位置] 强制卸载

进程管理

什么是进程

1.在Linux中,每个程序都是有自己的一个进程,每个进程都有一个id号

2.每个进程,都有一个父进程

3.进程可以有两种存在方式:前台!后台运行!

4.一般的话服务都是后台运行的,基本的程序都是前后台运行的

命令

ps 查看当前系统中正在执行的各种进程的信息!

ps -xx:

  • -a 显示当前终端运行的所有的进程信息
  • -u 以用户的信息显示进程
  • -x 显示后台运行进程的参数
# ps -aux| 查看所有的进程
ps -aux|grep mysql

# | 在Linux这个叫管道符 A|B
# grep 查找文件中符合条件的字符串

[root@rootzl ~]# ps -aux|grep mysql
root     10961  0.0  0.0 112812   968 pts/0    S+   15:02   0:00 grep --color=auto mysql
root     19804  0.0  0.0  11820   704 ?        S    Mar20   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=root --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid
root     20083  0.2 20.6 1368472 388128 ?      Sl   Mar20 323:11 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=root --log-error=/var/log/mariadb/mariadb.log --pid-file=/usr/local/mysql/data/mysql.pid --socket=/tmp/mysql.sock --port=5186

ps -ef:可以查看到父进程的信息

ps -ef|grep mysql # 看父进程 我们一般可以通过目录结构查看

# 进程树
pstree -pu 
	-p 显示父id
	-u 显示用户组

结束进程:杀掉进程,等价于window结束任务

# 强制结束进程
kill-9 进程的id 
原文地址:https://www.cnblogs.com/HHbJ/p/14931745.html