Linux学习

  • Linux入门

  • vim编辑器

  • Linux目录结构

  • 远程登录Linux

  • 常用指令

  • 进程管理

  • 用户管理

  • 定时任务

  • RPM和YUM

  • 开机重启

  • 磁盘分区,挂载

  • 网络配置

  • 日志管理

  • Linux内核

  • 定制Linux

  • Linux备份与恢复

  • Linux可视化管理工具

  • Linux面试题

  • JavaEE定制

  • python定制

  • 大数据定制

  • Vmware安装

  • CentOS7安装

  • 网络连接的三种方式:桥接模式,NAT模式和仅主机模式

  • 虚拟机克隆

  • 虚拟机快照管理

  • 虚拟机删除和迁移

  • 安装vmtools,实现主机和虚拟机的相互复制

  • Linux目录结构

/ - 根目录

/bin - 存放重要的用户二进制文件目录

bin 是binary的缩写,/bin 目录存放了非常重要的用户二进制文件,其实就是一些程序。cd, cal……

/boot - 存放系统启动时需要文件的目录

/boot 中存放的主要是系统启动时需要用到的文件,比如EFIGRUB以及 Linux 内核。

/dev - 设备文件目录

Linux 将所有东西都看成文件,设备也不例外,不论是实体的硬件设备还是虚拟设备。实体硬件比如第一块被检测到的硬盘会被挂载到/dev/sda,第二块会被挂载到/dev/sdb,以此类推。虚拟设备比如nullrandomstderrstdinstdout

/etc - 配置文件目录

etc 的含义是Et cetera,表示一些相关的其他东西,/etc 从 UNIX 早期开始就被用来存放配置文件,一直沿用至今。需要注意的是,/etc 中存放的是系统配置文件,特定用户的配置文件放在每个用户的 / home 目录下。

/home - 用户目录

/home 目录中存放的是每个用户的用户目录,比如有一个用户叫 tom,/home/tom 就是他的用户目录,每个用户的用户目录中存放的用户数据和用户配置文件,比如每个用户的.bashrc文件、.ssh目录等。普通用户只能访问自己的用户目录而不能访问别人的,root 用户则没有此限制。

/lib - 重要的共享库目录

/lib 目录中存放的是/bin/sbin中那些重要的二进制文件(程序)需要的共享库。另外/usr/bin中二进制文件(程序)需要的共享库都存放在/usr/lib

/lost+found - 恢复文件目录

每个 Linux 文件系统都有 / lost+found 目录,当文件系统崩溃时,在下次启动时将会进行文件系统自检,任何在崩溃过程中损坏的文件都将被放入 / lost+found,你可以尝试找到并恢复这些文件。

/media -媒体

当你将一些可删除媒介(比如 CD,U 盘,光驱等)挂载到计算机上时,系统会在 / media 下自动创建子目录,之后就可以通过访问这个子目录来访问媒介。比如你在电脑上插入 CD,在 / media 目录下就会自动生成一个子目录,你可以通过访问这个子目录来访问 CD 的内容。

/mnt - 临时挂载点目录

mntmount的缩写,各种设备挂载到系统后,会在 / mnt 目录下生成相应设备的目录,比如挂载光驱、文件系统、CD 等。

/opt - 可选包目录

optOptional的意思,系统中安装的可选软件包(安装文件)被存放在 / opt 目录中。(自行安装的一些软件,如jdk,mysql等)

/proc - 内核和进程文件目录

/proc 是一个虚拟目录,并不包含任何标准文件。当系统启动后,会对当前内核和硬件信息进行检测,并将这些信息放在这个目录中(其实都在内存中)。你可以使用cat /proc/meminfo来查看关于内存的一些信息,或者使用cat /proc/version来查看 Linux 内核信息。

/root - root 用户的 home 目录

/run - 应用程序状态目录

