blog.zhuohua.store's Archiver

admin 发表于 2019-12-25 09:24

Linux常用命令(一)

笺注:这是在 [url=http://blog.zhuohua.store/viewthread.php?tid=79&extra=page%3D1]LNMP一键安装包(lnmp_CentOS6.9)[/url] 的基础上进行的。


Linux内核版本号的命名形式: x.yy.zz (x为主版本号,yy为次版本号,zz为修订版本号)
查看内核版本:(次版本号为偶数时表示为稳定版,奇数表示为开发版本)
[root@localhost ~]# uname -r
2.[color=Blue]6[/color].32-696.el6.x86_64
[root@localhost ~]# uname -r |awk -F. '{print $2}'
[color=Blue]6[/color]
[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 [color=Blue]2.6.32-696.el6.x86_64[/color] #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}'
[color=Blue]2.6.32-696.el6.x86_64[/color]








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

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


快捷键Ctrl+a:快速去到当前光标所在行的最前面
[attach]11487[/attach]


快捷键Ctrl+e:快速去到当前光标所在行的最后面
[attach]11488[/attach]


快捷键Ctrl+k:快速删除从当前光标处到行尾的所有字符内容
[attach]11489[/attach]
注释:光标所在的字符会被删除。


快捷键Ctrl+u:快速删除当前光标处之前的所有字符内容
[attach]11490[/attach]
注释:光标所在的字符不会被删除。






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

绝对路径: 以根目录作为起点
[attach]11491[/attach]


相对路径:
1.直接使用目录名或文件名,是以当前的工作目录作为起点
[attach]11492[/attach]


2.使用“./”开头,表示以当前的工作目录作为起点
[attach]11493[/attach]


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


4.使用“~/”开头,表示以当前用户的家目录作为起点
[attach]11495[/attach]


5.使用“~用户名/”开头,表示以指定用户的家目录作为起点
[attach]11496[/attach]







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

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


显示指定目录里的内容:(简单一些)
[attach]11497[/attach]


显示指定目录里的内容:(具体一些)
[attach]11498[/attach]

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


显示指定目录里的内容:(连隐藏的目录和文件都会显示出来的)
[color=Blue]ls -alh[/color] /root/
[attach]11499[/attach]


显示指定目录里的内容:(目录和文件从新到旧排序)
[color=Blue]ls -lt[/color]
[attach]11500[/attach]
注释:不指定目录,则默认为当前目录。


显示指定目录里的内容:(目录和文件从旧到新排序)
[color=Blue]ls -lrt[/color] /root/
[attach]11501[/attach]


查看指定目录里,后缀名为“.gz”的文件:
ll dir1/*.gz
[attach]11502[/attach]



显示指定目录里的内容:(显示文件的属性和[color=Blue]大小[/color]等等)
[color=Blue]ls -lh[/color] /root/lnmp1.3-full/*.sh
[attach]11503[/attach]


[color=Blue]ls -lh[/color] *.sh
[attach]11504[/attach]
注释:不指定目录,则默认为当前目录。








du命令——统计指定目录或文件的空间占用情况
[attach]11505[/attach]
注释:不指定目录,则默认为当前目录。


具体统计:
du -ah
[attach]11506[/attach]


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


可以指定目录和条件:
[color=Blue]du -ah[/color] /root/lnmp1.3-full/ [color=Blue]|sort -h[/color] |grep "tar.gz"
[attach]11508[/attach]







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



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



分页查看指定目录里,后缀名为“.gz”的文件:(q键退出)
ll dir1/*.gz [color=Blue]|less[/color]
[attach]11511[/attach]








echo 命令——写入内容至文件:
[attach]11512[/attach]
笺注:如果文件不存在会自动创建。


[attach]11513[/attach]
笺注:如果文件不存在会自动创建。


清空指定的文件:
[attach]11514[/attach]
笺注:如果文件不存在会自动创建。








cat 命令——显示文件的内容:(可以一次性输出两个文件里的内容的)
[attach]11515[/attach]


覆盖文件:
[attach]11516[/attach]
笺注:如果文件不存在会自动创建。


查看文件内容:
[attach]11517[/attach]




在指定文本末尾追加新内容:
[attach]11518[/attach]


效果:
[attach]11519[/attach]


显示序号:
[color=Blue]cat -n[/color] 123.txt
[attach]11520[/attach]


从底往上显示:
[color=Blue]tac[/color] 123.txt
[attach]11521[/attach]







tee 命令——功能类似于重定向[color=Blue]>[/color],但内容还会显示在屏幕上:
[attach]11522[/attach]
注释:文件不存在会自动创建,如文件存在则直接覆盖








wc 命令——统计文件内容中的行数、单词数量、字节数:
[attach]11523[/attach]


单纯统计文件内容的行数:
[root@localhost ~]# cat 123.txt [color=Blue]|wc -l[/color]
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 [color=Blue]|grep[/color] MemTotal
MemTotal:        1906256 kB

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



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

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

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




例子二,先过滤掉文件中以“#”开头的行和空行,再显示剩下的内容:
[attach]11524[/attach]

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




例子三,查看硬盘分区使用情况:
[attach]11525[/attach]


过滤出以关键字“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 [color=Blue]-iv[/color] "^tmp"
[attach]11526[/attach]









head命令——查看文件开头的部分内容:(不指定行数的话,默认是显示10行)
[attach]11527[/attach]


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

方法一:
[attach]11528[/attach]

方法二:
[attach]11529[/attach]






tail命令——查看文件末尾的部分内容:(不指定行数的话,默认是显示10行)
[attach]11530[/attach]


只显示/etc/passwd里倒数3行的内容:
[attach]11531[/attach]










find 命令——查找文件或目录
1.按名称查找:(关键字为“-name”;可以使用通配符[color=Blue] *[/color] 或者 [color=Blue]?[/color] )
[attach]11532[/attach]

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


备注:以下两种查找方式要使用双引号或单引号:
[attach]11533[/attach]

[attach]11534[/attach]




2.按文件大小查找:(关键字“-size”;容量单位有k、M、G)
[attach]11535[/attach]

[attach]11536[/attach]



3.按属主查找(关键字“-user”;可以查出以指定用户为属主的文件、目录)
[attach]11537[/attach]

[attach]11538[/attach]




4.按类型查找:(关键字“-type”)
查找出指定目录以及其子目录里的所有目录:
[attach]11539[/attach]


查找出指定目录以及其子目录里的所有文件:
[attach]11540[/attach]


还可以结合head、tail命令:
[attach]11541[/attach]




例子三,使用逻辑运算符:
find ./ -size +60M [color=Blue]-a[/color] -name "*.gz"
[attach]11542[/attach]
注释:[color=Blue]-a[/color] 表示而且


find ./ -size +60M [color=Blue]-o[/color] -name "*.txt"
[attach]11543[/attach]
注释:[color=Blue]-o[/color] 表示或者











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

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

例子一,给/root/dir1/创建软链接目录
[color=Blue]ln -s[/color] /root/dir1/ ../
[attach]11544[/attach]
注释: /dir1 是 /root/dir1/ 的链接目录


两个目录的内容是一样的:
[attach]11545[/attach]



单单删除软链接目录的方法:(原始文件夹里的内容不会被删除)
[attach]11546[/attach]
注释:删除时软链接目录不能有“/”


删除软链接目录里的内容的方法:(原始文件夹里的内容也被删除)
[attach]11547[/attach]
注释:删除时软链接目录要有“/”



例子二,给/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 [color=Purple]/mariadb-10.0.23.tar.gz -> /root/mariadb-10.0.23.tar.gz[/color]

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


删除创建软链接文件:(原始文件不会被删除的)
[attach]11548[/attach]



例子三,缩短文件的搜索路径:
ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/
[attach]11549[/attach]


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










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

[attach]11550[/attach]

[attach]11551[/attach]


获取根分区的使用率的数值:
df -hl |grep "/$" |awk '{print $4}' [color=Blue]|cut -d% -f 1[/color]
[attach]11552[/attach]






awk命令——提取字符串

备注:-F后面跟的是分隔符,但如果是以空格分隔的话,就不能使用 -F
[attach]11553[/attach]


提取根分区的总大小的数值:
df -hl |grep "/$" |awk '{print $1}' |awk -FG '{print $1}'
[attach]11554[/attach]


获取根分区的使用率的数值:
df -hl |grep "/$" |awk '{print $4}' |awk -F% '{print $1}'
[attach]11555[/attach]









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


查看服务器开启了多长时间:(即多久没有重启)
[root@localhost ~]# uptime
08:28:25 up [color=Purple]3 min[/color],  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




相关文章:
[url=http://blog.zhuohua.store/viewthread.php?tid=334&extra=page%3D1]Zabbix监控Linux下的MariaDB[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=92&extra=page%3D1]使用Shell脚本监控本机的CPU、内存、分区的使用率[/url]

[url=http://blog.zhuohua.store/viewthread.php?tid=519&page=1&extra=#pid947]Zabbix调用Python3脚本监控Linux下的Oracle(二)[/url]

[url=http://blog.zhuohua.store/viewthread.php?tid=247&page=1&extra=#pid250]Linux常用命令(二)[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=209&page=1&extra=#pid210]最小化安装CentOS6[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=244&page=1&extra=#pid247]用户管理[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=288&page=1&extra=#pid291]日志文件[/url]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.