Re-Learn Linux Part1

1. Linux的目录结构

在Linux文件系统中有两个特殊的目录:

  • 一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示
  • 另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示

     . :代表当前的目录,也可以使用 ./ 来表示;
    .. :代表上一层目录,也可以 ../来代表

  • 如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。 

  • bin (binaries)存放的是二进制的可执行文件
  • sbin (super user binaries)存放二进制可执行文件,只有root才能访问
  • etc (etcetera)存放系统配置文件
  • usr (unix shared resources)用于存放共享的系统资源,系统应用程序,软件的默认安装目录
  • home 存放用户文件的根目录,每个用户在该目录下都有一个与用户名同名的目录
  • root 超级用户目录
  • dev (devices) 用于存放系统中所有的设备文件
  • lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
  • mnt (mount)系统管理员安装临时文件系统的安装点{挂载}
  • boot存放用于系统引导时使用的各种文件
  • tmp (temporary)用于存放各种临时文件
  • var (variable)用于存放运行时需要改变数据的文件

开发人员关注目录:

  • 配置目录etc:软件安装后配置文件选择放入的地址。
  • 软件安装目录:usr/local
  • 安装应用程序目录:opt,部署的API程序一般放在这个目录。部署的API放入用户的目录:/home/用户名

注意:Linux系统的文件系统是以斜杠“/” - [根目录]开始,不是windows中的盘符概念。

小知识:

  • Linux的目录中有且只有一个根目录/;
  • Linux的各个目录存放的内容是规划好的,不用乱放文件;
  • Linux是以文件的形式管理我们的设备,因此Linux系统,一切皆文件;
  • Linux的各个文件目录下存放什么内容,大家必须有一个认识;
  • 你的脑海里应该有一颗Linux的目录树。
  • Linux是一套类Unix的操作系统。

2. Linux的用户

  • Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  • 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
  • 每个用户账号都拥有一个唯一的用户名和各自的口令(指的就是密码)
  • 用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录

2.1 用户账号

用户账户一般非为两大类:超级管理员普通用户

  •     超级管理员:用root表示,root用户在系统中拥有最高权限
  •     普通用户:除了root之外的用户。例如我们之前创建的gch用户,就是普通用户。   

在真实的企业开发当中,我们很少使用root用户的权限,我们一般都是普通用户。 

2.2 查看用户信息

#语法 cat /etc/passwd

  - root:用户名
      - x :密码 :已经加密 ,密码存放在  [vi/vim] /etc/shadow   密码文件
      - 0 :账号id ,userId
      - 0 : 组id ,group id 

我们一般自定义的用户,id都在1000及以上。 

2.2 添加用户 / 创建一个用户

  • 我们来创建一个用户:useradd  用户名  
  • 只有Root用户或者具有Root权限的用户才可以!、
  • 创建用户后会在/home目录下创建同名目录。

# 创建一个用户
    #语法:useradd 选项 用户名
        #选项:

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

  • 由于我们在企业开发当中一般都是普通用户,因此这些可选选项我们不用过多关注!

      #案例1:
      useradd lina02  

  • Linux命令行的特征:只要命令没有错误,回车后就直接进行到下一行,它提示的一般都是错误信息! 

进入到密码文件当中来看看,输入:[vi / vim]  /ect/shadow

退出vi编辑器,输入:q,接着按回车即可! 

2.3 删除一个用户

# 删除一个用户
    #语法:userdel 选项 用户名    其中 -r 是常用的选项,表示将用户的主目录一起删除
    #案例:
        userdel -r lina02 

2.4 用户口令/密码的管理

用户口令的管理其实就是用户密码的管理用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

指定和修改用户口令的命令是passwd

超级用户 - root可以为自己和其他用户指定口令普通用户只能用它修改自己的口令。

# 用户口令的管理
    #语法:passwd 选项 用户名
    可使用的选项:
        -l 锁定口令,即禁用账号
        -u 口令解锁
        -d 使账号无口令
        -f 强迫用户下次登录时修改口令。 

如果默认用户名,则修改当前用户的口令

  • 例如,切换到用户lina,则下面的命令修改该用户自己的口令:

PS:Linux操作系统中密码部分不予显示,所以看起来是空白的,实际已经输入了密码。

  • 普通用户修改自己的口令时,passwd命令会要求先输入原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户 

如果是超级用户,可以用下列形式指定任何用户的口令:  

  • 超级用户为用户指定口令时,就不需要知道原口令。  

