Linux,SHELL基础知识笔记
一、Linux 操作系统安装(基于 VMware + Oracle Linux 6.4)
1. 安装环境与前提
- 虚拟化平台:VMware vSphere Web Client(登录地址示例:https://92.16.16.10:9443/vsphere-client/),需通过分配的用户名(如userXX@udbs.cn)和密码登录。
- 安装镜像:oraclelinux6update4.iso,支持本地文件加载或云服务器镜像加载。
- 硬件配置:建议 2 核 CPU、2048MB 内存、20GB 硬盘(实验环境标准配置)。
2. 核心安装步骤
- 虚拟机初始化:进入虚拟机管理页面,启动控制台,加载 Linux 镜像,重启后选择 “Install or upgrade an existing system”。
- 介质测试与语言设置:选择 “OK” 进行介质测试(可选 Skip 跳过),语言默认 “中文(简体)”,键盘选 “U.S. English”。
- 存储与网络配置:
-
- 存储设备:选择 “Basic Storage Devices”,确认 “Discard any data” 清除原有数据。
-
- 主机名:默认localhost.localdomain(后续可通过配置文件修改),暂不配置网络(后续手动调整)。
-
- 时区:选择 “Asia/Chongqing”,取消 “System clock uses UTC”。
- 用户与权限设置:
-
- root 密码:建议设为hadoop(实验统一密码,注意系统提示 “弱密码” 时选择 “Use Anyway”)。
-
- 安装类型:选 “Desktop”(图形界面,便于新手操作),勾选 “Customize now” 自定义软件包。
- 软件包选择(关键组件,确保后续 Hadoop 环境兼容):
-
- Base System:勾选 “Base”“Compatibility libraries”“Legacy UNIX compatibility”。
-
- Servers:勾选 “FTP server”“System administration tools”(含ocfs2-tools和oracleasm-support)。
-
- Desktops:勾选 “Desktop”“tigervnc-server”(远程桌面支持)。
-
- Applications:全选 “Internet Browser”;Development:全选 “Additional Development”“Development tools”。
- 后续配置:安装完成重启后,跳过 “License Information”(实验环境可忽略)、“Set Up Software Updates”(暂不配置)、“Create User”(后续手动创建 Hadoop 用户),关闭 “Kdump”(节省内存)。
二、用户与组管理(核心命令与示例)
1. 查看用户信息
命令 | 功能 | 示例输出 |
users | 列出当前登录用户 | root pts/1 root :0 |
who | 显示用户登录终端与时间 | root :0 2024-10-08 15:36 |
whoami | 显示当前用户账号 | root |
id | 显示用户 UID、GID 及所属组 | uid=0(root) gid=0(root) groups=0(root),1(bin) |
2. 用户操作(需 root 权限)
- 创建用户:useradd 用户名,如useradd hadoop(默认创建同名组,家目录在/home/用户名)。
- 设置密码:passwd 用户名,如passwd hadoop,输入密码时无回显,确认后提示 “all authentication tokens updated successfully”。
- 切换用户:su - 用户名,加 “-” 表示切换完整环境变量(关键!避免后续 Hadoop 配置异常),如su - hadoop。
- 删除用户:
-
- userdel 用户名:仅删除用户,保留家目录。
-
- userdel -r 用户名:删除用户及家目录(彻底清理,如userdel -r test)。
3. 组操作
- 创建组:groupadd -g GID 组名,如groupadd -g 1000 hadoop(指定 GID 为 1000)。
- 删除组:groupdel 组名,如groupdel testg(需确保组内无用户,否则先删除用户)。
三、文件与目录管理(Linux 核心操作)
1. 目录结构(与 Windows 差异关键)
Linux 文件系统为 “树状结构”,根目录/下核心目录功能如下:
目录 | 功能描述 | 关键注意事项 |
/bin | 系统基础命令(ls/tar/mv等) | 不可删除,系统启动必需 |
/etc | 系统与应用配置文件(profile/hosts等) | Hadoop 环境变量、网络配置在此修改 |
/home | 普通用户家目录(如/home/hadoop) | 实验中 Hadoop 用户文件存放位置 |
/dev | 设备文件(硬盘/dev/sda、终端/dev/tty等) | 无需手动修改,系统自动管理 |
/lib//lib64 | 系统共享库(32 位 / 64 位) | 关联 Java、Hadoop 依赖,不可随意删除 |
/tmp | 临时文件目录 | 权限开放,所有用户可读写,重启后清空 |
/usr | 用户级应用(/usr/bin//usr/local) | JDK、Hadoop 等第三方软件建议装在此处 |
2. 核心命令(含示例与场景)
(1)目录操作
- 创建目录:
-
- 单级:mkdir 目录名,如mkdir dirtest。
-
- 多级:mkdir -p 路径,如mkdir -p mytest/test1/test2(自动创建父目录)。
-
- 带权限创建:mkdir -m 权限 目录名,如mkdir -m 777 testmod(所有用户可读可写可执行)。
- 查看目录:
-
- 列表显示:ls -l(长格式,含权限、大小、修改时间),ls -a(显示隐藏文件,如.bashrc)。
-
- 递归查看:ls -R 目录,如ls -R mytest(显示所有子目录内容)。
-
- 按时间 / 大小排序:ls -tl(最新修改在前),ls -Sl(最大文件在前)。
- 切换与显示路径:
-
- 切换目录:cd 路径(cd ~返回家目录,cd ..返回上一级,cd -返回上一次路径)。
-
- 显示当前路径:pwd,如/home/hadoop。
- 删除目录:
-
- 空目录:rmdir 目录名,如rmdir rmdir。
-
- 多级空目录:rmdir -p 路径,如rmdir -p mytest/test1/test2。
-
- 非空目录:rm -fr 目录名(强制递归删除,慎用!如rm -fr mytest)。
(2)文件操作
- 创建文件:touch 文件名,如touch test1(创建空文件,修改已有文件时间戳)。
- 查看文件内容:
-
- 全量查看:cat 文件名,cat -n 文件名(显示行号),cat -b 文件名(非空行显行号)。
-
- 分页查看:more 文件名(下翻一页),less 文件名(支持上下翻页、搜索/关键字)。
-
- 查看尾部:tail 文件名(默认最后 10 行),tail -f 文件名(实时跟踪更新,如日志文件)。
- 文件编辑:vi/vim(内置编辑器,核心模式切换):
-
- 命令模式:vi 文件名进入,按i切换到编辑模式。
-
- 编辑模式:输入内容,按ESC返回命令模式。
-
- 保存退出:命令模式输入:wq(保存退出)、:q!(不保存退出)。
- 文件属性操作:
-
- 复制:cp 源路径 目标路径,cp -r 源目录 目标目录(复制目录),cp -p 源文件 目标文件(保留权限)。
-
- 移动 / 重命名:mv 源路径 目标路径,如mv test1 test2(重命名),mv test2 /home/hadoop(移动文件)。
-
- 删除文件:rm 文件名,rm -f 文件名(强制删除,无提示)。
- 查看文件状态:stat 文件名,显示大小、权限、修改时间等,如stat xprop。
四、权限管理(Linux 安全核心)
1. 权限表示规则
- 长格式权限解读(如drwxr-xr-x):
-
- 第 1 位:文件类型(d= 目录,-= 普通文件,l= 链接文件,c= 字符设备)。
-
- 第 2-4 位:所有者权限(r= 读,w= 写,x= 执行)。
-
- 第 5-7 位:所属组权限。
-
- 第 8-10 位:其他用户权限。
- 权限数字表示:r=4,w=2,x=1,如755表示所有者rwx、组rx、其他rx。
2. 权限操作命令
命令 | 功能 | 示例 |
chmod | 修改权限 | chmod 744 test.txt(所有者 rwx,其他 rx);chmod -R 755 dir(递归修改目录权限) |
chown | 修改所有者 | chown hadoop:hadoop test.txt(所有者和组均改为 hadoop) |
chgrp | 修改所属组 | chgrp dba test.txt(所属组改为 dba) |
umask | 默认权限掩码 | umask 022(默认目录权限 755,文件 644,实验环境建议配置) |
3. 用户与组查询
- 查看所有用户:cat /etc/passwd(每行格式:用户名:x:UID:GID:描述:家目录:shell)。
- 查看所有组:cat /etc/group(每行格式:组名:x:GID:成员列表)。
- 查看用户所属组:groups 用户名,如groups hadoop。
五、系统管理工具
1. 磁盘与文件系统
- 查看磁盘空间:
-
- df -h:人性化显示所有文件系统使用情况(-h以 GB/MB 为单位)。
-
- df -h /dev/sda1:查看指定分区(如/boot分区)使用情况。
-
- du -sh 目录:统计目录总大小(-s汇总,-h人性化),如du -sh /home。
- 挂载与卸载:
-
- 查看挂载:mount(显示所有已挂载设备),cat /etc/fstab(系统启动自动挂载配置)。
-
- 临时挂载:mount /dev/sdb1 /mnt(将/dev/sdb1挂载到/mnt)。
-
- 卸载:umount /mnt(需确保目录未被占用)。
2. 进程管理
- 查看进程:
-
- ps -aux:显示所有进程(USER= 所有者,PID= 进程 ID,%CPU/%MEM= 资源占用)。
-
- top:实时监控进程(按P按 CPU 排序,M按内存排序,q退出)。
-
- pstree:树状显示进程父子关系。
- 终止进程:
-
- kill PID:发送终止信号(默认 15,正常终止),如kill 1234。
-
- kill -9 PID:强制终止(无响应进程,如kill -9 1234)。
-
- killall 进程名:终止同名所有进程,如killall httpd。
3. 系统信息与操作
- 系统信息:
-
- uname -a:显示内核版本、主机名、硬件架构,如Linux hadoop1 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:41:04 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux。
-
- cat /etc/redhat-release:查看系统版本(Oracle Linux 基于 RHEL,如Red Hat Enterprise Linux Server release 5.4 (Tikanga))。
-
- hostname:显示主机名,hostnamectl set-hostname hadoop1(永久修改主机名,需重启)。
- 内存与登录信息:
-
- free -h:查看内存使用(total= 总内存,used= 已用,free= 空闲)。
-
- lastlog:显示所有用户最近登录时间。
- 关机与重启:
-
- 关机:shutdown -h now或halt(立即关机)。
-
- 重启:reboot或shutdown -r now。
六、Shell 与环境变量
1. Shell 基础
- 默认 Shell:Linux 默认bash,查看可用 Shell:cat /etc/shells。
- Shell 配置文件:
-
- 全局配置:/etc/profile(所有用户生效,设置系统级环境变量)。
-
- 用户配置:~/.bash_profile(当前用户生效,自定义环境变量)、~/.bashrc(每次启动 Shell 加载)。
- 常用快捷键:
-
- Ctrl + C:终止当前命令。
-
- Ctrl + L:清屏(同clear)。
-
- Tab:自动补全命令 / 文件名(双击显示所有候选)。
-
- Ctrl + U/Ctrl + K:删除光标前 / 后所有字符。
2. 环境变量操作
- 查看变量:echo $变量名,如echo $HOME(显示家目录);env(显示所有环境变量)。
- 设置变量:
-
- 临时生效:export 变量名=值,如export WELCOME="Hello Hadoop"(注销后失效)。
-
- 永久生效:在/etc/profile或~/.bash_profile中添加export 变量名=值,如export JAVA_HOME=/usr/lib/java/jdk1.7.0_79,需执行source /etc/profile使配置生效。
- 删除变量:unset 变量名,如unset WELCOME。
3. 输出重定向与管道
- 重定向:
-
- 命令 > 文件:覆盖写入文件,如ls -l > list.txt。
-
- 命令 >> 文件:追加写入文件,如ll /home >> list.txt。
-
- 命令 < 文件:从文件读取输入,如cat < test.txt。
- 管道:命令1 | 命令2(将命令 1 输出作为命令 2 输入),如ls -a | grep bash(筛选含 “bash” 的文件),cat /etc/passwd | sort(排序用户列表)。
七、关键实验关联点(后续 Hadoop 基础)
- 用户配置:后续搭建 Hadoop 需创建hadoop用户,并赋予sudo权限(编辑/etc/sudoers,添加hadoop ALL=(ALL) ALL)。
- 环境变量:JDK、Hadoop 的环境变量需在/etc/profile中配置(如JAVA_HOME/HADOOP_HOME),需掌握source命令生效配置。
- 权限与目录:Hadoop 安装目录(如/app/hadoop)需修改所有者为hadoop:hadoop(chown -R hadoop:hadoop /app/hadoop),避免权限问题。
- 网络配置:后续集群搭建需修改/etc/hosts配置节点 IP 映射,关闭防火墙(service iptables stop+chkconfig iptables off)、SELINUX(/etc/selinux/config设为SELINUX=disabled)。