0、本章学习目录大纲 - Linux基本命令
初学耗时:??h
注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。
一、Linux核心概念
1.1 Linux各模块。
1.2 Linux文件系统。
二、Linux - 增
2.1 insert - 表格。
2.2 让命令突破天际!
三、Linux - 删
3.1 delete - 表格。
3.2 让命令突破天际!
四、Linux - 改
4.1 update - 表格。
4.2 让命令突破天际!
五、Linux - 查
5.1 select - 表格。
5.2 让命令突破天际!
六、Linux - 其它
6.1 other - 表格。
6.2 让命令突破天际!
七、Linux - vi、vim编辑器
7.1 vi、vim编辑器表格。
- 1、B03 - 001、Linux参考的视频教程:
B03-001、Linux参考的视频教程
提取码:gm95
一、Linux核心概念。
1.1 ~ Linux各模块。
1.2 ~ Linux文件系统。
1.2.1 . 图解。
1.2.2 . 详细内容。
命令 | 详解内容 |
---|---|
/ | Linux文件系统的顶层目录。 |
bin | 可执行程序。 |
boot | 启动文件。 |
dev | dev - device、系统设备(硬件在Linux中通过"文件"来标识)。 |
etc | 配置文件。 |
home | 用户目录的顶层目录。 |
lib、lib64 | 系统库目录。 |
mnt | 用于挂载外部存储设备的文件(移动硬盘)。 |
root | root用户的主目录。 |
sbin | 系统级命令(root权限)。 |
tmp | 系统临时目录。 |
usr | unix shared resources、共享资源目录。 |
1.2.3 . 命令目录。
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
二、Linux - 增。
2.1 ~ insert - 表格。
命令 | 详解内容 |
---|---|
mkdir | 创建目录。 |
touch | 新建文件。 |
cp | 复制。 |
scp | 远程复制。 |
>> | 重定向 - 追加内容。 |
echo | 将输出内容打印控制台。(与重定向组合) |
ln | 建立快捷方式。 |
2.2 ~ 让命令突破天际。
2.2.1 . mkdir
mkdir flink # 1.相对路径
mkdir /export # 2.绝对路径
mkdir -p aaa/bbb/ccc # 3.创建多级目录
mkdir -pv aaa/bbb/ccc # 4.创建多级目录并显示详细信息
2.2.2 . touch
touch 123.txt # 1.创建文件
touch 123.txt 456.txt 789.txt # 2.同时创建多个文件
小贴士:Linux不存在后缀名含义,都是二进制文件,只是为了方便识别。
2.2.3 . cp
cp 123.txt 321.txt # 把123.txt文件复制到当前目录下并重命名为321.txt
cp a.log bbb/c.log # 复制a.log到bbb目录下并重命名为c.log
cd ~/a.log . # 把家目录下的a.log复制到当前目录
cp -r aaa bbb # 把aaa目录及目录下的所有文件复制到当前目录下并重命为bbb
cp -i ~/1.txt 1.txt # 把家目录下的1.txt复制到当前目录下,如果当前目录已有1.txt,则会有覆盖提示,选y覆盖,选n取消覆盖
2.2.4 . scp
①、当前文件复制到远程目录
scp -P 端口 文件名 【用户名@IP地址:目录/文件名】
…
②、远程文件复制到当前目录
scp -P 端口 【用户名@IP地址:目录/文件名】 文件名
…
③、当前目录复制到远程目录
scp -r 目录 【用户名@IP地址:目录】
…
④、远程目录复制到当前目录
scp -r 【用户名@IP地址:目录】 目录
scp 1.txt zrk691102:$PWD # 当前目录路径
scp 1.txt zrk691102:/export/servers # 绝对路径
scp -r hadoop/ zrk691102:$PWD # zrk691102为192.168.1.102的域名
scp -r spark/ [email protected]:$PWD
scp -r spark/ [email protected]:$PWD
scp -P 22 -r flink/ [email protected]:$PWD # 端口号可更改
scp -P 22 [email protected]:$PWD 1.py
scp -P 22 -r [email protected]:$PWD python/ # 远程复制到本地
2.2.5 . >>、echo
echo $JAVA_HOME # 查看Java的配置路径
echo abc >> ~/1.txt # 自定义内容追加到家目录下的1.txt
cat xxx.log >> 1.txt # 把xxx.log里的所有内容追加到当前目录的1.txt
ls -a >> 1.txt # 把当前目录下查询到的所有隐藏文件追加到1.txt
...
小贴士:实际上,只要是任何可查询的命令结果都可以追加到指定文件下。
username="zhangsan"
echo username >> 1.txt
echo $username >> 1.txt
2.2.6 . ln
ln -s /export/servers/hehe.sh ~/123.sh # 链接源、链接对象
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
三、Linux - 删
3.1 ~ delete - 表格。
命令 | 详解内容 |
---|---|
rm | 删除。 |
kill | 终止进程。 |
3.2 ~ 让命令突破天际。
3.2.1 . rm
sudo rm -rf /* # 只要在贵公司的数据库服务器上敲下这段代码,这一百万就是你的了!
rm -rf * # 强制删除当前目录下的所有文件及子目录
rm 1.txt # 删除文件
rm -r hadoop/ # 删除目录
3.2.2 . kill
jps # 显示Java程序的进程号
ps -ef | grep 运行程序 # 查看非Java代码编写的进程号
kill -9 进程号
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
四、Linux - 改。
4.1 ~ update - 表格。
命令 | 详解内容 |
---|---|
mv | 移动、覆盖、重命名。 |
> | 覆盖 - 重定向。 |
chgrp | 组权限。 |
chown | 用户权限。 |
chmod | 文件权限。 |
4.2 ~ 让命令突破天际。
4.2.1 . mv
① 重命名:
mv 源文件 目标文件(不存在)
mv 源目录 目标目录
…
② 覆盖:mv 源文件 目标文件(已存在)
…
③ 移动:mv 源文件 目录。
mv a.txt bbb/c.txt # 把a.txt移动到bbb目录下并重命名为c.txt
mv -i a.txt b.txt(已存在) # 覆盖文件前提示
4.2.2 . >
echo abc > ~/1.txt # 自定义内容覆盖到家目录下的1.txt
cat xxx.log > 1.txt # 把xxx.log里的所有内容覆盖到当前目录的1.txt
ls -a > 1.txt # 把当前目录下查询到的所有隐藏文件覆盖到1.txt
...
4.2.3 . chgrp
sudo chgrp 组名 文件/目录名 - 修改文件/目录的所属组
sudo chgrp -R 组名 文件/目录名 - 递归修改目录下所有文件的所属组
sudo groupadd flink # 添加组
sudo groupdel storm # 删除组
cat /etc/group # 确认组信息
sudo chgrp flink taskmanager # 修改taskmanager这个文件所属组为flink
sudo chgrp -R flink flink/ # 修改flink目录下所有文件的所属组为flink
4.2.4 . chown
sudo chown 用户名 文件名/目录名 - 修改文件目录的拥有者
sudo usermod -g 主组名 用户名
sudo usermod -G 附加组名 用户名 - 常用
sudo usermod -s shell目录 用户名 - 修改用户登录的shell,如dash、bash
sudo chown zhangsan hadoop/
sudo useradd zhangsan
sudo useradd -m -g zhangsan
sudo passwd 123456
sudo userdel -r lisi # 递归删除李四的家目录
cat -n /etc/password | grep zhangsan # -n表示由1开始输出所有行数编号
id zhangsan # 查看hadoop用户的UID和GID信息
who # 查看当前所有登录的用户列表
whoami # 查看当前登录用户的账户名
sudo usermod
which useradd # 查看useradd的系统命令路径
su - zhangsan # 切换到zhangsan用户, - 表示连同环境变量一起切换
su - root -c "useradd wangwu" # -c表示仅执行一次命令,而不切换用户
su - # 切换到家目录
exit # 返回上一级用户,多次执行可退出终端。
# 添加用户后快速重启生效指南:
exit
ssh 用户名@IP地址
4.2.5 . chmod
chmod +/-rwx 文件名/目录名
chmod ??? 文件名/目录名 - 问号为数字
chmod -R ??? 文件名/目录名 - 递归修改文件权限
chmod +x 123.sh # 增加执行权限
chmod 777 123.sh # 增加所有rwx权限
chmod 755 123.sh # 增加rwx、rx、rx权限
chmod -R 755 hadoop/ # 递归修改该目录下的所有权限为rwx、rx、rx
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
五、Linux - 查
5.1 ~ select - 表格。
命令 | 详解内容 |
---|---|
ls | 查看目录内容。 |
pwd | 查看当前路径。 |
tree | 以树形查看目录内容。 |
cat | 查看内容少的文件。 |
more | 分页查看文件内容。 |
less | 分页查看文件内容 - 功能强。 |
tail | 查看文件末尾几行。 |
head | 查看文件前面几行。 |
grep | 搜索文件指定内容。 |
find | 查找文件。 |
man | 查询命令(全)。 |
help | 查询命令。 |
date | 查看当前时间。 |
cal | 查看本月日历。 |
df | 显示磁盘剩余空间。 |
du | 显示目录下的文件大小。 |
ps | 查看进程状态。 |
top | 动态显示进程。 |
free | 查看剩余内存空间。 |
ifconfig | 查看网卡信息。 |
ping | 通过ip来检测网络。 |
5.2 ~ 让命令突破天际。
5.2.1 . ls
ls -l # 等于ll,显示详细信息(用户权限、文件大小、创建时间)
ll -h # 直观的文件大小显示,一般与-l搭配使用,单独无效
ll -a # 查看隐藏文件
ls .. # 查询上一级目录
ll / # 查询根目录的详细信息
ll aaa/bbb # 查询aaa目录下的bbb目录下的文件信息
ls 1* # 以1开头的文件
ls *1.txt # 以1.txt结尾的文件
ls *3* # 包含3的文件
ls 1?1.txt # ?表示不限制任何数字和字母,但必须是1位数
ls ?2?.txt # 与*的区别:?只能是一位数,*可以无数位数也可以没有
ls 1*1.txt # *也可以代表空的字符
ls [135]23.txt # [135]表示其中任意一位数都可以
ls [1-4]23.txt # [1-4]表示1-4的数字都可以
5.2.2 . pwd
pwd # 查看当前路径
5.2.3 . tree
yum -y install tree # 使用前需要安装tree
tree ~ # 以树形结构来查看家目录
tree -d / # 以树形结构来查看根目录,只显示目录,不显示文件
5.2.4 . cat
cat /etc/sysconfig/iptables # 查看防火墙信息
ping www.baidu.com > ip.log
cat ip.log # 查看ip.log的所有信息
cat -b 123.txt # 对非空行编号
cat -n 123.txt # 对所有行编号
5.2.5 . more
more 123.txt
5.2.6 . less
less 123.txt
5.2.7 . tail
# 实时查看方式`1`:
touch 123.log
ping www.baidu.com >> 123.log
tail -f 123.log # 实时查看末尾10行日志信息
tail -100f 123.log # 实时查看末尾100行日志信息
tail -n5 123.log # 查看末尾5行的日志信息
# 实时查看方式`2`:
touch 123.log
while true
do
echo `date` >> 123.log
sleep 1
done
tail -100f 123.log
注:‘date’ 外面不是单引号,而是键盘数字1左边的音界号或间隔号。
5.2.8 . head
head 123.log # 查看开头,默认10行
head -n5 123.log # 查看开头5行
5.2.9 . grep
# 编写grep的测试内容
vim 123.txt
----------------------
asdfghjkl hello python
qwe
qwe
asdfghjkl Hello Python
qwe
qwe
asdfghjkl hello Python
qwe
qwe
asdfghjkl Hello python
qwe
qwe
grep asd 123.txt # 只显示与asd匹配的内容
grep -n asd 123.txt # -n显示行号及匹配内容
grep -v asd 123.txt
grep -vn asd 123.txt
grep -in "hello Python" 123.txt
grep -n ^a 123.txt
grep -n e$ 123.txt
5.2.10 . find
find -name "*1*" # 在当前目录下查找文件名包含1的文件
find / -name "*.txt" # 全局查找扩展名为.txt的文件
find /export -name "1*" # 在export目录下查找以1开头的文件
find /lib -name te* # 在lib目录下查找所有以te开头的目录
5.2.11 . man
enter - 滚动一行,不如直接上下键
…
空格 - 翻页
b - 回滚一页
…
q - 退出
man ls
man 1 man # 第一页
man 7 man # 语法手册第七页?
5.2.12 . help
help cd
ls --help
5.2.13 . date
date # 查看当前时间
5.2.14 . cal
cal # 查看当前日历
cal 4 1991 # 1991年4月
cal -y # 查看当前一年的日历
cal -y 2018 # 查看2018年一年的日历
5.2.15 . df
df # 以字节大小显示磁盘剩余空间
df -h # 以MB或GB的方式显示磁盘剩余空间
5.2.16 . du
du -sh /export/servers/jdk1.8.0_192/ # 查看jdk目录大小
du -sh /export/servers/jdk1.8.0_192/* # 查案jdk目录下的文件或目录大小
5.2.17 . ps
ps -ef | grep vim # System V风格,查看vim的进程信息
ps aux | grep vim # BSD风格,查看vim的进程信息
5.2.18 . top
top # 动态显示进程信息,按ctrl+c取消
5.2.19 . free
free -m # 以MB的方式来查看内存空间
free -h # 以GB的方式来查看内存空间
5.2.20 . ifconfig
ifconfig # CentOS6
ip addr # CentOS7
5.2.21 . ping
ping www.baidu.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
六、Linux - 其它
6.1 ~ other - 表格。
命令 | 详解内容 |
---|---|
cd | 切换目录或盘符。 |
ssh | 连接远程用户。 |
sudo | 给普通用户执行系统命令的权限。 |
tar | 打包。 |
yum | 下载命令安装包。 |
mount | 挂载设备。 |
service | 系统服务管理。 |
chkconfig | chk=check,开机自启服务。 |
shutdown | 关机或重启。 |
│ | 管道,二或多次处理命令(过滤)。 |
tab | 不是命令,是键盘快捷键,用于补全命令。 |
6.2 ~ 让命令突破天际。
6.2.1 . cd
cd .. # 返回上一级目录
cd - # 返回上一次访问目录
cd ../../ # 切换到上上级目录
cd / # 进入根目录
cd ~ # 进入家目录,即用户目录
6.2.2 . ssh
ssh 域名或ip地址 # 默认端口22,默认用户名为root
ssh -p 端口号 远程用户名@ip地址 # 切换用户,也可用于测试是否免密登录其它用户
关于ssh涉及不少的知识点,这里就不一一罗列,后续会另开博文附上链接。
6.2.3 . sudo
sudo useradd test001 # 增加用户
sudo rm -rf /* # 从删库到跑路
6.2.4 . tar
tar -zcvf one.tar file1 # 将单个文件压缩打包
tar -zcvf two.tar file1 file2 file3 # 将多个文件压缩打包
tar -zcvf three.tar dir1 # 将单个目录压缩打包
tar -zcvf four.tar dir1 dir2 dir3 # 将多个目录压缩打包
tar -zxvf one.tar # 解包至当前目录
tar -zxvf ???.tar.gz # 解压到当前路径
tar -zxvf ???.tar.gz -C /export/servers # 解压到指定路径
tar -zxf ???.tar.gz -C /export/servers # 去掉v,忽略显示解压过程
6.2.5 . yum
yum install lrzsz
yum -y install lrzsz # 跳过问询,一步到位
6.2.6 . mount
为什么要挂载?
…
直接从.iso镜像离线下载更快速。
# 1.创建一个挂载目录,cdrom可以随机取名
mkdir /mnt/cdrom/
# 2.将设备/dev/cdrom挂载入/mnt/cdrom中
mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom/ # 挂载iso镜像
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/ # 挂载光驱
# 3.卸载挂载
umount /mnt/cdrom
# 4.查看挂载情况
mount -a
# 5.挂载后即可用yum命令进行离线下载
yum install -y lrzsz
yum install -y vim
注:挂载的资源是一次性的,在重启后即失效,需要重新挂载。
配置文件可以设置永久性,这里暂未尝试,待尝试成功后,会另开博文附上链接。
6.2.7 . service
service --status-all # 查看所有程序运行状态
service 服务进程 start # 启动进程
service 服务进程 status # 查询状态
service 服务进程 stop # 停止进程
service 服务进程 restart # 重启进程
常见服务进程:
…
sshd、可以通过网络在主机中开机shell的服务,如ssh 用户名@ip地址
iptables、防火墙
network、网卡,联网前提
ntpd、时间同步
6.2.8 . chkconfig
chkconfig --list # 查看系统所有开机自启服务状态
chkconfig --list 进程服务 # 查看指定的进程服务状态,效果等同chkconfig --list | grep 进程服务
chkconfig --add 进程服务 # 把进程服务加入开机自启服务选项
chkconfig --del 进程服务 # 把进程服务从开机自启服务选项中删除
chkconfig 进程服务 on # 设置开机自启
chkconfig 进程服务 off # 关闭开机自启
chkconfig --level 35 ntpd # 默认在3、5模式下自启ntpd服务
chkconfig的延伸阅读
…
–add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
…
–del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
…
–level<等级代号> ,指定读系统服务要在哪一个执行等级中开启或关毕。
等级0表示:表示关机【一开机就关机,略】
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式【常用】
等级4表示:不可用
等级5表示:带图形界面的多用户模式【常用】
等级6表示:重新启动【无限启动,想想就瘆得慌,略】
vim /etc/inittab # 设置当前机器的自启模式、慎用!
以上只是部分的延伸阅读,还有init的启动级别的具体使用,感兴趣的话,后续有时间会另开博文再附上链接。
6.2.9 . shutdown
shutdown # 1分钟后会关机
shutdown -c # 取消之前的关机计划
shutdown -r now # 立即重启
shutdown -r 5 # 5分钟后重启,效果等同shutdown -r +5
shutdown -r 19:00 # 指定时间重启,如果当天时间已过,会以后一天计算
shutdown -h now # 立即关机
6.2.10 . 管道 |
ls -lha / | more # 把查询的内容分屏显示
ls -lha ~ | grep "123.*" # 查找家目录下以123.开头的文件
6.2.11 . tab
按一次tab - 补全命令信息
按两次tab - 罗列补全信息
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
七、Linux - vi、vim编辑器
7.1 ~ vi、vim编辑器表格 - 非编辑模式。
命令 | 详解内容 |
---|---|
gg | 跳至内容首行。 |
G | 跳至内容末行。 |
shift+zz | 退出vi、vim编辑器。 |
---- | ---- |
dd | 删除一行。 |
? + dd | 删除 ? 行。 |
yy | 复制一行。 |
? + yy | 复制 ? 行。 |
p | 粘贴复制或删除的内容。 |
u | 撤销。 |
ctrl + r | 重做,即撤销后的撤销。 |
---- | ---- |
i | 光标当前处。 |
a | 光标后一格。 |
A | 该行末尾。 |
o | 光标下一行。 |
---- | ---- |
:wq! | 保存并退出非编辑模式。 |
:q! | 不保存,直接退出非编辑模式。 |
: cd+空格+路径 | 补充路径并手动复制。 |
: set nu | 显示行号。 |
: set nonu | 隐藏行号。 |
/ + 关键字,n | 轮询查找关键字。 |
: s/关键字/替换字 | 替换当前行第一个。 |
: s/关键字/替换字/g | 替换当前行所有。 |
: %s/关键字/替换字/g | 替换所有。 |
: n,$s/关键字/替换字/g | 指定行开始替换所有。 |
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
^ 至此,Linux基础命令大全完成。
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
※ 世间诱惑何其多,坚定始终不动摇。
君生我未生,我生君已老。
君恨我生迟,我恨君生早。
君生我未生,我生君已老。
恨不生同时,日日与君好。
我生君未生,君生我已老。
我离君天涯,君隔我海角。
我生君未生,君生我已老。
化蝶去寻花,夜夜栖芳草。
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
后续Ⅱ:B03系列 - Linux。
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。
我知道我的不足,我也知道你的挑剔,但我就是我,不一样的烟火,谢谢你的指指点点,造就了我的点点滴滴:)!