Notes about Linux construction......

本文最后更新于:1 年前

基础指令

1.#ls

1
2
3
4
5
ls #列出当前工作目录下的所有文件/文件夹的名称
ls 路径 #列出指定路径下的所有文件/文件夹的名称
ls -l 路径 #以详细列表形式展示指定路径下文件/文件夹
ls -la 路径 #"-l"显示所有文件/文件夹,包含隐藏文件(.xxx)
ls -lh 路径 #列出指定路径下文件/文件夹,以可读性较高的文件大小单位显示
  • 相对路径:当前工作路径 #”./“:当前目录下 “../“:上一级目录下
  • 绝对路径:直接从根路径”/“开始寻找相应路径
  • ls列出结果颜色说明:蓝色表示文件夹/黑色表示文件/绿色表示拥有所有权限

-l

BafxZ4.png

-la

BafjLF.png

  • 上述列表第一列指文档类型,”-“表示文件;”d“表示文件夹
  • 隐藏文件格式为.xxx

-l(a)h

  • BafXsU.png

    初始大小4.0 k


2.#pwd

1
pwd #打印当前目录
  • (print working directory)打印当前工作目录

    图5


3.#cd

1
2
cd或者cd ~ #切换至当前用户家目录
cd 路径 #切换至路径目录
  • (change directory)改变目录

cd/cd ~

Bah9iR.png

cd 路径

BahCJ1.png


4.#mkdir

1
2
3
mkdir 路径 #路径可以为新文件夹名称,也可包含新文件夹的完整路径
mkdir -p 路径 #一次性创建多层新文件夹
mkdir 路径1 路径2 路径3 #一次性创建多个新文件夹
  • (make directory)创建目录

    • 建成功无提示,可用ls查看

mkdir 路径

BahPRx.pngmkdir -p 路径

Bahiz6.png

mkdir 路径1 路径2 路径3

BahkQK.png


5.#touch

1
2
touch 文件路径 #创建文件
touch 路径1 路径2 路径3 #一次性创建多个文件(同mkdir)
  • 创建文件

touch 路径1 路径2 路径3

BahAsO.png


6.#cp

1
2
cp 被复制文档路径 目标路径 #复制过程可对新文档重命名
cp -r 被复制文档路径 目标路径 #递归复制(赋值文件夹时使用,复制整个文件夹),否则文件夹将被略过
  • (copy复制文件/文件夹)

cp 被复制文档路径 目标路径

BahELD.png

cp -r 被复制文档路径 目标路径

BahZee.png


7.#mv

1
2
mv 待移动文档路径 目标路径 #移动文档到新位置  移动文件夹同,无需-r
mv 原文件路径 重命名后路径(原地移动) #重命名
  • (move移动/剪切)

mv 待移动文档路径 目标路径

BahedH.png


8.#rm

1
2
3
rm 需移除文档路径 #移除/删除文档 提示是否删除
rm -rf 需移除文档路径 #(force强制)无提示 -r同指递归
rm -rf 路径1 路径2 #同时删除多个文档 同类名*(通配符,可表示任意字符,一次性删除相同开头的名称)
  • (remove,移除、删除)

rm 需移除文件路径

Bahmod.png

rm -rf 需移除文档路径

BahuFA.png


9.#vim

1
vim 文件路径 #打开一个文件(可以是不存在的文件)
  • 文本编辑器

  • 退出文件:按shift+英文冒号:+q+Enter

BahMWt.pngBahlSP.png


10.#>/>>

1
指令 >/>> 保存到文件路径 #输出重定向 
  • >:覆盖输出,覆盖原文内容
  • >>:追加输出,在原始内容末尾继续添加
  • 保存命令执行结果到文件,文件可以不存在,不存在则新建

>/>>

Bah1Qf.pngBah8OS.png

11.#cat

1
2
cat 文件路径
cat 待合并的文件1 待合并的文件2... >合并后文件路径
  • 直接打开一个文件(无需退出)
  • 对文件进行合并【配合输出重定向使用】,源文件不会删除