/run 目录用来存放应用程序在运行期间需要的一些短暂存在的文件,比如 socket 和 pid 文件,这些文件对这些应用程序的运行很重要,因此不能把他们放在 / tmp 目录下,因为 / tmp 目录下的文件有可能会被系统清空。

/sbin - 系统管理员用的二进制文件目录

/sbin 目录和 /bin 目录有些类似,都是存放二进制文件。比较特殊的是,/sbin 目录存放的都是系统管理的命令程序,一般只有 root 用户能使用。

/srv - 服务数据目录

/srv 目录主要用来存放一些系统提供的网络服务的数据,如果你在机器上运行一个 HTTP 服务器来对外提供静态文件时,/srv/http目录将存放这些静态文件,如果你运行一个 FTP 服务器对外提供文件,则/srv/ftp目录将存放这些文件。

/tmp - 临时文件目录

/usr - 用户二进制文件和只读文件目录

/usr 目录下存放的是用户使用和安装的程序,可以很明显地发现,Linux 将普通用户和系统使用的程序分开存放,比如上面提到过,系统使用的一些重要程序存放在 / bin,而那些用户安装的程序就被放在 /usr/bin。不太重要的系统管理程序存放在 /usr/sbin 而不是 /sbin。usr 也被称为UNIX Software Resource,这是比较早期的说法。下面是 / usr 目录下常见的几个子目录的含义:

1. /usr/bin 存放用户命令
2. /usr/include 存放编程语言的头文件和包含文件
3. /usr/lib 存放各个应用程序的库函数和目标文件
4. /usr/local 存放系统管理员下载的软件的安装目录
5. /usr/sbin 存放不常用的系统命令
6. /usr/src 存放源码

/var - 变动数据目录

/var 一般用来存放经常变动的数据,比如日志文件和缓存文件。下面是 / var 目录下常见的几个子目录的含义:

1. /var/cache 存放应用程序运行产生的临时文件
2. /var/lib 存放程序在执行过程中需要使用到的数据文件,每个软件在此目录下都有自己独自的目录
3. /var/lock 存放程序的锁状态
4. /var/log 存放各种日志文件
5. /var/mail 存放个人电子邮箱
6. /var/run 有些程序在运行后,会将他们的 pid、socket 文件放置到这个目录中
  • 远程登录Linux服务器(ssh连接,MobaXterm,Xshell等)

  • 远程文件传输(XFTP连接Linux服务器,SFTP,22端口,即可实现文件互传)如果乱码,选择设置,编码UTF-8

  • vim编辑器

  • 正常模式

  • 插入模式(编辑)

  • 命令行模式

常用快捷键

  • Linux开机重启
shutdown -h now 立马关机
shutdown -h 1 1分钟后关机
shutdown -r now 立马重启
halt 关机
reboot 重启
sync 把内存的数据同步到磁盘(关机前同步一下比较保险)
  • 用户登录退出
su [username]
exit 退出root权限,转为普通用户
logout 退出root
  • 用户管理
useradd [username] 添加用户
useradd -d [指定目录,非默认的hone下] [username]

password [username] 设置/修改指定用户的密码

userdel [username] 删除用户,保留被删用户的家目录
userdel -r [username] 删除用户,同时删除被删用户的家目录

id [username] 查询指定用户信息

su [username] 切换用户(切换用户后,要返回原来的用户,exit/logout)

who am I 查询当前用户登录信息
  • 用户组管理(角色,部分)
groupadd [组名] 添加组
groupdel [组名] 删除组

useradd -g [组名] [username] 添加用户时直接指定组(如果不指定组,默认自己一个组,组名=用户名)

usermod -g [组名] [username] 修改用户所在的组

/etc/password:用户user的配置文件,记录用户的各种信息

/etc/shadow:口令的配置文件(用户的加密密码)

/etc/group:组group的配置文件,记录Linux组的信息

  • 运行级别(3,5)
0: 关机
1: 单用户【找回密码】
2: 无网络的多用户
3: 命令行模式
4: 未用
5: GUI(图形桌面 模式)
6: 重启

