本文已同步到github web前端开发中,需掌握的linux概念及经常使用命令,欢迎收藏,欢迎Star前端
前一段时间阅读了《鸟哥的linux私房菜》的部分章节,也作了一些笔记,就在我再次打开笔记时,发现不少命令这是啥东东,有的都忘了,不过从头看一遍本身的笔记,就很快想起来了,从我我的的角度,平时学习过程当中,记笔记确实是必要的。因此想把本身整理出的这些笔记整理一下,也分享给你们。那从何提及呢?既然是讲linux笔记,那就先说一句吧,在linux中,一切皆文件。node
环境变量(environment variables) 通常是指在操做系统中用来指定操做系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操做系统中一个具备特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。
查看环境变量的配置格式, 如查看$PS1(操做系统及当前用户的相关信息)的配置linux
echo $PS1
临时设置直接给$PS1赋值便可git
$PS1='[\u@\h \w]$'
如需永久生效,则须要修改/etc/profile文件的配置github
export PS1="[\u@\h \t]$"
而后执行,source命令便可(一般用于从新执行刚修改的初始化文件,使之当即生效,而没必要注销并从新登陆)web
source /etc/profile
命令存放的路径, 是系统建立好的, 供用户使用, 随时随地使用
echo $PATH // 查看PATH环境变量
在执行命令如 ls 的时候, 会在PATH中查找, 没有提示command not foundshell
命令软件可安装在以下目录中vim
在同一分区中, inode号码相同的文件互为硬连接, 硬连接也就是文件的入口, 通常都是系统默认建立的防止误删除, 建立硬连接只能给文件建立硬连接, 不能给目录建立硬连接
建立硬连接:segmentfault
ln 源文件入口 建立的硬连接入口
例如: 给 /test/a.txt 建立一个硬连接windows
存放的源文件的位置(inode节点号与源文件不一样),至关于windows的快捷方式
建立软连接:
ln -s 源文件入口 建立的软连接入口
例如: 给 /test/a.txt 建立一个软连接
如何查看文件被哪一个进程调用
lsof | grep 文件名
若是硬连接数为0, 但文件被进程调用, 重启对应的软件或服务便可
3.1 vim快捷键
3.2 编辑、保存、退出操做
注意: vim编辑文件, 输入法必须在英文模式下
目录 | 功能 |
---|---|
/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 | 别名配置文件 |
网卡配置文件的位置在/etc/sysconfig/network-scripts/ifcfg-eth0, 默认配置项包括:
1.static/none: 固定ip,需手动设置
2.dhcp: 系统默认自动获取
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.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.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.1. 查看磁盘各分区占用状况
df -h
9.2. 进入分区使用率最高的查看该分区下各文件block大小
du -sh .*| sort -h //一层一层排查,确认好后再删除
9.3. 查看系统中inode占用磁盘状况
df -ih // 主要是查看系统中的小文件 // -i 显示inode号 // -h 人能够阅读懂得显示
9.4. 文件没有被完全删除(硬连接数为0,可是文件被系统进程所调用)
format and display the on-line manual pages 使用手册
想查看哪一个命令如何使用,如查看ls命令如何使用:
man ls
show / manipulate routing, devices, policy routing and tunnels 显示网卡ip地址信息
知识点:
1. ip a // ip address 缩写
shows the full path of (shell) commands 展现命令的完整路径
查看madir命令的完整路径
which mkdir
print name of current/working directory 显示当前工做目录
list directory contents 列出目录的全部内容
5.1 列出/root目录下的全部目录及文件
cd /root ls
5.2 列出/root目录下的全部目录及文件,并显示文件的相关信息
``` cd /root ls -l // 至关于ll, -l : use a long listing format, 展现文件详细信息 ```
-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
change file timestamps 建立文件,修改文件时间戳
在data下面建一个文件test.txt
touch /data/test.txt
cd -change direcory 切换目录
8.1 进入/data/test目录
cd /data/test
8.2 返回上一层目录
cd ..
-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
-move (rename) files 移动或重命名文件
10.1 把/data目录移动到/root下
mv /data /root
10.2 把/data/a.txt 重命名为b.txt
cd /data mv a/txt b.txt
-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 删除目录
-display a line of text 显示文本行
12.1 为/data/test.txt增长内容为“I am studying linux.”
echo "I am studing linux" > /data/test.txt
知识点:
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
命令能够用来显示曾执行过的命令
history
查看磁盘空间
df -h // 查看block df -i //查看inode
查看文件目录下文件大小
du -sh /* //查看根目录下的全部文件大小
排序
sort -参数 文件 -n // 按照数字顺序排序 -r // 逆序 -k // 根据第几列进行排序 -h // 人能够读懂的信息, 根据文件大小 T>G>M>K
process status 进程状态
18.1查看全部node进程
ps -ef | grep node
search for files in a directory hierarchy 在目录层次结构中, 查找文件
19.1 在/data目录下查找a.txt文件
find /data -type f -name "a.txt"
知识点:
19.2 find与 管道符 "|"配合使用 在/data目录下查找a.txt文件,并删除
find /data -type f name "a.txt" | xargs rm -rf
-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.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.1 /data/test.txt中内容为aaa,把/data/a.txt的内容替换为bbb
sed -i 's#aaa#bbb#g' /data/test.txt
知识点:
22.2 使用sed命令输出行,如输出/data目录下test.txt的第20行,第20到30行
sed -n '20p' /data/test.txt
sed -n '20, 30p' /data/test.txt
send ICMP ECHO_REQUEST packets to network hosts 检查网络是否连通
本周根据记录的笔记,整理出了在web前端开发中,几个linux中的相关概念和经常使用的命令,用法也都比较基础,主要是方便查阅复习,同时分享给你们,更全的信息那固然是去查手册了。若有问题,请各位大神多多指出,谢谢。最后,让咱们一块儿来ping一下百度吧,ping!! ping! ping!
ping www.baidu.com