返回列表 发帖

Linux常用命令(一)

笺注:这是在 LNMP一键安装包(lnmp_CentOS6.9) 的基础上进行的。


Linux内核版本号的命名形式: x.yy.zz (x为主版本号,yy为次版本号,zz为修订版本号)
查看内核版本:(次版本号为偶数时表示为稳定版,奇数表示为开发版本)
[root@localhost ~]# uname -r
2.6.32-696.el6.x86_64
[root@localhost ~]# uname -r |awk -F. '{print $2}'
6
[root@localhost ~]# a=$(uname -r |awk -F. '{print $2}')
[root@localhost ~]# b=`expr $a % 2`
[root@localhost ~]# [ $b -eq 0 ] && echo 'Stable'
Stable


[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]#
[root@localhost ~]# uname -a |awk '{print $3}'
2.6.32-696.el6.x86_64








编辑Linux命令行时,可以使用以下几个辅助操作,以提高输入效率:

反斜杠“\”:应用于输入的一行命令内容太长的时候
图片1.png
注释:输入反斜杠“\”后,按回车键即可;后面的内容无法自动补全的


快捷键Ctrl+a:快速去到当前光标所在行的最前面
图片2.png


快捷键Ctrl+e:快速去到当前光标所在行的最后面
图片3.png


快捷键Ctrl+k:快速删除从当前光标处到行尾的所有字符内容
图片4.png
注释:光标所在的字符会被删除。


快捷键Ctrl+u:快速删除当前光标处之前的所有字符内容
图片5.png
注释:光标所在的字符不会被删除。






在Linux系统中表示某个目录(或文件)的位置时,根据其参照的起始目录不同,可以使用两种不同的形式,分别称为绝对路径、相对路径:

绝对路径: 以根目录作为起点
图片6.png


相对路径:
1.直接使用目录名或文件名,是以当前的工作目录作为起点
图片7.png


2.使用“./”开头,表示以当前的工作目录作为起点
图片8.png


3. 使用“../”开头,表示以当前工作目录的上一级目录作为起点
图片9.png
注释:/root的上一级目录就是根目录了


4.使用“~/”开头,表示以当前用户的家目录作为起点
图片10.png


5.使用“~用户名/”开头,表示以指定用户的家目录作为起点
图片11.png







ls、ll命令——列表显示目录内容

显示指定目录本身的属性,不会显示目录里的内容:
[root@localhost ~]# ls -ld /root/
dr-xr-x---. 6 root root 4096 6月  23 03:23 /root/


显示指定目录里的内容:(简单一些)
图片12.png


显示指定目录里的内容:(具体一些)
图片13.png

注释:ls、ll命令都不会延伸到子目录的。


显示指定目录里的内容:(连隐藏的目录和文件都会显示出来的)
ls -alh /root/
图片14.png


显示指定目录里的内容:(目录和文件从新到旧排序)
ls -lt
图片15.png
注释:不指定目录,则默认为当前目录。


显示指定目录里的内容:(目录和文件从旧到新排序)
ls -lrt /root/
图片16.png