为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。  

PS:如果当前用户正在被使用,则无法删除! 

2.5 切换用户 

语法:su [-] [用户名] 

  •  - 表示切换用户后加载环境变量,建议带上
  • 用户名可以省略,省略默认切换到root用户
  • 使用普通用户切换到其它用户,需要输入密码,比如切换到root用户
  • 使用root用户切换到其它用户,无需密码,可以直接切换
  • root用户即超级管理员用户,拥有最大权限
  • 切换用户后,可以通过exit命令退回到上一个用户,也可以使用快捷键:Ctrl + D

3. Linux的常用命令-重要

3.1 Linux目录管理

Linux的目录结构为树状结构,最顶级的目录为根目录 /

其他目录通过挂载可以将它们添加到树中通过解除挂载可以移除它们

绝对路径与相对路径:

  • 绝对路径:由根目录 / 写起,例如: /usr/share/doc 这个目录。
  • 相对路径:不是由根目录 / 写起,例如由 /usr/share/doc(本身已经就在doc目录下) 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法

3.1.1 查看目录

Linux系统当中, ls 命令可能是最常被运行的

ls语法:

  •     ls :查看当前路径下的文件名称
  •     ls -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  •     ls -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  •     ls -l :以列表的形式展示内容,长数据串列出,包含文件的属性与权限等等数据;          (常用)
  •     ll: 等价于ls -l
  •     ls -al :目录下的所有文件列出来(含属性与隐藏档) 

补充:ls --help:查看帮助文档! 

3.1.2 切换目录

cd是Change Directory的缩写,这是用来变换工作目录的命令。  

语法:
    cd [相对路径或绝对路径] 

如果不写参数。直接输入cd命令,则默认切换到当前登陆用户的HOME目录

HOME目录

每一个用户在Linux系统中都有自己的专属工作目录,称之为HOME目录:

  • 普通用户的HOME目录,默认在:/home/用户名
  • root用户的HOME目录,在:/root
  • ~,表示当前登陆用户的HOME目录,比如cd ~,即可切回用户的HOME目录
#使用绝对路径切换到 local 目录
cd /usr/local/# 表示回到自己的家目录,亦即是 /root 这个目录
cd ~# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
cd ..

PS:/root <==> ~ 

3.1.3 显示当前目录

pwd Print Working Directory 的缩写,也就是显示目前所在目录的命令。  

语法:pwd 

3.1.4 创建目录  

mkdir (make directory)用来创建新的目录。  

语法:mkdir [-mp] 目录名称
        -m :配置文件的权限喔!直接配置,不需要看默认权限的脸色
        -p :直接将所需要的目录(包含上一级目录)递归创建起来!

  • 查看帮助 mkdir --help 

示例:/tmp底下尝试创建新目录看看:

  • cd /tmp
  • mkdir lina    <==创建一名为 lina 的新目录

mkdir test1/test2/test3/test4
    mkdir: cannot create directory `test1/test2/test3/test4': 
    No such file or directory       <== 没办法直接创建此目录啊!
mkdir -p test1/test2/test3/test4

加了这个 -p 的选项,可以自行帮你创建多层目录!   

3.1.5 删除空目录

rmdir 命令用来删除空的目录

语法: rmdir [-p] 目录名称

  •         -p :连同上一级『空的』目录也一起删除 

3.2 文件操作

3.2.1 查看文件内容

3.2.1.1 cat 查看所有内容

  • 语法:cat  Linux路径/文件路径
  • cat是直接将内容全部显示出来,由第一行开始显示全部文件内容 

语法:tac 文件路径   

  • 反着列出文件内容 

tali命令查看文件尾部内容,语法:tail -f  -num  文件路径 

  • 默认查看10行
  • 选项-f,表示可以持续跟踪文件尾部的最新更改变化,一般用来监控日志文件
  • 选项-num,表示查看文件尾部多少行,不填默认查看10行。Ctrl + C中断

head命令列出文件头几行

  • 语法:head [-num] 文件路径
  • 不写选项num,默认显示10行

find命令 - 用于查找指定的文件

  • 按文件名查找:find  起始路径  -name "被查找的文件名"      支持*通配符
  • 按文件大小来查找:find 起始路径 -size +/-Num k,M,G

wc命令做文件的行数-l、单词数量-w统计

  • 语法:wc [-c -m -l -w]  文件路径

3.2.1.2 more 一页一页的显示文件内容

  • 语法:more Linux路径/文件路径
  • 例如:more /etc/man_db.config 
  • ....(中间省略)....
  • --More--(28%)  <== 重点在这一行喔!你的光标也会在这里等待你的命令

在 more 这个程序的运行过程中,你有几个按键可以按的:

  • 在查看的过程中,通过空格(Space)翻页,通过q退出查看
  • 通过Enter代表向下翻一行,通过:f代表立刻显示出文件路径以及目前显示的行数

more命令同样可以查看文件内容,同cat命令不同的是:

  • cat命令是直接将全部内容显示出来
  • more命令支持翻页,如果文件内容过多,可以一页一页的展示文件内容

例子:Linux系统内容比较多的文件:/etc/man_db.conf       /etc/services 

3.2.1.3 less 一页一页翻动

  • 语法: less 文件路径
  • 例如:less /etc/man_db.conf

    ....(中间省略)....
    :   <== 这里可以等待你输入命令!
    
less运行时可以输入的命令有:

  •     空格Space键    :向下翻动一页;
  •     [pagedown]:向下翻动一页;
  •     [pageup]  :向上翻动一页;
  •     q         :离开 less 这个程序;

3.2.2 创建文件

  • 语法:touch  xxx.txt
  • 通过touch命令创建一个空白的普通文件 

3.2.3 写入内容

  • 可以使用echo命令在命令行输出指定内容,语法:echo "输出的内容"
  • echo `pwd`:被反引号/飘号`包围的内容,将会被作为命令去执行,而不是作为普通的字符

