以下为个人课程学习笔记,主做日常积累,如有问题,感谢指正。
一、概述
1. 概述
Linux是一种免费使用和自由传播的类UNIX操作系统,多用于服务器,具有层级式的文件系统,最顶层目录为“/”。
2. 版本
(1)广义版本
ubuntu、小红帽、centos、debian、等 基于linux 内核进行开发。
(2)狭义版本
CentOS的版本
二、部署
1. 磁盘划分
- / --> 根目录划分几个磁盘
- /boot --> Linux启动时系统自身资源(1g)
- swap --> 内存不足时,可以使用磁盘空间充当内存(2g 4g)
2. 远程连接:
- 远程主机地址(ip):192.168.10.134(ifconfig --> 网卡 对应的ip )
- 远程主机端口号(port) --> 22(防火墙开放端口),1-65535(端口号范围)
- 远程主机用户名(username) --> root
- 远程主机用户密码(passwd) --> 123456
- 连接工具:Xshell
三、基本操作
1. 命令行提示符
- root:登录机器的用户名(root 最高权限用户)
- docker:登录机器的机器名 hostname
- "~" :登录机器的用户 家目录 【就是一个目录】
- 家目录:
- root =》 /root
- xxxx => /home/xxxx
- 家目录:
- "#" :代表当前用户为root(最高权限)身份。当普通用户登录时,是"$"
2. 基本命令
命令 | 作用 | 效果图 |
pwd | 查看当前光标所在目录 | |
ls | 查看当前光标所在目录下所有文件及目录; | |
ls -l(等价于 ll) | 显示文件夹和文件名字 详细信息
| |
当遇到新命令可以通过:命令 --help 或 -help 或 -h 查看命令手册来了解(几乎所有脚本命令都支持) 举例:【说明:在用法中[]的参数为可选参数,<>内参数为必选参数】 | ||
mkdir | 创建文件夹
mkdir -p dir4/dir5/dir6
mkdir dir1 dir2 dir3 | |
cd | 作用:切换目录 ------------------------------------ 绝对路径:
相对路径:
------------------------------------ 返回家目录三种方式:
------------------------------------ cd - 回到上一次操作命令的目录 |
3. 文件操作命令
(1)创建
命令 | 作用 | 效果图 |
touch <fileName> | 创建一个文件 | |
vim / vi <fileName> | 如果文件不存在则创建文件并进入文件; 注意退出文件需要保存后才会生成文件。 | |
echo content > fileName.log > 创建 或 覆盖 指定文件 >> 追加文件 | 创建文件并将content位置的内容打印到fileName.log中 | |
创建空文件:
|
(2)编辑
Linux 采用 vim / vi 编辑文件。
1)vim的三种模式
- 命令行模式:未进入编辑模式、尾行模式都是命令行模式;
- 编辑模式:在命令行模式按“i”进入该模式;
- 尾行模式:命令行模式按“:”进入尾行模式。
2)编写文件步骤
1.打开文件 【命令行模式】
2.编写内容 【命令行模式 =>编辑模式 】
键盘输入 i =>insert
3.退出保存
(1)编辑模式 =>命令行模式
键盘输入 Esc
(2)命令行模式 =>尾行模式 退出保存
键盘输入“:”
退出保存指令: “w” 保存 “q” 退出 “!”强制
3)快捷命令
1.命令行模式
(1)光标移动
- gg 首行
- shift +$ 行尾
- shift +^ 行头
- num +G 指定行
- G 最后一行
(2)复制
- yy 复制当前光标所在行
- 粘贴 p
- y num y 复制一段
(3)撤回 u
(4)删除
- dd 删除当前光标所在行
- dG 删除当前光标以下所有行
- d num d 删除一段
2.尾行模式
(1)退出保存
- wq!
- 快捷键 shift +zz
- x => wq
(2)查找关键词
- :/keywords n查找下一个 N 往上查找
(3)显示行号:
- :set nu
- :set nonu
(3)查看
cat | 文件所有内容全部显示,适合内容较少的。 | |
当查看log时,如果log很大,快速定位error的方式: 一个日志文件 hadoop_namenode.log 100m : cat anaconda.log | grep -A 10 error (-A 一起打印定位行后10行) cat anaconda.log | grep -B 10 error (-B 一起打印定位行前10行) cat anaconda.log | grep -C 10 error (-C 一起打印定位行前后10行) 1. | 管道符 前一个命令的结果作为下一个命令的输入 2. grep 过滤出 关键词 所在的行 | ||
more | 按页文件的内容 ,按空格下翻 退出按q ctrl +c ctrl +z | |
less | 按页文件的内容,空格下翻,上下键也可实现翻页 | |
tail 实时监控文件里面最新内容 -f -F => -f + retry 【注意:当文件被再次重新创建时 F 可以重新监控】 演示 -f: 演示 -F: 对于 echo "content" > file ,只能监视到文件被截断但无法监视到覆盖内容,后续的追加可以被监视到。 |
(4)剪切与复制
mv | 剪切文件或更改文件名,指令前后始终只有一个文件 | 剪切文件:# mv 1.log ../1.log 或省略文件名 重命名文件:# mv 2.log 3.log |
cp | 复制文件或更改文件名,指令前后将有两个文件。相比之下mv更快 | # cp ~/1.log ./ 或省略文件名 |
(5)上传
- xshell 工具
- lrzsz包 rz上传 sz下载
(6)删除【注意:高危命令】
删除文件 | rm 1.log 使用 - f 可以不询问 | |
删除文件夹 | rm -r a -r是递归删除就是删除文件夹内的子文件或子文件夹; rm -rf a可以不询问 |
(7)别名
- 别名可以理解为用简单的变量名代替设定指令
- 别名的使用
- 当前会话使用:[root@docker ~]# alias aa="cd /tmp";
- 长期使用:写到环境变量文件中【注意:更改后需要source一下更改的文件】;
- 查看环境变量 # echo $PATH
- 全局环境变量:所有用户都可使用,/etc/profile
- 用户环境变量:仅当前用户可以使用,~/.bashrc或~/.bash_profile
(8)文件权限
一个文件前面的10个符号分别为:
1个 | 3个 | 3个 | 3个 |
文件类型 | 所属用户权限 | 所属用户组权限 | 其他用户组权限 |
- d l | 分别代表文件 文件夹 软连接 |
r w x | 读权限 写权限 执行权限与此同时,r代表权限数4 w代表2 x代表1 |
修改权限:chmod 646 ./1.log
结果为:rw-r--rw-
修改所有者:chown zs:zs 1.log
(9)查找文件
# find / -name "*1.log*"
4. 用户与用户组
(1)方法
用户 | /usr/sbin/useradd 添加 /usr/sbin/userdel 删除 /usr/sbin/usermod 修改 | |
用户组 | /usr/sbin/groupadd 添加 /usr/sbin/groupdel 删除 |
(2)添加用户
useradd zs
passwd zs //设置密码,否则无密码
- 创建一个用户的过程
用户名 | zs |
创建一个用户组 【用户组包括主组和附属组】 | zs |
创建一个家目录 | /home/zs |
- 查看用户信息:
- 查看用户组信息:vim /etc/group(图片不再展示)
(3) 删除用户
【注意:删除用户时-r为可选参数,作用是删除用户所有相关文件,否则再次创建同名文件会提示错误】
(4)切换用户
su - xinwei | 切换用户,使用新用户的环境变量 |
su xinwei | 切换用户,使用上一用户的环境变量 |
(5)用户组
添加群组 | groupadd bigdata |
添加用户到某个群组 | usermod -a -G bigdata zs |
更改用户主组 | usermod -g bigdata zs |
(6)更改用户权限
1.配置 /etc/sudoers
zs ALL=(ALL) NOPASSWD: ALL
2. 使用
sudo xxxx
5. 其他命令
(1)进程及端口号
yum install httpd //下载httpd包
1.查看进程号:
1.java 代码 =》 jdk =》 jps
2. ps -ef | grep 程序的名字(pid) => pid
2.查看端口号 port
netstat -nlp | grep pid