Linux进阶
Linux进阶
MR.XSSLINUX
1、LINUX文件目录
以下是对这些目录的解释:
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:1
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。/srv:
该目录存放一些服务启动之后需要提取的数据。/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。/usr/bin:
系统用户使用的应用程序。/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。/usr/src:
内核源代码默认的放置目录。/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是 /bin、**/usr/bin** 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
2、vim编辑器
正常模式
直接使用命令 vim [文件名] 就可以对文件进行复制、粘贴、删除文本内容
插入模式
打开文件之后,按下按键 i 即可进入插入模式
命令行模式
【按下ESC,输入:】在这个模式下可以根据你提供地相关指令,完成读取、存盘、替换、离开vim、显示行号等动作
拷贝当前行 yy,拷贝当前行向下五行 5yy,并粘贴 (输入 p)
删除当前行 dd,删除当前行向下五行 5dd
在文件中查找某个单词【命令行下 / 关键字,回车 查找,输入 n 就是查找下一个】
设置行号 【 set nu 】 | 取消行号【 set nonu】
快速查看第一行和最后一行【 G | gg 】
撤销已经输入的文字 在一般模式下输入小写的【 u 】
光标快速定位到某一行 【行号 shift + g】
3、安装Java
命令行安装
- 执行安装命令
1
yum install java-1.8.0-openjdk-devel -y
- 检查Java版本如果成功安装,你应该可以看到类似以下的版本信息:
1
java -version
1 | openjdk version "1.8.0_292" |
- 设置JAVA_HOME环境变量
编辑/etc/profile文件,将以下行添加到文件底部
1 | export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk |
- 使之生效
执行以下命令,使之生效:
1 | source /etc/profile |
4、关机重启
基本命令
1 | shutdown -h now 立即关机 |
5、登陆注销
1 | su 【用户名】 切换用户 |
6、用户管理
创建用户
1
2useradd 【用户名】 此命令会默认创建一个与用户名相同的家目录 -g 指定组
useradd -d 【用户名】 指定目录创建用户设置/修改密码
1
passwd 【用户名】 -不指定用户名就会给当前用户修改密码
删除用户
1
2userdel 【用户名】
userdel -r 【用户名】查询用户信息
1
2id 【用户名】
whoami/who am i 查看当前登录用户信息用户组
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
1
2
3
4
5
6groupadd 【组名】 -添加组
groupdel 【组名】 -删除组
groupmod 选项 【组名】 -修改组 选项 -g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字用户和组相关文件
1
2
3/etc/passwd 用户配置文件,存储用户各种信息
/etc/shadow 口令配置文件,存放登录名,加密口令等信息
/etc/group 组配置文件,记录linux包含的组信息,包括组名,口令,组标识号,组内用户列表指定运行级别
执行运行级别
1
2
3
4
5init 【运行级别】 -- 切换运行级别
systemctl get-default --查看当前运行级别
systemctl set-default 【级别】 --查看默认级别
【multi-user.target】 -无图形化界面
【graphical.target】 -图形化界面帮助指令
1
2man 【命令或配置文件】 --获取命令帮助信息
help --获取shell内置命令帮助信息
7、文件目录指令
cd 命令
1
2cd ~ -- 直接回到家目录
cd .. -- 返回上一级mkdir 创建指令
1
2mkdir 【目录】 --默认只可以创建一级目录
mkdir -p 【目录】 -- 可以创建多级目录rmdir 删除指令
1
2
3rmdir 【选项】 -- 默认只可以删除空目录
rm -r 【选项】 -- 强制删除
rm -rf 【选项】 -- 强制递归删除cp 拷贝指令
1
2cp 【选项】 target -- 拷贝到指定目录
cp -r 【选项】 target -- 递归拷贝到指定目录mv 移动指令
1
mv 【旧文件】 【新文件】 --在同一个目录为重命名,不在同一个目录为移动文件
head 查看文件头部
1
2head -f --查看文件前十行
head -n 【行数】 -- 查看头部N行tail 查看文件尾部内容
1
2tail -f -- 动态查看尾部10行
tail -n 【行数】 -- 查看末尾N行指令>【输出重定向】和指令>>【追加】
示例
1
2ls -l > 【文件】 将列表内容覆盖写到该文件中
ls -l >> 【文件】 将列表内容追加写到该文件末尾ln 指令 软连接
软连接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
1
ln -s 【源文件目录】 【软链接名称】 -- 给源文件创建一个软链接
history 指令
查看曾静执行过的指令
1
2history 【行数】 -- 查看最近执行的N条指令
!【行号】 -- 执行曾经执行过的指令
8、时间日期指令
date 指令 -显示当前日期
基本语法
1
2
3
4
5date -- 显示当前时间
date +%Y -- 显示当前年份
date +%m -- 显示当前月份
date +%d -- 显示当前是哪一天
date "+%Y-%m-%d %H:%M:%s" -- 显示年月日时分秒
9、搜索指令
find指令
find指令将从指定目录向下递归遍历各个子目录进行文件查找,将满足条件的文件或者目录显示在终端
1
2
3
4find 【搜索范围】 【选项】
-name -- 按照指定文件名查找文件
-user -- 查找指定用户名所有文件
-size -- 按照指定文件大小查找文件grep指令 和 管道符 |
grep过滤查找,管道符,“|” ,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法
1
2
3grep 【选项】 查找内容 源文件
-n 显示匹配行及行号
-i 忽略字母大小写
10、压缩指令
gzip/gunzip 指令
1
2gzip 【文件】 -- 压缩文件,将文件压缩为gz文件
gunzip 【文件】 -- 解压文件zip/unzip 指令
1
2
3
4
5
6zip 【选项】 xxx.zip -- 压缩
unzip 【选项】 xxx.zip -- 解压缩
zip选项
-r -- 递归压缩
unzip选项
-d <目录> -- 解压后指定解压目录