echo配置重定向符使用:两个特殊符号,重定向符:>和>> 

  • >将左侧命令的结果覆盖写入到符号右侧指定的文件中
  • >>将左侧命令的结果追加写入到符号右侧指定的文件中 

  • echo 把内容重定向到指定的文件中 ,有则打开,无则创建 

3.2.4 复制/拷贝文件 / 文件夹

  • 语法: cp [-adfilprsu] 参数1 - 来源档(source)  参数2 - 目标档(destination) 

  • -r选项,表示用于复制文件夹使用,表示递归!
  • 并且复制文件夹,必须使用-r选项,递归复制,否则不会生效! 

3.2.5 移动文件或文件夹

语法:mv 参数1-源文件  参数2-目标文件

  • mv 命令可以移动文件或文件夹(目录),移动后源文件就没有了,因为源文件已经移动到了目标文件当中了。

举例:移动myself文件夹到NewMyself文件夹中  

如果目标文件不存在,则还起到改名的效果,移动源文件后还要进行源文件的改名,修改源文件的名称并移动到目标文件。

如果目标文件存在,则会询问你是否要覆盖目标文件的内容:

  • 输入n则不覆盖也不移动,输入y则确定覆盖目标文件的内容且移动! 

如果不想询问,可以:mv  -f  参数1  参数2,强制覆盖,但这种方式不推荐!

3.2.6 删除文件或文件夹 

语法: rm [-fir] 文件或目录1.....文件或目录N
        -f :
就是 force 的意思,强制删除,忽略不存在的文件,不会出现警告信息
        -i :互动模式,在删除前会询问使用者是否动作
        -r :递归删除啊!最常用在目录(文件夹)的删除了!这是非常危险的选项!!!

删除文件夹必须加-r选项,表示递归!

rm命令来自英文单词:remove 

如果不想让提示,直接rm -rf /文件路径:

3.3 打包与拆包     压缩和解压缩

  • 先打包再压缩    先拆包再解压缩

为了便于传输或节省存储空间,有时候文件是以压缩包的形式存在,因此就需要了解压缩与解压缩相关的命令。

  • 打包就是指将一大堆文件或目录什么的变成一个总的文件。
  • 压缩是指将一个大的文件通过一些压缩算法变成一个小的文件。
  • 在Linux中打包和压缩是两个过程

一般Linux 上常用的压缩方式是选用 tar打包命令 将多个文件打包成一个文件再以 gzip压缩命令压缩成xxx.tar.gz(或者xxx.tgz)的文件
  
 常用参数:        

  •         -c:打包,创建一个新tar文件
  •         -v:显示运行过程的信息
  •         -f:指定要操作的文件名
  •         -z:调用gzip 压缩命令进行压缩或解压缩
  •         -t:查看压缩文件的内容
  •         -x:解包/拆包,解开tar 文件
  •         -C:解压文件至指定的目录,如果是解压到当前目录,可以不加-C