查看指定目录里,后缀名为“.gz”的文件:
ll dir1/*.gz
图片17.png



显示指定目录里的内容:(显示文件的属性和大小等等)
ls -lh /root/lnmp1.3-full/*.sh
图片18.png


ls -lh *.sh
图片19.png
注释:不指定目录,则默认为当前目录。








du命令——统计指定目录或文件的空间占用情况
图片20.png
注释:不指定目录,则默认为当前目录。


具体统计:
du -ah
图片21.png


显示指定目录里的内容:(文件和目录从小到大排序;会延伸到子目录的)
du -ah |sort -h
图片22.png
注释:不指定目录,则默认为当前目录。


可以指定目录和条件:
du -ah /root/lnmp1.3-full/ |sort -h |grep "tar.gz"
图片23.png







more命令——分页查看文件内容:(回车键一行行向下翻;空格键一页页向下翻;q键退出; 不可以向上的!!)
[root@localhost ~]# cat lnmp-install.log | more
图片24.png



less命令——分页查看文件内容:
向上键一行行向上翻;向下键一行行向下翻;
回车键一行行向下翻;空格键一页页向下翻;q键退出;
[root@localhost ~]# cat lnmp-install.log | less
图片25.png



分页查看指定目录里,后缀名为“.gz”的文件:(q键退出)
ll dir1/*.gz |less
图片26.png








echo 命令——写入内容至文件:
图片27.png
笺注:如果文件不存在会自动创建。


图片28.png
笺注:如果文件不存在会自动创建。


清空指定的文件:
图片29.png
笺注:如果文件不存在会自动创建。








cat 命令——显示文件的内容:(可以一次性输出两个文件里的内容的)
图片30.png


覆盖文件:
图片31.png
笺注:如果文件不存在会自动创建。


查看文件内容:
图片32.png




在指定文本末尾追加新内容:
图片33.png


效果:
图片34.png


显示序号:
cat -n 123.txt
图片35.png


从底往上显示:
tac 123.txt
图片36.png







tee 命令——功能类似于重定向>,但内容还会显示在屏幕上:
图片37.png
注释:文件不存在会自动创建,如文件存在则直接覆盖








wc 命令——统计文件内容中的行数、单词数量、字节数:
图片38.png


单纯统计文件内容的行数:
[root@localhost ~]# cat 123.txt |wc -l
6

统计当前目录里有多少个后缀名为“.gz”的文件:(不会统计子目录)
[root@localhost ~]# ll ./*.gz | wc -l
2

统计指定目录里有多少个后缀名为“.gz”的文件:(不会统计子目录)
[root@localhost ~]# ll /root/dir1/*.gz | wc -l
3









grep 命令——过滤输出的内容:

例子一,根据关键字“Memtotal”查找对应的行内容
[root@localhost ~]# cat /proc/meminfo |grep MemTotal
MemTotal:        1906256 kB

[root@localhost ~]# cat /proc/meminfo |grep -i memtotal
MemTotal:        1906256 kB
注释:-i 查找内容时忽略大小写



[root@localhost ~]# cat /proc/meminfo |grep "MemTotal:        1906256 kB"
MemTotal:        1906256 kB

[root@localhost ~]# cat /proc/meminfo |grep 'MemTotal:        1906256 kB'
MemTotal:        1906256 kB

注释:假如关键字之间有空格,就必须使用英文双引号或单引号。




例子二,先过滤掉文件中以“#”开头的行和空行,再显示剩下的内容:
图片39.png

[root@localhost ~]# cat /etc/rc.local |grep -v "^#" |grep -v "^$"
touch /var/lock/subsys/local
注释:-v 反转查找,即输出与查找条件不相符的内容




例子三,查看硬盘分区使用情况:
图片40.png


过滤出以关键字“tmp”开头的行:
[root@localhost ~]# df -hT |grep "^tmp"
tmpfs                tmpfs  931M     0  931M   0% /dev/shm

过滤出以关键字“/”结尾的行:
[root@localhost ~]# df -hT |grep "/$"
                     ext4    94G  4.1G   86G   5% /


忽略大小写,同时反转查找:
df -hT |grep -iv "^tmp"
图片41.png









head命令——查看文件开头的部分内容:(不指定行数的话,默认是显示10行)
图片42.png


只显示/etc/passwd里第1行到第5行的内容:

方法一:
图片43.png

方法二:
图片44.png






tail命令——查看文件末尾的部分内容:(不指定行数的话,默认是显示10行)
图片45.png


只显示/etc/passwd里倒数3行的内容:
图片46.png










find 命令——查找文件或目录
1.按名称查找:(关键字为“-name”;可以使用通配符 * 或者 ?
图片47.png

注释:find 命令都会延到子目录的。


备注:以下两种查找方式要使用双引号或单引号:
图片48.png

图片49.png




2.按文件大小查找:(关键字“-size”;容量单位有k、M、G)
图片50.png

图片51.png



3.按属主查找(关键字“-user”;可以查出以指定用户为属主的文件、目录)
图片52.png

图片53.png




4.按类型查找:(关键字“-type”)
查找出指定目录以及其子目录里的所有目录:
图片54.png


查找出指定目录以及其子目录里的所有文件:
图片55.png


还可以结合head、tail命令:
图片56.png




例子三,使用逻辑运算符:
find ./ -size +60M -a -name "*.gz"
图片57.png
注释:-a 表示而且


find ./ -size +60M -o -name "*.txt"
图片58.png
注释:-o 表示或者











ln命令——创建链接文件(类似于Windows系统中的快捷方式)
链接文件分为软链接、硬链接,其中软链接又被称为符号链接。访问软链接或硬链接,与直接访问原始文件(夹)的效果是一样的。

软链接与硬链接的区别:(默认创建的是硬链接,软链接需要加上“-s”选项)
1.删除原始文件后,软链接会失效,但硬链接仍然可以用
2.软链接适用于文件和目录,但硬链接只适用于文件
3.软链接与原始文件(夹)可以位于不同的文件系统中,但硬链接必须与原始文件在同一个文件系统(如一个分区)内

例子一,给/root/dir1/创建软链接目录
ln -s /root/dir1/ ../
图片59.png
注释: /dir1 是 /root/dir1/ 的链接目录


两个目录的内容是一样的:
图片60.png



单单删除软链接目录的方法:(原始文件夹里的内容不会被删除)
图片61.png
注释:删除时软链接目录不能有“/”


删除软链接目录里的内容的方法:(原始文件夹里的内容也被删除)
图片62.png
注释:删除时软链接目录要有“/”



例子二,给/mariadb-10.0.23.tar.gz创建软链接文件:
[root@localhost ~]# ln -s /root/mariadb-10.0.23.tar.gz /
[root@localhost ~]#
[root@localhost ~]# ll /mariadb-10.0.23.tar.gz
lrwxrwxrwx 1 root root 28 6月  24 07:52 /mariadb-10.0.23.tar.gz -> /root/mariadb-10.0.23.tar.gz

注释: /mariadb-10.0.23.tar.gz 是 /root/mariadb-10.0.23.tar.gz 的链接文件


删除创建软链接文件:(原始文件不会被删除的)
图片63.png



例子三,缩短文件的搜索路径:
ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/
图片64.png


笺注:软链接文件在FTP目录里是可以看见,但不能下载;硬链接文件在FTP目录里是看不见的。










cut命令——提取字符串
-d 后面跟的是分隔符
-f 后面跟的是第几个区块
-c 后面跟的是第几个字符

图片65.png

图片66.png


获取根分区的使用率的数值:
df -hl |grep "/$" |awk '{print $4}' |cut -d% -f 1
图片67.png






awk命令——提取字符串

备注:-F后面跟的是分隔符,但如果是以空格分隔的话,就不能使用 -F
图片68.png


提取根分区的总大小的数值:
df -hl |grep "/$" |awk '{print $1}' |awk -FG '{print $1}'
图片69.png


获取根分区的使用率的数值:
df -hl |grep "/$" |awk '{print $4}' |awk -F% '{print $1}'
图片70.png









重启服务器:
[root@localhost ~]# which init
/sbin/init
[root@localhost ~]# init 6
或者
[root@localhost ~]# /sbin/init 6


查看服务器开启了多长时间:(即多久没有重启)
[root@localhost ~]# uptime
08:28:25 up 3 min,  1 user,  load average: 0.00, 0.01, 0.00


关闭服务器:
[root@localhost ~]# which init
/sbin/init
[root@localhost ~]# init 0
或者
[root@localhost ~]# /sbin/init 0




相关文章:
Zabbix监控Linux下的MariaDB
使用Shell脚本监控本机的CPU、内存、分区的使用率

Zabbix调用Python3脚本监控Linux下的Oracle(二)

Linux常用命令(二)
最小化安装CentOS6
用户管理
日志文件

返回列表