init [运行级别] 切换不同的运行级别 init 5,[init 0]=[shutdown]

systemctl get-default 获取当前的运行级别
systemctl set-default [TARGET.target] 设置系统默认的运行级别,multi-user.target=3,graphical.target=5
  • 找回root密码(假设忘记root密码)
  • Linux帮助指令
man [命令或配置文件] 获取帮助信息,如[man ls]
help [命令] 获得shell内置命令的帮助信息
  • 文件目录常用指令
pwd
ls [选项] [目录/文件]
cd [绝对路径/相对路径] cd ~/cd:回到家目录
mkdir [目录] 创建目录
mkdir -p [目录] 创建多级目录,如 mkdir /home/animal/tiger 创建animal,创建tiger,多级目录
rmdir 删除空目录,如果目录下有内容,rm -rf
touch 创建空文件
cp [选项] [source] [dest] 拷贝文件到指定位置 -r:递归复制整个文件夹 cp -r /home/bbb /opt
rm 删除文件或目录 -r:递归删除整个文件夹 -f:强制不提示
mv 移动文件或目录或重命名
cat -n:显示行号
more [要查看的文件] 查看文件,逐页查看
(1)回车键向下滚动一行;
(2)空格键(Space)显示下一页;
(3)b 键(back)回显上一页;
(4)斜杠 / 后跟待搜索的正则表达式进行查找;
(5)=输出当前行号 :f输出文件名和当前行号
(6)q 或 Q 键退出。
less 分屏查看文件内容,与more类似。less显示文件内容时,并不是一次性加载整个文件显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
(1)回车键向下滚动一行;
(2)空格键(Space)显示下一页;
(3)pagedown 向下翻页
(4)pageup 向上翻页
(4)/字符串 查找字符串 输入n:向下查找 输入N:向上查找

echo 输出内容到控制台 echo &HOSTNAME echo &PATH
head 显示文件开头内容(默认10行) head -n 5 文件:显示文件前5行内容
tail 显示文件尾内容(默认10行) tail -n 5 文件:查看文件末尾5行内容
tail -f *.log 实时监控日志内容 --color
>:输出重定向  ls -la > 文件
>>:追加  echo "内容" >> 文件 (追加)
ln:软链接,类似于windows中的快捷方式
ln -s 【源文件或目录】【软链接名】给源文件创建一个软链接(动态链接库,很多应用程序共享,可以创建动态库的软链接)
rm 【软链接名】删除创建的软链接
history:显示历史命令 history n:查看最近使用的n条指令 
!【指令编号n】 执行历史编号为n的指令
  • 时间日期类指令
date 显示当前时间
date +%Y 显示当前年份
date +%m 显示当前月份
date +%d 显示当前日
date "+%Y-%m-%d %H:%M:%S" 按格式显示年月日时分秒
date -s "2020-11-03 20:02:10" 设置日期时间
cal 查看当前月日历(calendar) cal 2020 查看2020年的日历
  • 搜索查找类
find [搜索范围,从哪一个目录开始递归查找] [选项] 查找文件或目录,递归搜索
-name [文件名] 按名字查找 find /home -name test.txt
-user [用户名] 找属于某个用户的所有文件 find /opt -user root
-size [文件大小] 按照指定文件大小来查找文件 find / -size +200M (+n大于 -n小于 n等于,单位有K,M,G)

locate 【搜索文件】快速定位文件路径 locate无需遍历整个文件系统,查询速度较快
执行locate命令之前,必须执行 updatedb 指令,否则查询不到

which 可以检查某个指令在哪个目录下 which ll
  • 过滤查找
grep 过滤查找和管道符号 |
-n 显示行号
-i 忽略字母大小写
grep 【选项】 【查找内容】 源文件 grep -n "yes" /home/orange/hello.txt
  • 压缩和解压