打包:tar -cvf  + xxx.tar + 要打包的文件或目录的列表,用空格隔开

打包并且压缩为指定文件:tar + -zcvf + xxx.tar.gz + 要打包的文件或目录的列表,用空格隔开

拆包指定文件到指定位置:tar  + -xvf + xx.tar + -C + /📂路径

解压指定文件到指定位置:tar + -zxvf + /xx.tar.gz + -C + /📂路径 

  • 注意-C大写,防止拆包解压缩的路径找不到

PS:如果在Linux命令行不小心输错命令,可以使用Ctrl + C组合键来中断当前命令的执行!  

3.3.1 grep命令

语法:grep [-n] "关键字" 文件路径

作用:通过grep命令,从文件中通过关键字的过滤找出匹配的行并输出! 

  • 选项 -n,可选,表示在结果中显示匹配的行的行号

3.3.2 管道符

  • 一个新的特殊的管道符:| 
  • 管道符的含义是:将管道符左边命令的结果,作为右边命令的输入。
  • 只要能产生内容输出的命令,都能跟管道符做配合。

3.4 进程相关命令

任务都以进程或线程的形式存在,因此需要随时关注系统的进程,查看是否有异常进程以及各进程占用系统资源的情况并使用不同的进程管理命令对进程管理和控制。 

3.4.1 查看进程快照

1. ps

功能描述:查看系统中所有进程

参数:

  • -e:表示显示所有进程,包括其它用户的进程
  • -f:全格式,表示以完整的格式显示进程信息,包括进程的状态,PID(进程ID),PPID(父进程ID),%CPU(CPU使用率)
  • -a:表示显示所有终端运行的进程,包括当前用户和其它用户的进程。
  • -u:表示以用户为基础显示进程信息,显示用户级别的详细信息
  • -x:表示显示没有终端的进程,也就是守护进程(Daemon)

ps :ps  -axu  <==> ps -ef  都是显示全部进程,显示当前进程的快照  

  • 只是进程显示范围不同,ps -ef默认只显示与当前终端相关的进程(比如登录用户的终端),而ps -axu则会显示所有运行终端运行的进程,包括守护进程和其它用户的进程。

 

每一项含义
USER所属用户,进程是由哪个用户产生的
PID进程ID
%CPUCPU使用率,该进程占用CPU的百分比,占用越高,进程越耗费资源
%MEM内存使用率,该进程占用内存的百分比,占用越高,进程越耗费资源
VSZ占用虚拟内存的大小,单位KB
RSS占用实际物理内存的大小,单位KB
TTY终端设备,表示该进程在哪个终端中运行,tty1-tty7代表本地控制台终端(tty1-tty6是本地的字符界面终端,tty7是图形终端),pts/0-255代表虚拟终端
STAT进程状态,常用状态有:R(运行)、S(睡眠)、T(停止状态)、s(包含子进程)、+(位于后台)
START进程启动时间
TIME累计使用CPU的运算时间,进程执行时间,即占用cpu的运算时间,不是系统时间
COMMAND / CMD产生此进程的命令名,命令行

查看Java进程:ps - axu | grep java

查看MySQL进程 ps - axu | grep mysql

4. VIM文本编辑器-重要

4.1 VIM的模式

vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)

vim 是 vi 的加强版本,兼容 vi 的所有指令!

如果需要通过vi / vim编辑器编辑文件,请通过如下命令:

  • vi / vim 文件路径

PS:如果文件路径表示的文件不存在,那么此时会创建一个新的文件供编辑使用;如果文件路径表示的文件存在,那么就直接编辑已有文件。 

4.1.1命令模式:

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

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符

  • 比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

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

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

4.1.2 输入模式 - -- INSERT --

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

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

  1.    字符按键以及Shift组合,输入字符
  2.     ENTER,回车键,换行
  3.     BACK SPACE,退格键,删除光标前一个字符
  4.     DEL,删除键,删除光标后一个字符
  5.     方向键,在文本中移动光标
  6.     HOME/END,移动光标到行首/行尾
  7.     Page Up/Page Down,上/下翻页
  8.     Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  9.     ESC,退出输入模式,切换到命令模式 

4.1.3 底线命令模式

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

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):

  •     w - write保存文件
  •     q  - quit退出vim编辑器
  •     wq 保存文件并退出vim编辑器,哪怕 / 即使文件内容没有发生修改,也会强制更新文件的修改时间!
  • :x    也是保存文件并退出Vim编辑器,当且仅当文件被修改时才更新文件的修改时间!

