mydal

怕光阴流逝 让一切都作废

0%

linux基础命令

xl-2017-linux-1.jpg

Linux目录结构

linux 一切皆文件

11.png

关机&重启命令

基本介绍

shutdown -h now 立刻关机

shutdown -h 1 1分钟后关机

shutdown -r now 重新启动

halt 关机

reboot 重新启动

sync 把内存的数据同步到磁盘

注意

不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中

用户登录和注销

基本介绍

登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可

以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份.

在提示符下输入 logout 即可注销用户

使用细节

logout 注销指令在图形运行级别无效,在 运行级别 3下有效.

用户操作

添加用户

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

语法: useradd 用户名

细节

当创建用户成功后,会自动的创建和用户同名的家目录

也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

指定/修改密码

语法: passwd 用户名

删除用户

语法:userdel 用户名

userdel -r 用户名 删除用户家目录以及用户

查询用户信息

语法: id 用户名

用户不存在时 返回无此用户

切换用户

介绍

在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root

语法:su -切换的用户名

细节说明

从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。

当需要返回到原来用户时,使用exit指令

查看当前用户/登录用户

语法: whoami

用户组

介绍

类似于角色,系统可以对有共性的多个用户进行统一的管理

新增组

指令:groupadd 组名

删除组

指令:groupdel 组名

增加用户时加上组

指令:useradd -g 用户组 用户名

修改用户的组

指令:usermod -g 用户组 用户名

用户和组的相关文件

/etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/shadow 文件

口令的配置文件

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group 文件

组(group)的配置文件,记录Linux包含的组的信息

每行含义:组名:口令:组标识号:组内用户列表

linux运行级别

基本介绍

运行级别说明:

0 :关机

1 :单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4:系统未使用保留给用户

5:图形界面

6:系统重启

常用运行级别是3和5 ,要修改默认的运行级别可改文件

/etc/inittab的id:5:initdefault:这一行中的数字

命令:init [012356] 直接切换用户级别

linux帮助指令

man 获得帮助信息

基本语法 man [命令或配置文件](功能描述:获得帮助信息)

help指令

基本语法 help 命令 (功能描述:获得shell内置命令的帮助信息)

当然 像我这样的英语渣渣还是百度 谷歌最靠谱

linux文件目录操作

pwd指令

基本语法 pwd (功能描述:显示当前工作目录的绝对路径)

ls指令

基本语法 ls [选项] [目录或是文件]

常用选项

-a :显示当前目录所有的文件和目录,包括隐藏的。

-l :以列表的方式显示信息 显示详细信息

cd指令

基本语法 cd [参数] (功能描述:切换到指定目录)

常用参数

绝对路径和相对路径

cd ~ 或者cd :回到自己的家目录

cd .. 回到当前目录的上一级目录

mkdir指令

mkdir指令用于创建目录

基本语法 mkdir [选项] 要创建的目录

常用选项

-p :创建多级目录

rmdir指令

rmdir指令删除空目录

基本语法 rmdir [选项] 要删除的空目录

细节

rmdir 删除的是空目录,如果目录下有内容时无法删除的。

提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录

touch指令

touch指令创建空文件

基本语法 touch 文件名称

cp指令

cp 指令拷贝文件到指定目录

基本语法 cp [选项] source dest [复制的文件或目录 指定的目录]

常用选项

-r :递归复制整个文件夹

细节

强制覆盖不提示的方法:\cp

rm指令

rm 指令移除文件或目录

基本语法

rm [选项] 要删除的文件或目录

常用选项

-r :递归删除整个文件夹

-f : 强制删除不提示

mv指令

mv 移动文件与目录或重命名

mv oldNameFile newNameFile (功能描述:重命名)

mv /temp/movefile /targetFolder (功能描述:移动文件)

cat指令

cat 查看文件内容

基本语法 cat [选项] 要查看的文件

常用选项

-n :显示行号

more指令

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。

基本语法 more 要查看的文件

操作说明

