Web 前端开发中 需掌握的 linux 概念及常用命令
平时学习过程中,记笔记确实是必要的。所以想把自己整理出的这些笔记整理一下,也分享给大家。那从何说起呢?既然是讲 linux 笔记,那就先说一句吧,在 linux 中,一切皆文件。
1. 环境变量
环境变量(environment variables) 一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。
查看环境变量的配置格式, 如查看$PS1(操作系统及当前用户的相关信息)的配置
echo $PS1
临时设置直接给 $PS1 赋值即可
$PS1='[u@h w]
如需永久生效,则需要修改 /etc/profile 文件的配置
export PS1="[u@h t]$"
然后执行,source 命令即可(通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
source /etc/profile
PATH环境变量
命令存放的路径, 是系统创建好的, 供用户使用, 随时随地使用
echo $PATH // 查看PATH环境变量
在执行命令如 ls 的时候, 会在 PATH 中查找, 没有提示 command not found
命令软件可安装在如下目录中
- /bin
- /sbin
- /usr/bin
- /usr/sbin
- /usr/local/bin
- /usr/local/sbin
2. 硬链接与软链接
2.1 硬链接(Hard Link)
在同一分区中,inode 号码相同的文件互为硬链接, 硬链接也就是文件的入口, 一般都是系统默认创建的防止误删除, 创建硬链接只能给文件创建硬链接, 不能给目录创建硬链接
创建硬链接:
ln 源文件入口 创建的硬链接入口
例如:给 /test/a.txt 创建一个硬链接
2.2 软连接(Symbolic Link)
存放的源文件的位置(inode 节点号与源文件不同),相当于 windows 的快捷方式
创建软链接:
ln -s 源文件入口 创建的软链接入口
例如:给 /test/a.txt 创建一个软链接
2.3 硬链接与软连接的区别
- 互为硬链接的 inode 号相同
- 软连接与源文件的 inode 的节点号不同,
- 硬链接必须再同一个分区中,软链接可跨文件系统
- 不能对目录创建硬链接,软链接可以(经常用)
2.4 彻底删除一个文件
- 硬链接数为 0(rm -f 硬链接)
- 进程调用数为 0
如何查看文件被哪个进程调用
lsof | grep 文件名
如果硬链接数为 0,但文件被进程调用,重启对应的软件或服务即可
3. vim 编辑文件时的快捷键及编辑、保存、退出操作
3.1 vim 快捷键
- G : 文件的最后一行(非编辑 INSERT 状态下)
- gg : 文件的第1行(非编辑 INSERT 状态下)
- o : 当前行下面一行插入一个空行并进入编辑模式
- u : 撤销(非编辑 INSERT 状态下)
- C : 删除光标所在位置到行尾内容,并进入到编辑模式
- A : 快速到达当前行的结尾,并今日到编辑模式
3.2 编辑、保存、退出操作
- 1.按键盘 i 进入编辑模式,进行文件配置
- 2.按键盘 esc 退出编辑模式
- 3.输入 :wq 保存并退出
- 4.如果文件无改动时退出 :q
- 4.如果文件有改动,不想保存修改的文件,输入 :q!
注意:vim 编辑文件,输入法必须在英文模式下
4. /etc 目录下的配置文件
目录
功能
/etc/profile
一般进行系统全局环境变量永久生效或别名的配置文件
/etc/selinux/config
selinux防火墙的配置文件
/etc/init.d/iptables
iptables防火墙的配置文件
/etc/sysconfig/i18n
字符集的配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0
网卡配置文件
/etc/sysconfig/network
可配置主机名
/etc/hosts
解析主机名与ip地址的对应关系
/etc/bashrc
别名配置文件
5. 网卡(网络适配器)配置文件
网卡配置文件的位置在 /etc/sysconfig/network-scripts/ifcfg-eth0,默认配置项包括:
- 1. DEVICE: 网卡的名称
- 2.TYPE: 网络类型
- 3.UUID: 系统中给每个设备分配的标识符号, 在系统中唯一
- 4.HWADDR: HardWare Address 网卡的硬件地址/mac地址/物理地址, 全世界唯一, 在生产网卡时就已经确定
- 5.ONBOOT: 开机或重启网络的时候是否自启动
- 6.NM_CONTROLLED: 网卡的配置文件是否受系统newwork服务这个软件控制, 如果系统或网络重新连接, 网卡就重启了
- 7.BOOTPROTO: 网卡获取ip的方法
1.static/none: 固定 ip,需手动设置
2.dhcp: 系统默认自动获取
- 8.IPADDR: 网卡的ip地址
- 9.NETMASK: 子网掩码, 决定了一个局域网中最多可以有多少台机器(255.255.255.0相当于PREFIX=24)
- 10.GATEWAY: 网关 ?不太理解
6. 别名 alias
6.1 查看 linux 中默认的别名设置
执行 alias 命令即可
alias
6.2 别名设置
6.2.1 临时生效
临时设置命令的别名, 命令行直接 alias + 命令 = "自定义命令" 即可, 如
alias rm="echo xxx"
在命令行中执行:
rm /a.txt // 输出xxx a.txt
注意:
1.当重新登录服务器后,别名设置失败
2.在设置别名后,如与原来命令功能不同,但还想使用的话,则在执行命令前加 ' ' 即可
\rm a.txt //这时rm原有功能生效
6.2.2 永久生效
想要让别名无论是否重启服务器还是重新登录服务器都生效,则需在 /etc/profile中,进行配置 alias rm="echo xxx",然后执行命令:
source /etc/profile
这样,rm的别名设置将永久生效
6.3 取消别名设置
unalias rm
7. linux下面安装软件方式
7.1 yum
是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器,在 linux 环境下,就可以使用 yum 命令,前提是需要网络。
特点:
- 自动解决需要安装的软件的依赖
- 需要网络
yum install tree -y
7.2 rpm
在linux环境下, 就可以使用yum命令,不需要网络, 但是需要挂在光盘, 来提供软件包的库。
1.把设备挂在到服务器的目录下
mount /dev/chrom /mnt
2.查看设备是否挂在成功
df -h
3. 执行rpm命令安装需要的软件包,如:
rpm -ivh /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm
4.检查是否安装成功lrzsz软件包
rmp -qa lrzsz
5.可以查看安装的软件包中的内容(可执行命令):
rpm -ql lrzsz
6.rpm 删除安装的软件包:
rpm -e lrzsz
7.3 编译安装
默认安装到 /usr/local目录下,需要自己安装依赖
8. tar 打包压缩
8.1 创建压缩包
(1). 打包/etc目录到 /tmp/etc.tar.gz
tar zcvf /tmp/etc.tar.gz /etc
// z 通过gzipg工具进行压缩
// c create 创建压缩包文件
// v verbose 显示压缩过程
// f 指定文件
(2). 打包 /etc 目录到 /tmp/etc.tar.gz 并排除掉 /etc/services
tar zcvf /tmp/etc.tar.gz /etc --exclude=/etc/services
8.2 查看压缩包内容
tar tf /tmp/etc.tar.gz
8.3 解压压缩包
8.3.1 解压到当前路径
tar xf /tmp/etc.tar.gz
// 默认解压到当前路径
8.3.2 解压到指定目录下
tar xf /tmp/etc.tar.gz -C /ttt
// -C 解压到指定目录下
9. no space left on device 磁盘空间不足
9.1. 查看磁盘各分区占用情况
df -h
9.2. 进入分区使用率最高的查看该分区下各文件 block 大小
du -sh .*| sort -h //一层一层排查,确认好后再删除
9.3. 查看系统中 inode 占用磁盘情况
df -ih // 主要是查看系统中的小文件
// -i 显示inode号
// -h 人可以阅读懂得显示
9.4. 文件没有被彻底删除(硬链接数为 0,但是文件被系统进程所调用)
常用命令
1. man
format and display the on-line manual pages 使用手册
想查看哪个命令如何使用,如查看ls命令如何使用:
man ls
2. ip
show / manipulate routing, devices, policy routing and tunnels 显示网卡ip地址信息
知识点:
1. ip a // ip address 缩写
3. which
shows the full path of (shell) commands 展示命令的完整路径
查看 madir 命令的完整路径
which mkdir
4. pwd
print name of current/working directory 显示当前工作目录
5. ls
list directory contents 列出目录的所有内容
5.1 列出/root目录下的所有目录及文件
cd /root
ls
5.2 列出/root目录下的所有目录及文件,并显示文件的相关信息
cd /root
ls -l // 相当于ll, -l : use a long listing format, 展示文件详细信息
6. mkdir
-make directories 创建目录
6.1. 创建 /data文件夹
mkdir /data
6.2. 用一条命令完成创建目录/my/test,既创建/my目录及/my/test目录
mkdir -p /my/test
知识点:
-p --parents no error if existing, make parent directories as needed
- 如果文件已经存在,新建时不报错
- 如果需要创建多级文件夹,会一直创建到最底层的父级文件夹
7. touch
change file timestamps 创建文件,修改文件时间戳
在data下面建一个文件test.txt
touch /data/test.txt
8. cd
cd -change direcory 切换目录
8.1 进入/data/test目录
cd /data/test
8.2 返回上一层目录
cd ..
9. cp
-copy files and directories 拷贝文件或目录
9.1 把/data/test.txt文件拷贝到/tmp下
cp /data/test.txt /tmp
9.2 拷贝/data目录到/tmp目录下
cp -r /data /tmp
知识点:
1. -r 参数表示递归复制目录,一层一层的复制
2. -p 拷贝时,保持文件属性不变
2. -a 相当于 -pdr
9.3 拷贝/data目录到/tmp目录下, 保持文件属性不变
cp -p /data /tmp
10. mv
-move (rename) files 移动或重命名文件
10.1 把/data目录移动到/root下
mv /data /root
10.2 把/data/a.txt 重命名为b.txt
cd /data
mv a/txt b.txt
11. rm
-remove files or directories 删除文件或目录
11.1 进入/root目录下的data目录,删除test.txt文件
cd /root/data
rm -f test.txt // -f “force”, 表示强制删除
11.2 删除目录,删除/data/test目录
rm -r /data/test // -r 删除目录
12. echo
-display a line of text 显示文本行
12.1 为 /data/test.txt 增加内容为 I am studying linux.
echo "I am studing linux" > /data/test.txt
知识点:
- “>”,重定向,先清空文件内容,然后再追加到文件结尾
- ">>",追加重定向 把内容追加到文件结尾
13. cat
concatenate files and print on the standard output 连接文件并打印输出文件内容
13.1 显示/test.txt的文件内容
cat /test.txt
13.2 与<<配合,追加多行内容到文件/a.txt中
cat >>/a.txt<<EOF
aaaa
bbbb
cccc
EOF
14. history
命令可以用来显示曾执行过的命令
history
15. df
查看磁盘空间
df -h // 查看block
df -i //查看inode
16. du
查看文件目录下文件大小
du -sh /* //查看根目录下的所有文件大小
17. sort
排序
sort -参数 文件
-n // 按照数字顺序排序
-r // 逆序
-k // 根据第几列进行排序
-h // 人可以读懂的信息, 根据文件大小 T>G>M>K
18. ps
process status 进程状态
18.1查看所有node进程
ps -ef | grep node
19. find
search for files in a directory hierarchy 在目录层次结构中,查找文件
19.1 在/data目录下查找a.txt文件
find /data -type f -name "a.txt"
知识点:
- -type 查找内容的类型
- f 表示要查找的内容为文件类型
19.2 find与 管道符 "|"配合使用 在/data目录下查找a.txt文件,并删除
find /data -type f name "a.txt" | xargs rm -rf
20. grep
-print lines matching a pattern 根据匹配的规则过滤文本内容
20.1 输出 test.txt 文件中,包含 aaa 字符串的行
grep "aaa" test.txt
20.2输出 test.txt 文件中,不包含 aaa 字符串的行
grep -v "aaa" test.txt // -v参数: --invert-match 过滤掉不匹配的行
20.3 与管道符号配合使用,如过滤出命令历史记录中的所有cd命令
history | grep cd
21. awk
21.1 已知文件 /data 目录下的 test.txt 文件内容为:
aaa
bbb
ccc
ddd
输出 test.txt 文件内容时,不包含 bbb 字符串:
awk '!/bbb/' /data/test.txt
21.2 输出/data/text.txt的第二行
awk 'NR ==20' /data/text.txt
21.3 输出/data/text.txt的第二行到第三行
awk 'NR ==2, NR==3' /data/text.txt
22. sed
用于过滤和转换文本的流编辑器
22.1 /data/test.txt中内容为aaa,把/data/a.txt的内容替换为bbb
sed -i 's#aaa#bbb#g' /data/test.txt
知识点:
- -i --in-place 替换
- 固定用法,'s#要被替换的内容#替换后的内容#g','#' 也可以使用 ‘@’ 等等符号,一般常用 ‘#’
22.2 使用sed命令输出行,如输出/data目录下test.txt的第20行,第20到30行
sed -n '20p' /data/test.txt
sed -n '20, 30p' /data/test.txt
23. ping
send ICMP ECHO_REQUEST packets to network hosts 检查网络是否连通
本周根据记录的笔记,整理出了在web前端开发中,几个linux中的相关概念和常用的命令,用法也都比较基础,主要是方便查阅复习,同时分享给大家,更全的信息那当然是去查手册了。如有问题,请各位大神多多指出,谢谢。最后,让我们一起来ping一下百度吧,ping!! ping! ping!
ping www.baidu.com
如需永久生效,则需要修改 /etc/profile 文件的配置
然后执行,source 命令即可(通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
PATH环境变量
命令存放的路径, 是系统创建好的, 供用户使用, 随时随地使用
在执行命令如 ls 的时候, 会在 PATH 中查找, 没有提示 command not found
命令软件可安装在如下目录中
- /bin
- /sbin
- /usr/bin
- /usr/sbin
- /usr/local/bin
- /usr/local/sbin
2. 硬链接与软链接
2.1 硬链接(Hard Link)
在同一分区中,inode 号码相同的文件互为硬链接, 硬链接也就是文件的入口, 一般都是系统默认创建的防止误删除, 创建硬链接只能给文件创建硬链接, 不能给目录创建硬链接
创建硬链接:
例如:给 /test/a.txt 创建一个硬链接
2.2 软连接(Symbolic Link)
存放的源文件的位置(inode 节点号与源文件不同),相当于 windows 的快捷方式
创建软链接:
例如:给 /test/a.txt 创建一个软链接
2.3 硬链接与软连接的区别
- 互为硬链接的 inode 号相同
- 软连接与源文件的 inode 的节点号不同,
- 硬链接必须再同一个分区中,软链接可跨文件系统
- 不能对目录创建硬链接,软链接可以(经常用)
2.4 彻底删除一个文件
- 硬链接数为 0(rm -f 硬链接)
- 进程调用数为 0
如何查看文件被哪个进程调用
如果硬链接数为 0,但文件被进程调用,重启对应的软件或服务即可
3. vim 编辑文件时的快捷键及编辑、保存、退出操作
3.1 vim 快捷键
- G : 文件的最后一行(非编辑 INSERT 状态下)
- gg : 文件的第1行(非编辑 INSERT 状态下)
- o : 当前行下面一行插入一个空行并进入编辑模式
- u : 撤销(非编辑 INSERT 状态下)
- C : 删除光标所在位置到行尾内容,并进入到编辑模式
- A : 快速到达当前行的结尾,并今日到编辑模式
3.2 编辑、保存、退出操作
- 1.按键盘 i 进入编辑模式,进行文件配置
- 2.按键盘 esc 退出编辑模式
- 3.输入 :wq 保存并退出
- 4.如果文件无改动时退出 :q
- 4.如果文件有改动,不想保存修改的文件,输入 :q!
注意:vim 编辑文件,输入法必须在英文模式下
4. /etc 目录下的配置文件
目录 | 功能 |
---|---|
/etc/profile | 一般进行系统全局环境变量永久生效或别名的配置文件 |
/etc/selinux/config | selinux防火墙的配置文件 |
/etc/init.d/iptables | iptables防火墙的配置文件 |
/etc/sysconfig/i18n | 字符集的配置文件 |
/etc/sysconfig/network-scripts/ifcfg-eth0 | 网卡配置文件 |
/etc/sysconfig/network | 可配置主机名 |
/etc/hosts | 解析主机名与ip地址的对应关系 |
/etc/bashrc | 别名配置文件 |
5. 网卡(网络适配器)配置文件
网卡配置文件的位置在 /etc/sysconfig/network-scripts/ifcfg-eth0,默认配置项包括:
- 1. DEVICE: 网卡的名称
- 2.TYPE: 网络类型
- 3.UUID: 系统中给每个设备分配的标识符号, 在系统中唯一
- 4.HWADDR: HardWare Address 网卡的硬件地址/mac地址/物理地址, 全世界唯一, 在生产网卡时就已经确定
- 5.ONBOOT: 开机或重启网络的时候是否自启动
- 6.NM_CONTROLLED: 网卡的配置文件是否受系统newwork服务这个软件控制, 如果系统或网络重新连接, 网卡就重启了
- 7.BOOTPROTO: 网卡获取ip的方法
1.static/none: 固定 ip,需手动设置
2.dhcp: 系统默认自动获取
- 8.IPADDR: 网卡的ip地址
- 9.NETMASK: 子网掩码, 决定了一个局域网中最多可以有多少台机器(255.255.255.0相当于PREFIX=24)
- 10.GATEWAY: 网关 ?不太理解
6. 别名 alias
6.1 查看 linux 中默认的别名设置
执行 alias 命令即可
6.2 别名设置
6.2.1 临时生效
临时设置命令的别名, 命令行直接 alias + 命令 = "自定义命令" 即可, 如
在命令行中执行:
注意:
1.当重新登录服务器后,别名设置失败
2.在设置别名后,如与原来命令功能不同,但还想使用的话,则在执行命令前加 ' ' 即可
6.2.2 永久生效
想要让别名无论是否重启服务器还是重新登录服务器都生效,则需在 /etc/profile中,进行配置 alias rm="echo xxx",然后执行命令:
这样,rm的别名设置将永久生效
6.3 取消别名设置
7. linux下面安装软件方式
7.1 yum
是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器,在 linux 环境下,就可以使用 yum 命令,前提是需要网络。
特点:
- 自动解决需要安装的软件的依赖
- 需要网络
7.2 rpm
在linux环境下, 就可以使用yum命令,不需要网络, 但是需要挂在光盘, 来提供软件包的库。
1.把设备挂在到服务器的目录下
2.查看设备是否挂在成功
3. 执行rpm命令安装需要的软件包,如:
4.检查是否安装成功lrzsz软件包
5.可以查看安装的软件包中的内容(可执行命令):
6.rpm 删除安装的软件包:
7.3 编译安装
默认安装到 /usr/local目录下,需要自己安装依赖
8. tar 打包压缩
8.1 创建压缩包
(1). 打包/etc目录到 /tmp/etc.tar.gz
(2). 打包 /etc 目录到 /tmp/etc.tar.gz 并排除掉 /etc/services
8.2 查看压缩包内容
8.3 解压压缩包
8.3.1 解压到当前路径
8.3.2 解压到指定目录下
9. no space left on device 磁盘空间不足
9.1. 查看磁盘各分区占用情况
9.2. 进入分区使用率最高的查看该分区下各文件 block 大小
9.3. 查看系统中 inode 占用磁盘情况
9.4. 文件没有被彻底删除(硬链接数为 0,但是文件被系统进程所调用)
常用命令
1. man
想查看哪个命令如何使用,如查看ls命令如何使用:
2. ip
知识点:
3. which
shows the full path of (shell) commands 展示命令的完整路径
查看 madir 命令的完整路径
4. pwd
print name of current/working directory 显示当前工作目录
5. ls
list directory contents 列出目录的所有内容
5.1 列出/root目录下的所有目录及文件
5.2 列出/root目录下的所有目录及文件,并显示文件的相关信息
6. mkdir
6.1. 创建 /data文件夹
6.2. 用一条命令完成创建目录/my/test,既创建/my目录及/my/test目录
知识点:
- 如果文件已经存在,新建时不报错
- 如果需要创建多级文件夹,会一直创建到最底层的父级文件夹
7. touch
change file timestamps 创建文件,修改文件时间戳
在data下面建一个文件test.txt
8. cd
cd -change direcory 切换目录
8.1 进入/data/test目录
8.2 返回上一层目录
9. cp
-copy files and directories 拷贝文件或目录
9.1 把/data/test.txt文件拷贝到/tmp下
9.2 拷贝/data目录到/tmp目录下
知识点:
9.3 拷贝/data目录到/tmp目录下, 保持文件属性不变
10. mv
-move (rename) files 移动或重命名文件
10.1 把/data目录移动到/root下
10.2 把/data/a.txt 重命名为b.txt
11. rm
-remove files or directories 删除文件或目录
11.1 进入/root目录下的data目录,删除test.txt文件
11.2 删除目录,删除/data/test目录
12. echo
-display a line of text 显示文本行
12.1 为 /data/test.txt 增加内容为 I am studying linux.
知识点:
- “>”,重定向,先清空文件内容,然后再追加到文件结尾
- ">>",追加重定向 把内容追加到文件结尾
13. cat
concatenate files and print on the standard output 连接文件并打印输出文件内容
13.1 显示/test.txt的文件内容
13.2 与<<配合,追加多行内容到文件/a.txt中
14. history
命令可以用来显示曾执行过的命令
15. df
查看磁盘空间
16. du
查看文件目录下文件大小
17. sort
排序
18. ps
process status 进程状态
18.1查看所有node进程
19. find
search for files in a directory hierarchy 在目录层次结构中,查找文件
19.1 在/data目录下查找a.txt文件
知识点:
- -type 查找内容的类型
- f 表示要查找的内容为文件类型
19.2 find与 管道符 "|"配合使用 在/data目录下查找a.txt文件,并删除
20. grep
20.1 输出 test.txt 文件中,包含 aaa 字符串的行
20.2输出 test.txt 文件中,不包含 aaa 字符串的行
20.3 与管道符号配合使用,如过滤出命令历史记录中的所有cd命令
21. awk
21.1 已知文件 /data 目录下的 test.txt 文件内容为:
输出 test.txt 文件内容时,不包含 bbb 字符串:
21.2 输出/data/text.txt的第二行
21.3 输出/data/text.txt的第二行到第三行
22. sed
用于过滤和转换文本的流编辑器
22.1 /data/test.txt中内容为aaa,把/data/a.txt的内容替换为bbb
知识点:
- -i --in-place 替换
- 固定用法,'s#要被替换的内容#替换后的内容#g','#' 也可以使用 ‘@’ 等等符号,一般常用 ‘#’
22.2 使用sed命令输出行,如输出/data目录下test.txt的第20行,第20到30行
23. ping
本周根据记录的笔记,整理出了在web前端开发中,几个linux中的相关概念和常用的命令,用法也都比较基础,主要是方便查阅复习,同时分享给大家,更全的信息那当然是去查手册了。如有问题,请各位大神多多指出,谢谢。最后,让我们一起来ping一下百度吧,ping!! ping! ping!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论