推荐使用:x,因为使用:wq会强制更新文件的修改时间,让整个项目误认为文件被修改过了,然后就得重新编译链接生成可执行文件,这可能会产生让人误解的后果,当热也产生了不必要的系统资源花销!

  •     :q! 强制退出 /  不保存退出

按ESC键可随时退出底线命令模式。 

命令模式: 

输入模式: 

5. Linux的文件权限

  • 用户:UserID   用户组:GroupID 

Linux操作系统中对权限的管理很严格。Linux系统中不仅是对用户与组根据UID,GID进行了管理,还对Linux系统中的文件,按照用户与组进行分类,针对不同的群体进行了权限管理,用它来确定谁能通过何种方式对文件和目录进行访问和操作。  

  • Linux下文件的权限类型一般包括【读,写,执行】对应字母为 r、w、x

ullet Linux下权限的粒度有【拥有者/当前用户 、用户组 、其它组】三种,类似于你自己你的好朋友陌生人这三种;每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限

  • 通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组
  • Linux上通常使用chmod命令对文件的权限进行设置和更改

5.1文件权限

1. Linux文件一共有三种身份:

  • u:文件的拥有者(user)
  • g:文件所属的群组(group)
  • o:其他用户(other)

2. 对于每个身份,又有四种权限:

  • r:读取文件的权限(read)
  • w:写入文件的权限(write)
  • x:执行的权限(execute)
  • s:特殊权限(special) 

权限共有10个字符,我们将它分为4大部分来理解:
-  ---  ---  ---      总共四部分
第1部分,第一个字符:表示文件的类型

  •     -  表示是一个文件
  •     d 表示是一个目录
  •      l link,表示是一个连接(理解为快捷方式)

第2部分,第2,3,4个字符:当前用户具有的对该文件的权限(user 属主,缩写u,文件的拥有者)
第3部分,第5,6,7个字符:当前组内其他用户具有的对该文件的权限 (group 属组,缩写g)
第4部分,第8,9,10个字符:其他组的用户具有的对该文件的权限 (other 其他,缩写o)

  •     r:Read 读
  •     w:Write 写
  •     x:eXecute 执行
  •      -:就表示啥都没有

PS:针对目录才加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)      

对于文件和目录来说,r,w,x有着不同的作用和含义:

针对文件:

  • r:读取文件内容 
  • w:修改文件内容 
  • x:执行权限对除二进制程序以外的文件没什么意义

 针对目录:目录本质可看做是存放文件列表、节点号等内容的文件

  • r: 查看目录下的文件列表 
  • w:删除和创建目录下的文件 
  • x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)

PS:root用户虽然不受文件权限的读写限制,但是root用户仍然受到可执行权限的限制!!!

以数字形式表示权限:

  • 读取权限:r 或者4
  • 写入权限:w或者2
  • 执行权限:x或者1
  • 可读写可执行:rwx = 4 + 2 + 1 = 7
  • 可读写不可执行:rw- = 4 + 2 = 6
  • 可读不可写可执行:r-x = 4 +1 = 5

常见权限形式

  • -rw------- (600) 只有拥有者有读写权限。

  • -rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。

  • -rwx------ (700) 只有拥有者有读、写、执行权限。

  • -rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。

  • -rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。

  • -rw-rw-rw- (666) 所有用户都有文件读、写权限。

  • -rwxrwxrwx (777) 所有用户都有读、写、执行权限。

用户获取文件权限的顺序:

  • 先看是否为所有者,如果是,则后面权限不看;
  • 再看是否为所属组,如果是,则后面权限不看。  

5.2 修改文件权限

chown  是change owner的意思,主要作用就是修改/改变文件或者目录的拥有者User,即用户.

  • 语法:chown + 选项 + 用户/所有者/拥有者user + :用户组/群体的使用者group+ 要修改的文件或目录
  • -R处理指定目录以及其子目录下的所有文件

chown  修改文件和文件夹的用户和用户组属性,使用权限为root 

当前前目录下的所有文件与子目录的所有文件的拥有者设为 itnanls,群体的使用者 ydl: 

  • chown -R itnanls:ydl *

将Vim.txt的拥有者设置为gch:

5.3 chmod以字符形式修改文件权限 

  • chmod  修改文件和文件夹读写执行属性