11.png

less指令

less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支 持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

基本语法 less 要查看的文件

操作说明

11.png

echo指令

echo输出内容到控制台。

基本语法 echo [选项] [输出内容]

head指令

head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

基本语法 head 文件 (功能描述:查看文件头10行内容)

head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)

tail指令

tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容

基本语法

tail 文件 (功能描述:查看文件头10行内容)

tail -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)

tail -f 文件 (功能描述:实时追踪该文档的所有更新)

‘>’指令和 ‘>>’指令

> 输出重定向和 >> 追加

基本语法

ls -l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))

ls -al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)

cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)

echo "内容">> 文件

ln指令

软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径

基本语法

ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

实例

在/home 目录下创建一个软连接 linkToRoot,连接到 /root 目录

1
2
3
4
5
6
[root@iZf1urhaqia9qzZ ~]# cd /home
[root@iZf1urhaqia9qzZ home]# ln -s /root linkToroot
[root@iZf1urhaqia9qzZ home]# ll
total 4
lrwxrwxrwx 1 root root 5 Apr 10 16:54 linkToroot -> /root
drwx------ 2 www www 4096 Mar 11 18:10 www

细节

当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。

1
2
3
[root@iZf1urhaqia9qzZ ~]# cd /home/linkToroot
[root@iZf1urhaqia9qzZ linkToroot]# pwd
/home/linkToroot

history指令

查看已经执行过的历史命令,也可以执行历史指令

基本语法

history (功能描述:查看已经执行过历史命令)

显示所有的历史命令

11.png

显示最近使用过的10个指令

11.png

执行历史编号为1020的指令

1
2
3
4
[root@iZf1urhaqia9qzZ home]# !1020
ll
total 4
drwx------ 2 www www 4096 Mar 11 18:10 www

linux时间日期指令

date指令–显示当前日期

基本语法

  • ​ date (功能描述:显示当前时间)
  • ​ date +%Y (功能描述:显示当前年份)
  • ​ date +%m (功能描述:显示当前月份)
  • ​ date +%d (功能描述:显示当前是哪一天)
  • ​ date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)

date指令–设置日期

基本语法

date -s 字符串时间

cal指令

查看日历指令

基本语法

cal [选项] (功能描述:不加选项,显示本月日历)

cal 2021 (显示2021全部日历)

linux搜索查找指令

find指令

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端

基本语法

find [搜索范围] [选项]

选项说明

11.png

按文件名:根据名称查找/root 目录下的.sh文件

1
2
3
4
5
[root@iZf1urhaqia9qzZ home]# find /root -name *.sh
/root/install.sh
/root/libsodium-stable/build-aux/ltmain.sh
/root/libsodium-stable/autogen.sh
/root/libsodium-stable/test/constcheck.sh

按拥有者:查找/opt目录下,用户名称为root的文件

1
2
[root@iZf1urhaqia9qzZ opt]# find /opt -user root
/opt

查找整个linux系统下大于200m的文件(+n 大于 -n小于 n等于)

find / -size +20M

locate指令

locaate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径

的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。

为了保证查询结果的准确度,管理员必须定期更新locate时刻

基本语法

locate 搜索文件

特别说明

由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate

数据库

grep指令和 管道符号 |

grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

基本语法

grep [选项] 查找内容 源文件

常用选项

-n 显示匹配行及行号。

-i 忽略字母大小写

在test.txt 文件中,查找”yes” 所在行,并且显示行号

1
2
3
4
5
6
7
8
9
10
[root@iZf1urhaqia9qzZ ~]# cat test.txt | grep -ni yes
1:yes
2:yes
3:Yes
[root@iZf1urhaqia9qzZ ~]# cat test.txt | grep -n yes
1:yes
2:yes
[root@iZf1urhaqia9qzZ ~]# grep -n yes test.txt
1:yes
2:yes

vi和vim编辑器

vi和vim的基本介绍

所有的Linux 系统都会内建vi 文本编辑器。

Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别

