Linux常用命令4(grep、df、du、awk、su、ll)
[grep命令】
grep常用用法
[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
【df命令】
df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法 df(选项)(参数)
实例
显示文件系统的磁盘使用情况统计:
# df Filesystem1K-blocks UsedAvailableUse%Mounted on
/dev/sda6 2964078043207042381438816%/
udev 1536756415367521%/dev
tmpfs 6176208886167321%/run
none 5120051200%/run/lock
none 154404415615438881%/run/shm
第一列指定文件系统的名称,第二列指定一个特定的文件系统1K-块1K是1024字节为单位的总内存。用和可用列正在使用中,分别指定的内存量。
使用列指定使用的内存的百分比,而最后一栏"安装在"指定的文件系统的挂载点。
df也可以显示磁盘使用的文件系统信息:
# df test Filesystem1K-blocks UsedAvailableUse%Mounted on
/dev/sda6 2964078043206002381449216%/
用一个-i选项的df命令的输出显示inode信息而非块使用量。
df -i
FilesystemInodesIUsedIFreeIUse%Mounted on
/dev/sda6 1884160261964162219614%/
udev 2127485602121881%/dev
tmpfs 2163924772159151%/run
none 21639232163891%/run/lock
none 21639282163841%/run/shm
显示所有的信息:
# df --total Filesystem1K-blocks UsedAvailableUse%Mounted on
/dev/sda6 2964078043207202381437216%/
udev 1536756415367521%/dev
tmpfs 6176208926167281%/run
none 5120051200%/run/lock
none 154404415615438881%/run/shm
total 3334432043217722751686014%
我们看到输出的末尾,包含一个额外的行,显示总的每一列。
-h选项,通过它可以产生可读的格式df命令的输出:
# df -h FilesystemSizeUsedAvailUse%Mounted on
/dev/sda6 29G4.2G23G16%/
udev 1.5G4.0K1.5G1%/dev
tmpfs 604M892K603M1%/run
none 5.0M05.0M0%/run/lock
none 1.5G156K1.5G1%/run/shm
我们可以看到输出显示的数字形式的'G'(千兆字节),"M"(兆字节)和"K"(千字节)。
这使输出容易阅读和理解,从而使显示可读的。请注意,第二列的名称也发生了变化,为了使显示可读的"大小"。
【du命令】
用于显示目录或文件的大小。du会显示指定的目录或文件所占用的磁盘空间。
语法
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]
实例
显示目录或者文件所占空间:
# du608./test6
308./test4
4./scf/lib
4./scf/service/deploy/product
4./scf/service/deploy/info
12./scf/service/deploy
16./scf/service
4./scf/doc
4./scf/bin
32./scf
8./test3
1288.
只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小
显示指定文件所占空间
# du log2012.log 300 log2012.log
方便阅读的格式显示test目录所占空间情况:
# du -h test608K test/test6
308K test/test4
4.0K test/scf/lib
4.0K test/scf/service/deploy/product
4.0K test/scf/service/deploy/info
12K test/scf/service/deploy
16K test/scf/service
4.0K test/scf/doc
4.0K test/scf/bin
32K test/scf
8.0K test/test3
1.3M test
【awk命令】
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。
语法
awk [选项参数]'script'var=value file(s)或
awk [选项参数]-f scriptfile var=value file(s)
基本用法
log.txt文本内容如下:
2thisis a test
3Are you like awk
This's a test
10 There are orange,apple,mongo
用法一:
awk '{[pattern] action}'{filenames}# 行匹配语句 awk '' 只能用单引号
实例:
# 每行按空格或TAB分割,输出文本中的1、4项
$ awk '{print $1,$4}' log.txt
---------------------------------------------2 a
3 like
This's
10 orange,apple,mongo
# 格式化输出
$ awk '{printf "%-8s %-10s\n",$1,$4}' log.txt
---------------------------------------------
2 a
3 like
This's
10 orange,apple,mongo
用法二:
awk -F #-F相当于内置变量FS, 指定分割字符
实例:
# 使用","分割
$ awk -F,'{print $1,$2}' log.txt
---------------------------------------------2thisis a test
3Are you like awk
This's a test
10 There are orange apple
# 或者使用内建变量
$ awk 'BEGIN{FS=","}{print $1,$2}' log.txt
---------------------------------------------
2 this is a test
3 Are you like awk
This's a test
10There are orange apple
# 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
$ awk -F '[ ,]''{print $1,$2,$5}' log.txt
---------------------------------------------2this test
3Are awk
This's a
10 There apple
用法三:
awk -v # 设置变量
实例:
$ awk -va=1'{print $1,$1+a}' log.txt
---------------------------------------------2334This's 1
10 11
$ awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt
---------------------------------------------
2 3 2s
3 4 3s
This's 1This'ss
10 11 10s
用法四:
awk -f {awk脚本}{文件名}
实例:
$ awk -f cal.awk log.txt
详细参见 http://www.runoob.com/linux/linux-comm-awk.html
【su命令】
Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
语法
su [-fmp][-c command][-s shell][--help][--version][-][USER [ARG]]
参数说明:
- -f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
- -m -p 或 --preserve-environment 执行 su 时不改变环境变数
- -c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
- -s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
- --help 显示说明文件
- --version 显示版本资讯
- - -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
- USER 欲变更的使用者帐号
- ARG 传入新的 shell 参数
实例
变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su -c ls root
变更帐号为 root 并传入 -f 参数给新执行的 shell
su root -f
变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)
su - clsung
切换用户
hnlinux@w3cschool.cc:~$ whoami //显示当前用户
hnlinux
hnlinux@w3cschool.cc:~$ pwd //显示当前目录/home/hnlinux
hnlinux@w3cschool.cc:~$ su root //切换到root用户密码:
root@w3cschool.cc:/home/hnlinux# whoami
root
root@w3cschool.cc:/home/hnlinux# pwd/home/hnlinux
切换用户,改变环境变量
hnlinux@w3cschool.cc:~$ whoami //显示当前用户
hnlinux
hnlinux@w3cschool.cc:~$ pwd //显示当前目录/home/hnlinux
hnlinux@w3cschool.cc:~$ su - root //切换到root用户密码:
root@w3cschool.cc:/home/hnlinux# whoami
root
root@w3cschool.cc:/home/hnlinux# pwd //显示当前目录/root
【ll命令】
ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。
Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便。
如果要使用此命令,可以作如下修改:
打开 ~/.bashrc
找到 #alias ll=’ls -l’,去掉前面的#就可以了。(关闭原来的终端才能使命令生效)
这样个人用户可以使用ll命令,当切换成超级用户后,使用ll命令时提示找不到命令,那是因为你只是修改了个人用户的配置,所以,切换成root后做相同的操作即可解决问题。
启示:我们可以通过修改~/.bashrc添加任何其他的命令别名。
ll命令结果说明
drwxr-xr-x 2 root root 48 2013-11-27 16:34 test/
第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。
这有十个格子可以添(具体程序实现时,实际上是十个bit位)。
第一个字母表示文件类型,
”-”,普通文件.
”d”目录,字母”d”,是dirtectory(目录)的缩写.
“l”符号链接。请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息.
“b”块设备文件。
“c”字符设备文件。
紧接着的3*3个字符分3组,各指示此文件的读、写、执行权限,对于owner、group、others而言。
因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):
rwx(Owner)r-x(Group)r-x(Other)
这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。
另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。
第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。
第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。
第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。
第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。
第六个栏位,表示最后一次修改时间。以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。
第七个栏位,表示文件名。我们可以用ls –a显示隐藏的文件名。
修改文件权限用,chmod命令
Linux常用命令4(grep、df、du、awk、su、ll)的更多相关文章
- linux常用命令:grep 命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- 【操作系统之五】Linux常用命令之grep
一.概念grep(Global search Regular Expression and Print out the line)强大的文本搜索工具,从文本文件或管道数据流中筛选匹配的行及数据,并把匹 ...
- Linux常用命令之-grep
简介 grep全称Global Regular Expression Print是一种强大的文本搜索工具,它能使用给定的正则表达式按行搜索文本输出,文件,目录等,统计并输出匹配的信息,grep在文本查 ...
- Linux常用命令之grep
标题:grep命令的使用 作用:grep可以解析一行文字,取得关键字,若该行存在关键字,就会整行列出. grep [-acinv] [--color=auto] '查找字符串' filename ...
- Linux 常用命令七 grep
一.grep命令 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜 ...
- Linux常用命令touch/grep/mkdir/rm/cat/find/cp/mv/tar/gzip等
Unix-->Linux(Ubuntu,Redhat,suse,fedora) 1. cd - :回到上次执行的那个目录(相当于“回看”的功能) 2. touch :创建一个文件,可以是任意后缀 ...
- Linux常用命令英文全称与中文解释 (pwd、su、df、du等)
https://blog.csdn.net/qq_40334837/article/details/83819735 Linux常用命令英文全称与中文解释 apt: Advanced Packagin ...
- linux 常用命令大全
linux 常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统 ...
- linux 常用命令及技巧
linux 常用命令及技巧 linux 常用命令及技巧:linux 常用命令总结: 一. 通用命令: 1. date :print or set the system date and time 2. ...
- Linux 常用命令使用方法大搜刮
Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入 ...
随机推荐
- A1016. Phone Bills
A long-distance telephone company charges its customers by the following rules: Making a long-distan ...
- 在kubernetes中运行单节点有状态MySQL应用
Deploy MySQL https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-applicati ...
- 理解 PHP 依赖注入
Laravel框架的依赖注入确实很强大,并且通过容器实现依赖注入可以有选择性的加载需要的服务,减少初始化框架的开销,下面是我在网上看到的一个帖子,写的很好拿来与大家分享,文章从开始按照传统的类设计数据 ...
- H5新特性之拖拽文件
H5新增了drag事件,在H5中拖拽是十分常见的. 可以拖拽的分为页面内的和页面外的 页面内的一般默认可以拖拽的是img和a标签 页面外的常指的是文件 上代码吧~ let zoom = documen ...
- promise用法详解
es6的promise可谓是异步书写的一大福音,过去异步js书写是函数嵌套函数的方式,promise出现后书写异步js代码就变得美观得多了 以前的写法:回调函数不停嵌套 ajax('/banners' ...
- python---RabbitMQ(2)exchange中订阅者模式fanout<广播>,(一对多,发布一条消息,多人同时接收)
fanout:广播:所有bind到此exchange的queue都可以接受到消息 生产者: # coding:utf8 # __author: Administrator # date: // # / ...
- 解决vue <router-link>在IE与火狐上点击失效(路由不跳转)问题
<router-link to="/GoAbroad"> </router-link> vue中的<router-link>这种声明式的路由方式 ...
- hbase记录-修改压缩格式
在业务空闲的时候修改压缩格式 先测试 ---测试表create 'test', { NAME => 'c',VERSIONS => 1}desc 'test'disable 'test'a ...
- dubbo面试问题
为什么用微服务: 为什么zookeeper能作为注册中心: 使用分布式碰到的bug, zookeeper有集群吗?怎么实现的: zookeeper宕机还能访问吗: 服务失效踢出zookeeper中临时 ...
- 六、uboot 代码流程分析---start.S
6.1 _start 入口函数 6.1.1 vectors.S (arch\arm\lib) 从上一节可以知道,uboot 的入口函数为 _start .此 函数定义在 vectors.S (arch ...