语法:chmod who opt per file

  • who - 要修改的是谁:user group others all(User用户Group用户组Others其它用户All所有用户)
  • operation - 权限操作意图:+ 添加某个权限         – 取消某个权限            = 赋予权限
  • permission - 权限:r-可读    w-可写    x-可执行  
  • File:指定要操作的是哪个文件 

5.4 chmod以数字形式改变文件权限  

语法:chmod XXX file

  • rwx         rw-           r--    
  • 421        420          400
  •  7             6              4  
  •  X            X              X

0无权限;x = 1表示可执行权限;w = 2表示可写权限;r = 4表可读权限

6. Linux常用网络操作

6.1 主机名操作

查看/显示主机名:hostname 

6.2 查询系统完整信息

  • uname - 显示操作系统名称

  • 查询/显示完整的系统信息:uname -a   用于显示当前系统的内核信息和操作系统版本

6.3 IP地址操作

查看虚拟机的IP地址:ip addr    /   ifconfig

由于VMware默认的网络模式是NAT地址转换模式,使用NAT连接方式,DHCP服务器会自动分配IP地址,导致IP地址有可能会发生变化,这样一来我们每次使用远程工具连接时都要查询IP地址,因此我们可以直接给虚拟机绑定一个静态IP。 

修改IP地址:进入/etc/sysconfig/network-scripts/,Vim编辑器进入修改ifcfg-ensxx:

 

重启网络服务:service network restart

6.4 网络服务管理

  • ctl:Control的缩写 

systemctl命令控制软件服务的XXX

Linux系统上很多软件均支持使用systemctl命令控制:

语法:systemctl start | stop | status | restart | enable | disable 服务名

  • start启动、stop关闭、status查看状态、restart重启、enable开启开机时自启动、disable关闭开机时自启。
  • 能够被systemctl管理的软件,一般也称之为:服务!

系统内置的服务比较多,比如:

  • NetworkManager:主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • ssh服务(使用第三方远程连接工具登录Linux使用的就是这个服务,端口号为22)

查看网络服务状态:systemctl status network 


启动网络服务:systemctl start network 
停止网络服务:systemctl stop  network (不建议)
重启网络服务:systemctl restart network    /  service network restart

设置开机启动网络服务:systemctl enable network 

6.4 防火墙设置

查看防火墙状态: systemctl status firewalld  

启动防火墙: systemctl start firewalld
关闭防火墙: systemctl stop firewalld 

查询防火墙服务是否开机启动:systemctl is-enabled firewalld
开机时启用防火墙服务:systemctl
enable firewalld
开机时禁用防火墙服务:systemctl
disable firewalld 

  • 查询已经启动的服务列表:systemctl list-unit-files|grep enabled
  • 查询启动失败的服务列表:systemctl --failed 

7. 其它命令补充

  1. shutdown [‐h] now    立刻关机  譬如:shutdown ‐h now
  2. shutdown [‐r]  now  重新启动 譬如:shutdown ‐r now
  3. reboot    重新启动 譬如:reboot
  4. man [shutdown] 帮助命令 譬如:man shutdown
  5. 查找命令所在路径 :whereis + 命令

ping命令 

语法:ping  [-c num]  ip或主机名/域名 

  • 通过ping命令,检查指定的网络服务器是否是可联通状态
  • 选项:-c,指定检查的次数;如果不使用-c选项,将无限次数持续检查
  • 参数:ip或域名/主机名,被检查的服务器的IP地址或域名/主机名地址

date命令查看系统的日期时间  

 

stat显示指定文件相关信息 

who、w显示当前登录到系统的用户信息 => Linux是一个多任务、多用户的操作系统

whoami显示当前登录用户的用户名 

 

id显示当前登录用户的用户ID - uid以及所属的用户组ID - gid信息等: 

dmesg显示系统启动信息 

du显示指定的文件目录已使用的磁盘空间的容量:

  • -h:以K,M,G作为单位显示文件大小,可读性好
  • -s:仅显示总计大小,而不显示子目录的详细信息
  • -c:末尾显示总计大小,并且列出所有的文件以及文件夹的信息和大小

df命令显示文件系统的磁盘空间使用情况:

  • /dev/sda是指整个硬盘,实际使用中一般都会有分区,也就是/dev/sda1, /dev/sda2这样的

free [-h -t]  显示当前系统内存的使用情况:

  • 交换内存类似于Win上的虚拟内存,虚拟内存就是把硬盘空间转换为内存! 

locale显示当前语言环境:

 

Linux下查看环境变量:echo $PATH 