语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别

丰富,在程序员中被广泛使用。

正常模式:

以vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用

『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,

也可以使用『复制、贴上』来处理你的文件数据。

插入模式:

按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.

命令行模式

在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的

动作则是在此模式中达成的!

vim模式的相互切换

11.png

快捷键

vim查找文本

11.png

vim替换文本

22.png

vim删除文本

11.png

vim复制和粘贴文本

11.png

vim保存退出文本

11.png

压缩和解压类

gzip/gunzip 指令

gzip 用于压缩文件,gunzip 用于解压的

基本语法

gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)

gunzip 文件.gz (功能描述:解压缩文件命令)

zip/unzip 指令

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

基本语法

zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)

unzip [选项] XXX.zip (功能描述:解压缩文件)

zip常用选项

-r:递归压缩,即压缩目录

unzip的常用选项

-d<目录> :指定解压后文件的存放目录

tar 指令

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件

基本语法

tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

11.png

实例:压缩多个文件,将 /home/a.txt 和 /home/b.txt 压缩成 a.tar.gz

1
2
3
4
5
6
7
8
9
[root@iZf1urhaqia9qzZ home]# tar -zcvf a.tar.gz a.txt b.txt
a.txt
b.txt
[root@iZf1urhaqia9qzZ home]# ll
total 8
-rw-r--r-- 1 root root 118 Apr 10 18:13 a.tar.gz
-rw-r--r-- 1 root root 0 Apr 10 18:13 a.txt
-rw-r--r-- 1 root root 0 Apr 10 18:13 b.txt
drwx------ 2 www www 4096 Mar 11 18:10 www

将/home 的文件夹 压缩成 myhome.tar.gz

tar -zcvf myhome.tar.gz /home

1
2
3
4
5
6
7
[root@iZf1urhaqia9qzZ home]# ll
total 12
-rw-r--r-- 1 root root 118 Apr 10 18:13 a.tar.gz
-rw-r--r-- 1 root root 0 Apr 10 18:13 a.txt
-rw-r--r-- 1 root root 0 Apr 10 18:13 b.txt
-rw-r--r-- 1 root root 739 Apr 10 18:15 myhome.tar.gz
drwx------ 2 www www 4096 Mar 11 18:10 www

将myhome.tar.gz解压到root目录下

tar -zxvf myhome.tar.gz -C /root

1
2
3
4
5
6
7
[root@iZf1urhaqia9qzZ home]# ll /root
total 36
drwxr-xr-x 3 root root 4096 Apr 10 18:13 home
-rw-r--r-- 1 root root 20078 Mar 4 16:48 install.sh
drwxr-xr-x 12 root www 4096 Mar 12 10:33 libsodium-stable
drwxr-xr-x 3 root root 4096 Apr 9 15:37 php
-rw-r--r-- 1 root root 61 Apr 10 18:01 test.txt

Linux组基本介绍

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件 有所有者、所在组、其它组的概念

所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者

查看文件的所有者

指令:ls -ahl ll

修改文件所有者

指令:chown 用户名 文件名

组的创建

指令 groupadd 组名

应用实例

创建一个组, ,monster

创建一个用户 fox ,并放入到 monster组中

1
2
3
4
5
6
7
8
9
10
[root@iZf1urhaqia9qzZ home]# groupadd monster
[root@iZf1urhaqia9qzZ home]# useradd -g monster fox
[root@iZf1urhaqia9qzZ home]# ll
total 16
-rw-r--r-- 1 root root 118 Apr 10 18:13 a.tar.gz
-rw-r--r-- 1 root root 0 Apr 10 18:13 a.txt
-rw-r--r-- 1 root root 0 Apr 10 18:13 b.txt
drwx------ 2 fox monster 4096 Apr 10 18:39 fox
-rw-r--r-- 1 root root 739 Apr 10 18:15 myhome.tar.gz
drwx------ 2 www www 4096 Mar 11 18:10 www

文件/目录 所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