····································································································································································

  • 选项均可连用,例:-la、 -rf 、-lah

进阶指令

1.#df

1
df -h #以较高可读性查看
  • 查看磁盘空间

df -h

DMHqij.png

2.#free

1
free -m #以MB为单位进行查看
  • 查看内存使用情况

free -n

  • DMH7dg.png剩余真是可用为available

  • swap用于临时内存,当系统真是内存不够用时可以临时使用磁盘空间来充当内存


3.#head

1
head -n 文件路径 #查看一个文件的前n行,默认10行 [n表示数字]

DMHHoQ.png

4.#tail

1
2
tail -n 文件路径 #查看一个文件的末n行,默认10行 [n表示数字]
tail -f 文件路径 #查看一个文件的动态变化,配合输出重定向,按q键退出

DMHTeS.png

5.#less

1
less 文件路径 #,查看文件,以较少内容输出,配合辅助功能键(数字+回车,空格翻页,上下键或回车换行)查看更多,q退出

6.#wc

1
wc -lwcm 文件路径 #统计文件信息(-l行数,-w单词数,-c字节数,-m字符数)

DMHIL8.png


7.#date

  • 获取当前时间
1
2
3
date #Tue Nov 10 00:02:57 CST 2020 显示时间CST(当地时间) 
date +%F #2020-11-10(等价于#date "%Y-%m-%d")
date "+%F %T" #2020-11-10 00:02:57(等价于#date "+%Y-%m-%d %H:%M:%S")

DMHLJs.png

  • 获取之前或之后时间
1
2
date -d "-1year" "+%Y-%m-%d %H:%M:%S"一年前时间
date -d "+1year" "+%Y-%m-%d %H:%M:%S"一年后时间

DMHOWn.png

  • 单位的可选值:day、month、year无需考虑复数

    • %m、%d、%H、%M、%S均带前导0

8.#cal

1
2
3
4
cal #直接输出当前月份日历(等价于#cal -1)
cal -3 #上月+本月+下月
cal -y2020 #输出某年日历
*cal -s/-m #周日为第一天/周一为第一天
  • 操作日历

    DMHXzq.pngDMHxyV.png


9.#clear/ctrl + L

1
2
clear
ctrl+L(快捷键)
  • 清除终端中已经存在的命令和结果
  • 并非清除信息,而是隐藏至上方,可滚动查看(不同于Windows中cls清屏)

10.管道

  • 管道符:|

  • 用于”过滤”,”特殊”,”扩展处理”,不能单独使用,配合其他命令,起辅助作用

1
2
命令* | grep 过滤内容 #过滤:所配合的命令必须有输出来作为管道的输入
ls |wc -l #统计文档总个数(扩展处理)

DMHvQ0.png


高级指令

1.#hostname

1
2
hostname #输出主机名
hostname -f #输出当前主机名中的FQDN(全限定域名)
  • 操作服务器的主机名

DMHzLT.png

2.#id

1
2
id
id 用户名 #指定用户
  • 查看用户基本信息(用户id、用户组id、附加组id),不指定默认当前用户

3.#whoami

  • “我是谁?”显示当前登录的用户名,一般用于shell脚本

4.#ps -ef

1
ps -ef/-e/-f
  • 查看服务器进程信息
  • -e列出全部进程
  • -f列出全部的列(显示全字段)

DMbpeU.md.png

DMbiFJ.md.png

  • 常配合过滤使用,搜索结果为两个才是有在运行的目标进程

ps -ef|grep 进行名称


5.#top

  • 查看进程占用资源(动态显示),按q退出

rhHR1K.md.png

rhHfXD.md.png

三种内存释义

rhH4ne.md.png

  • top运行中按下M(MEM)结果按内存降序排列

    P结果按CPU使用率降序排列

    1展开或收起各个CPU的详细信息

6.#du -sh

  • 查看目录的真实大小
1
du- sh /路径

