Linux 第一节 基础操作
一、Linux 用户和用户组管理
1.Linux账号管理
1.添加用户
useradd 选项 用户名
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
2.用户口令
passwd 选项 用户名
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
3.修改用户
usermod 选项 用户名
相当于我们在Windows系统中修改一个用户,只是我们在CentOS中是修改用户是通过命令完成的
4.删除用户
userdel 选项 用户名
-
-f:强制删除用户,即使用户当前已登录;
-
-r:删除用户的同时,删除与用户相关的所有文件
2.Linux用户组
1.增加用户组
使用者权限:管理员用户
groupadd 选项 用户组
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
2.修改用户组
使用者权限:管理员用户
groupmod 选项 用户组
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
将组haha的组名修改为hahaha
groupmod -n hahaha haha
3.查询用户所属组
在查询用户所属的用户组前,我们先增加一个用户gao,新建一个组haha
useradd gao
groupadd haha
要查询一个用户属于哪个用户组,使用groups命令,其格式如下
groups 用户名
查询用户gao属于某个用户组,执行groups命令
groups gao
4.删除用户组
使用者权限:管理员用户
要删除一个已有的用户组,使用groupdel命令,其格式如下
groupdel 用户组
删除hahaha用户组,注意不能删除gao的用户组
groupdel hahaha
3.将用户添加到组
1.已经存在的用户添加到组中 usermod -a -G 组名 用户名
usermod -a -G haha gao
2.新用户添加到指定组 useradd -g 组名 新用户名
新用户添加到指定组 useradd -g 组名 新用户名
二、系统管理
1.日期管理
date 可以用来显示或设定系统的日期与时间
使用者权限:所有用户
语法如下:
date [参数选项]
参数:
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
–help:在线帮助;
–version:显示版本信息
1.设置时间
用 -s选项可以设置系统时间,如下: s setting
date -s "2020-12-11 16:15:00"
2.查看时间
date
2.显示用户
logname命令用于显示用户名称。
执行logname指令,它会显示目前用户的名称
语法为如下:
logname [--help][--version]
参数:
- –help 在线帮助。
- –vesion 显示版本信息。
显示登录账号的信息
logname
3.su切换账户
su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
语法如下:
su
从root管理员权限切换到其他用户,直接 su 用户名
su gao
切换到root
exit
如果你最初登录的不是管理员则用
su root ,然后输入密码
4.sudo执行
1.执行
- yum install lrzsz -y
上传,直接拖拽
下载 sz 文件名 - sudo:控制用户对系统命令的使用权限,root允许的操作。
通过sudo可以提高普通用户的操作权限
使用者权限:普通用户
2.语法如下:
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command
3.参数说明
- -V 显示版本编号
- -h 会显示版本编号及指令的使用方式说明
- -l 显示出自己(执行 sudo 的使用者)的权限
- -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
- -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
- -b 将要执行的指令放在背景执行
- -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
- -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
- -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
- -H 将环境变数中的 HOME 指定为要变更身份的使用者HOME目录(如不加 -u 参数就是系统管理者 root )
- command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
5.top命令
1.使用
top命令用于实时显示 process 的动态。
使用权限:所有使用者。
显示进程信息
top
2.各进程(任务)的状态监控属性解释说明:
PID:进程ID
USER:进程的所有者
PR:进程的优先级
NI:
VIRT:占用的虚拟内存
RES:占用的物理内存
SHR:使用的共享内存
S:进行状态 S:休眠 R运行 Z僵尸进程 N nice值为负
%CPU:占用的CPU
%MEM:占用内存
TIME+: 占用CPU的时间的累加值
COMMAND:启动命令
- 显示指定的进程信息,以下显示进程号为6972的进程信息,CPU、内存占用率等
top -p 1
6.ps命令
Linux ps命令用于显示当前进程 (process) 的状态信息
使用者权限:所有用户
常用语法如下:
ps -ef | grep 进程名称
7.kill命令
Linux kill命令用于删除执行中的程序或工作(可强制中断)
使用者权限:所有用户
语法如下:
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
参数说明:
- -l <信息编号> 若不加<信息编号>选项,则-l参数会列出全部的信息名称。
- -s <信息名称或编号> 指定要送出的信息。
- [程序] [程序]可以是程的PID或是PGID,也可以是工作编号。
杀死一个进程
kill - 9 进程号
8.clear命令
clear命令用于清除屏幕
使用者权限:所有使用者都可使用。
语法
clear
三、Linux目录管理
1.Linux 文件与目录管理
1.目录常用命令
1) ls:列出目录
ls [选项] 目录名称
选项与参数:
- -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
ls -l
ls -l
可以查看文件夹下文件的详细信息, 从左到右 依次是:
- 权限(A区域), 第一个字符如果是
d
表示目录 - 硬链接数(B区域), 通俗的讲就是有多少种方式, 可以访问当前目录和文件
- 属主(C区域), 文件是所有者、或是叫做属主
- 属组(D区域), 文件属于哪个组
- 大小(E区域):文件大小
- 时间(F区域):最后一次访问时间
- 名称(G区域):文件的名称
2) cd:切换目录
Linux的cd切换目录,相当于我们在Windows中通过鼠标或者快捷键点开不同的目录
注意:在Linux系统当中, cd 命令算是比较常用的命令
cd是Change Directory的缩写,这是用来变换工作目录的命令
使用者权限:所有使用者都可使用。
语法如下:
cd [相对路径或绝对路径]
3) pwd: 显示目前的目录
执行pwd命令相当于我们在Windows系统路径导航栏中查看到的当前浏览位置信息
查看当前所在目录
pwd -P
4) mkdir:创建一个新的目录
Linux的mkdir命令相当于我们在Windows中通过鼠标或者快捷键新建文件夹
mkdir命令用于建立名称为 dirName 之子目录
使用权限:于目前目录有适当权限的所有使用者
语法
mkdir [-p] dirName
参数说明:
- -p 确保目录名称存在,不存在的就建一个
建立一个名为jinyanlong 的子目录
mkdir video
在工作目录下的 aaa目录中,建立一个名为 bbb的子目录。 若 aaa目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 aaa目录不存在,则产生错误。)
mkdir -p aaa/bbb
5) rmdir:删除一个空的目录
Linux的rmdir命令相当于我们在Windows中通过鼠标或者快捷键删除文件夹。
稍微有点不同的就是在Linux中删除子目录的时候,如果主目录下没有了目录以及文件,会连同主目录同时删除了(需要写Linux带有P的参数)
rmdir命令删除空的目录
使用权限:于目前目录有适当权限的所有使用者。
语法
rmdir [-p] dirName
参数:
- -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
将工作目录下,名为 jinyanlong 的子目录删除 :
rmdir video
在工作目录下的 aaa目录中,删除名为 bbb的子目录。若 bbb删除后,aaa目录成为空目录,则 aaa同时也会被删除
rmdir -p aaa/bbb
6) cp: 复制文件或目录
Linux的cp命令相当于我们在Windows中通过鼠标或者快捷键复制文件或者目录
cp命令主要用于复制文件或目录。
使用权限:于目前目录有适当权限的所有使用者
语法
cp [options] source dest
或者
cp [options] source... directory
参数说明:
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r/R:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。
我们将当前目录"aaa/"下的所有目录以及文件复制到新目录"ccc"下,输入如下命令:
1、数据准备
创建aaa目录并且aaa下包含bbb目录
mkdir -p aaa/bbb
mkdir -p ccc
aaa目录下有bbb
ccc下面没有目录和文件
2、执行复制
cp –r aaa/* ccc
我们将aaa下面的所有文件、目录复制到了目录c下面
scp root@82.157.173.221:/usr/local/elasticsearch-7.12.1-linux-x86_64.tar.gz /home
7) rm: 删除目录
Linux的rm命令相当于我们在Windows中通过鼠标或者快捷键删除文件或者目录
rm命令用于删除一个文件或者目录。
使用权限:于目前目录有适当权限的所有使用者
语法
rm [options] name...
参数:
- -i 删除前逐一询问确认。
- -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
- -r 将目录及以下之档案亦逐一删除。
常用 rm -rf 文件 (删除命令慎重使用)
8) mv:移动文件与目录或修改文件与目录的名称
Linux的mv命令相当于我们在Windows中通过鼠标或者快捷键剪切(+重命名)+粘贴文件或者目录
mv 命令用来为文件或目录改名、或将文件或目录移入其它位置
语法
mv [options] source dest
mv [options] source... directory
参数说明:
- -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
- -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;
9) touch
创建文件
touch 文件名
10) 自动补全
- 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下
tab
键 - 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
2.Linux 文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
3.Linux文件属主和属组
1.chown更改属主和属组
Linux是多任务操作系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限
使用权限 : 管理员账户
语法如下
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
chown han a.txt
2.chmod权限命令
Linux文件属性有两种设置方法,一种是数字,一种是符号
Linux的文件调用权限分为三级 : 文件属主、属组、其他。利用 chmod 可以控制文件如何被他人所调用。
使用权限 : 所有使用者
语法
chmod [-cfvR] [--help] [--version] mode file...
参数说明
mode : 权限设定字串,格式如下
[ugoa...][[+-=][rwxX]...][,...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
1)数字权限
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= — = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦,变更权限的指令chmod的语法是这样的
chmod [-R] xyz 文件或目录
选项与参数:
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
- -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
上面的 可以表示如下
chmod -R 770 档案或目录
2) 符号权限
还有一个改变权限的方法,就是 符号权限,我们先回顾下之前提到的9个权限
- (1)user 属主权限
- (2)group 属组权限
- (3)others 其他权限
那么我们就可以使用 u, g, o 来代表三种身份的权限!
如果我们需要将文件权限设置为 -rwxr-xr– ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
chmod u=rx,g=rw,o=r a.txt
假如我们要将权限去掉而不改变其他已存在的权限呢?举个例子,比如我要拿掉全部人的可读权限,则
chmod o-r a.txt