gzip/gunzip 
gzip [file] 压缩文件 -> file.gz
gunzip [file.gz] 解压文件

zip/unzip 压缩文件或目录
zip -r myhome.zip /home  -r:递归压缩,即压缩目录
unzip -d /opt/tmp myhome.zip  -d:指定解压目录

tar:打包指令,既可以压缩,也可以解压
tar -zcvf pc.tar.gz /home/test1.txt /home/test2.txt 压缩多个文件
tar -zxvf pc.tar.gz 解压到当前目录
tar -zxvf pc.tar.gz -C /home/tmp 指定解压路径
  • 组管理和权限管理

文件:所有者(创建它的人,可以改变)/所在组(这个组的所有用户对它拥有权限)/其他组(其他组的用户对此文件拥有一定权限)

ls -lah:
apple@MacBook-Pro ~ % ls -lah
total 256
drwxr-xr-x+  58 apple  staff   1.8K 12 26 23:49 .
drwxr-xr-x    6 root   admin   192B  1  1  2020 ..
-r--------    1 apple  staff     9B  8 15  2019 .CFUserTextEncoding
-rw-r--r--@   1 apple  staff    28K 11 20 21:47 .DS_Store
drwx------    3 apple  staff    96B 12 26 22:07 .Trash
drwxr-xr-x    3 apple  staff    96B 11  3  2019 .anaconda
drwxr-xr-x   19 apple  staff   608B  5 10  2020 .android
-rw-------    1 apple  staff    30B 11  3  2019 .bash_history
-rwxrwxrwx@   1 apple  admin   1.0K  4  5  2021 .bash_profile
修改文件所有者:chown 用户名 组名 (change owner = chown)
创建组:groupadd animal
创建一个用户到指定组:useradd -g animal cat
当某个用户创建一个文件后,该文件的所有者是该用户,该文件所在的组默认是该用户所在的组

修改文件/目录的所在组:chgrp 组名 文件名 (change group = chgrp)

改变用户所在组:usermod -g 新组名 用户名
usermod -d 目录名 用户名 修改用户登录的初始目录(注意:用户需要有进入新目录的权限)
注意:usermod -d ,必须确认这名user没在电脑上执行任何程序

5:如果是目录,ls -la,表示子目录数,不包含文件,注意哈(仅是目录)

  • 文件r:文件可被读取,查看内容

  • 文件w:文件可以被修改内容(注意:这里的权限不包含删除整个文件,删除文件是对文件所在的目录的修改权限)

  • 文件x:文件可被执行

  • 目录r:可悲读取,ls查看目录下内容

  • 目录w:可以在该目录下添加或删除文件,重命名文件

  • 目录x:可以通过cd命令进入该目录

r=4, w=2, x=1:也可以使用数字来表示权限

修改文件或目录的权限(chmod=change mode)

u:所有者 g:所在组 o:其他人(other) a:所有人(all)

  1. 通过 + - = 变更权限

    chmod u=rwx,g=rx,o=x [file/dictionary]
    chmod u+x [file/dictionary]
    chmod a-x [file/dictionary]
    
  2. 通过数字变更权限

    chmod u=rwx,g=rx,o=x [file/dictionary] = chmod 751 [file/dictionary]
    chmod 777  [file/dictionary] 给所有人赋予该文件所有权限
    

修改文件所有者

chown 新的所有者 文件或目录
-R:递归生效,如果是目录,则此目录下的所有子目录和文件递归生效
chown -R tom /home/test /home/test目录下所有文件和子目录的所有者都修改为tom

修改文件所在组

chgrp 新组 文件/目录 修改文件/目录所在组
-R:递归生效,如果是目录,则此目录下的所有子目录和文件递归生效
  • 定时任务调度crond(系统在某个时间执行特定的命令或程序)
crontab [option]
- e 编辑定时任务
-l 查询当前用户的定时任务列表
-r 删除当前用户的所有定时任务
  • [ ]
Logo

更多推荐