ln命令创建软连接(相当于创建了快捷方式),可以把文件或文件夹链接到其它位置:

语法:ln  -s  参数1-被链接的文件或文件夹 参数2-要链接去的目的地

source命令

  • 语法:source  配置文件 
  • source命令也称为"点命令",也就是一个点符号(.)。
  • source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必重新登录

telnet 命令

  • telnet就是查看某个端口是否可访问
  • 语法:telnet  IP  Port端口号

需要进行telnet命令的安装:yum -y install telnet 

yum命令

  • yum命令需要root权限,可以su - root切换到root用户,或者使用sudo授权
  • yum命令需要联网
  • yum是Linux里面在线安装软件的命令!
  • yum命令在线安装某个软件

yum search 命令名 / 软件名:查看某个软件或命令是否已经安装

8. Linux上部署Web项目

8.1 远程上传工具的使用

Linux 搭建 Java 开发环境
1.1 下载 JDK

下载JDK Linux 版本 https://www.oracle.com/java/technologies/downloads/#java8-linux 

把下载好的JDK上传到Linux虚拟机上:

上传文件的方式一:使用MobaXterm

 

上传文件方式二:使用Xftp完成上传

PS:若使用MobaXtrem,则默认上传到当前用户的HOME目录下! 

上传到了根目录下:

规范:我们自己安装的软件必须要安装在 /usr/local 目录下

将自己所下载好的位于根目录下的JDK移动到刚才所创建的目录:

解压Linux版本的JDK8的压缩包:文件后缀为tar.gz

查看JDK的版本,验证是否安装成功:

配置JDK环境变量:vim /etc/profile

  • PS:我们所有的配置文件都在etc目录里面! 

编辑profile文件,在profie文件中添加JAVA_HOME变量:   

使配置生效:source  /etc/profile

查看变量是否更新成功:echo $PATH

验证:JDK环境变量若配置好了,就可以在任意目录下查看java -version了!

在Linux里面启动SpringBoot项目的Jar包 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/132053.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes网络插件Canal的工作原理和关键功能

文章目录 什么是 Canal&#xff1f;安装 Canal配置网络策略使用 Canal 进行跨节点通信总结 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&#xff1a;云计算 ✨文章内容&#xff1a;网…

Direct3D光照

光照的组成 环境光&#xff1a;这种类型的光经其他表面反射到达物体表面&#xff0c;并照亮整个场景&#xff0c;要想以较低代价粗略模拟这类反射光&#xff0c;环境光是一个很好的选择 漫射光&#xff1a;这种类型光沿着特定的方向传播。当它到达某一表面时&#xff0c;将沿…

Python 内置函数详解 (2) 逻辑运算

近期在外旅游,本篇是出发编辑的,准备定时发布用,不完整,旅游回来后再补充。 Python 内置函数 Python3.11共有75个内置函数,其来历和分类请参考:Python 新版本有75个内置函数,你不会不知道吧_Hann Yang的博客-CSDN博客https://blog.csdn.net/boysoft2002/article/detai…

群晖Cloud Sync数据同步到百度云、另一台群晖、nextcloud教程

群晖Cloud Sync数据同步到百度云、另一台群晖、nextcloud教程 一、群晖套件中下载Cloud Sync 二、同步到百度云盘 打开Cloud Sync&#xff0c;点击左上角的号&#xff0c;云供应商选择百度云。 这里可以选择双向备份&#xff0c;也可以只上穿到百度云的仅上传本地更改。因为百…

服务器中了勒索病毒怎么办?勒索病毒解密,数据恢复

勒索病毒是一种比较常见的电脑病毒&#xff0c;它们给企业的生产经营和发展带来了很大的影响。可是绝大多数企业在这方面并没有做合理的预案&#xff0c;这也导致当安全运维人员或者企业主发现中了勒索病毒以后手足无措。那云天数据恢复中心就用这篇文章来告诉大家当服务器中了…

联通数科赋能中国联通DCMM5级评估!

近日&#xff0c;中国电子信息行业联合会发布了“关于公布获得数据管理能力成熟度等级证书单位的通知”&#xff0c;中国联通获得最高等级优化级&#xff08;5级&#xff09;&#xff0c;成为通信行业率先获得最高等级的单位&#xff0c;标志着中国联通数据管理能力进入国家第一…

MyBatis基础之概念简介