修改文件所在的组

chgrp 组名 文件名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@iZf1urhaqia9qzZ home]# ll
total 16
-rw-r--r-- 1 root root 118 Apr 10 18:13 a.tar.gz
-rw-r--r-- 1 root root 0 Apr 10 18:13 a.txt
-rw-r--r-- 1 root root 0 Apr 10 18:13 b.txt
-rw-r--r-- 1 root root 0 Apr 10 18:43 c.txt
drwx------ 2 fox monster 4096 Apr 10 18:39 fox
-rw-r--r-- 1 root root 739 Apr 10 18:15 myhome.tar.gz
drwx------ 2 www www 4096 Mar 11 18:10 www
[root@iZf1urhaqia9qzZ home]# chgrp monster c.txt
[root@iZf1urhaqia9qzZ home]# ll
total 16
-rw-r--r-- 1 root root 118 Apr 10 18:13 a.tar.gz
-rw-r--r-- 1 root root 0 Apr 10 18:13 a.txt
-rw-r--r-- 1 root root 0 Apr 10 18:13 b.txt
-rw-r--r-- 1 root monster 0 Apr 10 18:43 c.txt
drwx------ 2 fox monster 4096 Apr 10 18:39 fox
-rw-r--r-- 1 root root 739 Apr 10 18:15 myhome.tar.gz
drwx------ 2 www www 4096 Mar 11 18:10 www

其它组

除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。

改变用户所在组

​ usermod –g 组名 用户名

​ usermod –d 目录名 用户名 改变该用户登陆的初始目录

linux权限的基本介绍

ls -l 中显示的内容如下

drwxr-xr-x 3 root root 4096 Apr 10 18:13 home

0-9位说明

  • 第0位确定文件类型(d, - , l , c , b)
  • 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User
  • 第4-6位确定所属组(同用户组的用户)拥有该文件的权限,—Group
  • 第7-9位确定其他用户拥有该文件的权限 —Other

rwx权限详解

rwx作用到文件

  1. [ r ]代表可读(read): 可以读取,查看
  2. [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是
  3. 对该文件所在的目录有写权限,才能删除该文件.
  4. [ x ]代表可执行(execute):可以被执行

rwx作用到目录

  1. [ r ]代表可读(read): 可以读取,ls查看目录内容
  2. [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
  3. [ x ]代表可执行(execute):可以进入该目录

文件及目录权限实际案例

ls -l 中显示的内容如下

drwxrw-r-- 3 root root 4096 Apr 10 18:13 home

10个字符确定不同用户能对文件干什么

第一个字符代表文件类型: 文件 (-),目录(d),链接(l)

其余字符每3个一组(rwx) 读(r) 写(w) 执行(x)

第一组rwx : 文件拥有者的权限是读、写和执行

第二组rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行

第三组r– : 不与文件拥有者同组的其他用户的权限是读不能写和执行

可用数字表示为: r=4,w=2,x=1 因此rwx=4+2+1=7

修改权限

通过chmod指令,可以修改文件或者目录的权限

第一种方式:+ ,-,= 变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

chmod u=rwx,g=rx,o=x 文件目录名

chmod o+w 文件目录名

chmod a-x 文件目录名

第二种方式:通过数字变更权限

r=4 w=2 x=1 rwx=4+2+1=7 0就啥子都做不了

chmod u=rwx,g=rx,o=x 文件目录名

相当于 chmod 751 文件目录名

1
2
3
4
[root@iZf1urhaqia9qzZ ~]# chmod 700 home
[root@iZf1urhaqia9qzZ ~]# ll
total 36
drwx------ 3 root root 4096 Apr 10 18:13 home

修改文件所有者-chown

基本介绍

chown newowner file 改变文件的所有者

chown newowner:newgroup file 改变文件的所有者和所有组

-R 如果是目录 则使其下所有子文件或目录递归生效

修改文件所在组-chgrp

基本介绍

chgrp newgroup file 改变文件的所有组