-s : summaries,只显示汇总的大小
-h : 表示以较高可读性的形式显示

rhH2p6.png

7.#find

  • 用于查找文件(参数55个之多)
1
find 路径范围 选项 选项的值

选项:

​ -name:按照文档名称进行搜索(支持模糊搜索)

​ -type:按照文档类型进行搜索

​ 文档类型:“-”表示文件(find中用f替换),“d”表示文件夹

8.#service

用于控制一些软件服务的启动 /停止/重启

1
service 服务名 start/stop/restart
  • 启动Apache service httpd start

9.#kill

  • 用于杀死进程
1
kill 进程PID		(需配合ps使用)
2021-04-16_172456
  • 或选择killall 进程名称,无需使用ps查看

10.#ifconfig

  • 查看网卡
2021-04-16_175927
  • eth0表示Linux的一个网卡,lo(loop,本地回环网卡,ip:127.0.0.1)

11.#reboot

  • 重启计算机
1
2
#reboot		//重启
#reboot -w //模拟重启(只写开机与关机的日志)

12.#shutdown

  • 关机 //慎用,远程直接掉线
1
2
3
#shutdown -h now		//立即关机
#shutdown -h 18:18 "关机提示" //18:18关机(ctrl+c取消定时关机CentOS7.0之前)
#shutdown -c //取消关机(CentOS7.0及以后)
1
2
3
4
其他关机指令
#init 0
#halt
#poweroff

13.#uptime

  • 输出计算机的持续在线时间
1
#uptime
2021-04-16_182137
  • load average: 负载,显示最近1分钟、5分钟和15分钟的系统平均负载

14.#uname

  • 获取计算机操作系统相关信息
1
2
#uname	//获取操作系统类型
#uname -a //all,表示获取全部系统的信息(类型,全部主机名,内核版本,发布时间,开源计划)

2021-04-18_091037

15.#netstat -tnlp

  • 查看网络连接状态
1
#netstat -tnlp
  • 选项说明:
    • -t:只列出tcp协议的链接
    • -n:将字母组合转化成IP地址,把协议转化为端口号来显示
    • -l:过滤出“state(状态)”列中值为LISTEN(监听)的链接
    • -p:显示发起连接的进程PID和进程名称

2021-04-18_092610

16.#man

  • manual,手册(包含了Linux中全部命令手册,英文)
1
#man 命令	//按q退出


练习题

  • 如何通过命令行重启linux操作系统? #reboot
  • 如何在命令行中快速删除光标前、后的(全部)内容?
    • 前:ctrl + u
    • 后:ctrl + k
  • 如何删除/temp下所有A开头的文件?
    • #rm -f /tmp/A*
  • 系统重要文件需要备份,如何把/etc/passwd备份到/tmp目录下?
    • #cp /etc/passwd /tmp
  • 如何查看系统最后创建的3个用户?
    • #tail -3 /etc/passwd
  • 什么命令可以统计当前系统中一共多少用户?
    • #wc -l /etc/passwd
    • #cat /etc/passwd | wc -l
  • 如何创建/tmp/test.conf文件?
    • #touch /tmp/test.conf
  • 如何通过vim编辑打开/tmp/test.conf?
    • #vim /tmp/test.conf
  • 如何查看/etc/passwd的头3行和尾3行?
    • #head -3 /etc/passwd
    • #tail -3 /etc/passwd
  • 如何一次性创建目录/text/1/2/3/4?
    • #mkdir -p /text/1/2/3/4
  • 如何快速返回当前账户的家目录?
    • #cd ~
  • 如何查看/etc所占的磁盘空间?
    • #du -sh /etc/
  • 如何删除/tmp下所有的文件?
    • #rm -rf /tmp/* (不包含本身,需要加*)
  • 尝试启动Apache服务,并检查是否启动成功。
    • #service httd start
    • #ps -ef | grep httd
  • 使用已学命令杀死Apache进程。
    • #killall httd

halt:内存

Linux命令大全https://man.linuxde.net