文章目录 基本概念1. 关于 MyBatis2. MyBatis 的体系结构3. 使用 XML 构建 SqlSessionFactory4. SqlSession5. 默认的别名6. 补充 [注意] 放前面前 很多人可能在使用 MyBatis-plus 进行代码开发&#xff0c;MyBatis的这部分内容是用来更好的讲述之后的内容。 基本概念 1. 关于…

Apollo介绍和入门

文章目录 Apollo介绍配置中心介绍apollo介绍主流配置中心功能特性对比 Apollo简介 入门简单的执行流程Apollo具体的执行流程Apollo对象执行流程分步执行流程 核心概念应用&#xff0c;环境&#xff0c;集群&#xff0c;命名空间企业部署方案灰度发布全量发布 配置发布的原理发送…

小程序引入高德/百度地图坐标系详解

小程序引入高德/百度地图坐标系详解 官网最近更新时间&#xff1a;最后更新时间: 2021年08月17日 高德官网之在原生小程序中使用的常见问题 链接 目前在小程序中使用 高德地图只支持以下功能 &#xff1a;地址描述、POI和实时天气数据 小结&#xff1a;从高德api中获取数…

PaddleOCR以及CUDA、cuDNN安装踩坑记录

PaddleOCR安装参考官网或者Gitee说明文档&#xff1a;https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/quickstart.md 可以先安装CPU版本跑起来&#xff1a; python3 -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple pip instal…

【操作系统】进程的概念、组成、特征

概念组成 程序&#xff1a;静态的放在磁盘&#xff08;外存&#xff09;里的可执行文件&#xff08;代码&#xff09; 作业&#xff1a;代码&#xff0b;数据&#xff0b;申请&#xff08;JCB&#xff09;&#xff08;外存&#xff09; 进程&#xff1a;程序的一次执行过程。 …

python自学

自学第一步 第一个简单的基础&#xff0c;向世界说你好 启动python 开始 print是打印输出的意思&#xff0c;就是输出引号内的内容。 标点符号必须要是英文的&#xff0c;因为他只认识英文的标点符号。 exit&#xff08;&#xff09;推出python。 我们创建一个文本文档&…

计算机竞赛 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#x…

【每日一题】73. 矩阵置零

73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[…

Thinkphp6 配置并使用redis图文详解 小皮面板

这篇文章主要介绍了Thinkphp6 配置并使用redis的方法,结合实例形式详细分析了Redis的安装、配置以及thinkphp6操作Redis的基本技巧,需要的朋友可以参考下 一、安装redis ThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite。ThinkPHP默认使用自带的采用think\Ca…

多台以太网交换机怎么连接?

当一台交换机不能满足端口数量和某种特定功能需求时&#xff0c;通常用户会将多台以太网交换机连接在一起&#xff0c;那么在网络部署时如何将多台以太网交换机连接在一起呢&#xff1f;目前常见的三种连接方式有&#xff1a;级联、堆叠和集群。本文旨在阐明这三种技术以及其中…

快速幂 c++

一般大家写都是 int ans 1; for (int i 1; i < a; i )ans * x;时间复杂度 但是这对于我们还不够&#xff0c;我们要 首先我们得知道一个数学知识 那么求 就有以下递归式 a 能被2整除 a 不能被2整除 (这里a/2是整除) 所以每次都调用 不就是么 最后补充一个东西…

9个值得收藏的WebGL性能优化技巧

在这里&#xff0c;我们推荐一些经证明非常适合创建基于 Web 的交互体验的优化技术。 本章主要基于 Soft8Soft 在 Verge3Day Europe 2019 会议上的演讲。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、几何/网格 几何是 3D 应用程序的基础&#xff0c;因为它构成了…

靠差异化上了短剧“牌桌”后,百度准备怎么做生态?

从最初的野蛮生长到如今的百花齐放&#xff0c;短剧市场已然进入了质量与创意的竞争。 据《中国网络视听发展研究报告》数据显示&#xff0c;行业内重点网络微短剧上线数量从2021年的58部&#xff0c;飙升到2022年的172部。相比起前几年处于风口时的爆发式增长&#xff0c;“分…

帧结构的串行数据接收器——Verilog实现

用Verilog 实现一个帧结构的串行数据接收器&#xff1b; 串行数据输入为&#xff1a;NRZ数据加位时钟&#xff08;BCL&#xff09;格式&#xff0c;高位在前 帧结构为&#xff1a;8位构成一个字&#xff0c;64字构成一个帧。每帧的第一个字为同步字。同步字图案存储在可由CPU读…