B03 - 001、Linux基本命令大全

版权声明:本文为博主原创文章,未经允许不得转载。 https://blog.csdn.net/weixin_42464054/article/details/90712736

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编辑器表格。



ギ 舒适区ゾ || ♂ 累觉无爱 ♀





一、Linux核心概念。

  1.1 ~ Linux各模块。

alt

  1.2 ~ Linux文件系统。

    1.2.1 .  图解。

alt

    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 .  命令目录。

alt



在座的各位都是…

- - - - - - - - - - - - - - - - - - - - - - - - - - - -


二、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.创建多级目录并显示详细信息

alt

    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	# 链接源、链接对象

alt

在座的各位都是…

- - - - - - - - - - - - - - - - - - - - - - - - - - - -




三、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

alt

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地址

alt
alt

alt
alt

    4.2.5 .  chmod

alt

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

alt

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

alt

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

alt
alt

more 123.txt
    5.2.6 .  less

alt

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

alt

注:‘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显示行号及匹配内容

alt

grep -v asd 123.txt

alt

grep -vn asd 123.txt

alt

grep -in "hello Python" 123.txt

alt
alt
alt

grep -n ^a 123.txt
grep -n e$ 123.txt

alt

    5.2.10 .  find

alt

find -name "*1*"			# 在当前目录下查找文件名包含1的文件
find / -name "*.txt"		# 全局查找扩展名为.txt的文件
find /export -name "1*"		# 在export目录下查找以1开头的文件

find /lib -name	te*			# 在lib目录下查找所有以te开头的目录
    5.2.11 .  man

alt

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目录下的文件或目录大小

alt

    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

alt
alt

ifconfig	# CentOS6
ip addr		# CentOS7
    5.2.21 .  ping

alt

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

alt

sudo useradd test001	# 增加用户
sudo rm -rf /*			# 从删库到跑路
    6.2.4 .  tar

alt

alt
alt

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服务

alt

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 .  管道 |

alt

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基础命令大全完成。


- - - - - - - - - - - - - - - - - - - - - - - - - - - -


※ 世间诱惑何其多,坚定始终不动摇。

君生我未生,我生君已老。
君恨我生迟,我恨君生早。
君生我未生,我生君已老。
恨不生同时,日日与君好。
我生君未生,君生我已老。
我离君天涯,君隔我海角。
我生君未生,君生我已老。
化蝶去寻花,夜夜栖芳草。
alt



在座的各位都是…

- - - - - - - - - - - - - - - - - - - - - - - - - - - -



后续Ⅱ:B03系列 - Linux。



- - - - - - - - - - - - - - - - - - - - - - - - - - - -


注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

我知道我的不足,我也知道你的挑剔,但我就是我,不一样的烟火,谢谢你的指指点点,造就了我的点点滴滴:)!



在座的各位都是…


猜你喜欢

转载自blog.csdn.net/weixin_42464054/article/details/90712736
今日推荐