【建议收藏】Linux工作/面试常用命令集锦(中)

简介: 管道符“|”将两个命令隔开,左边命令的输出作为右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推

1.14 tree

Linux tree命令用于以树状图列出目录的内容。

执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

语法

tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
参数说明:
-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I<范本样式> 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

实例

以树状图列出当前目录结构。可直接使用如下命令:

tree

13.png

2 磁盘管理

2.1 pwd

显示工作目录

执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

2.2 cd

切换当前工作目录至 dirName

若目录名称省略,则变换 home 目录

2.3 mkdir

建立名称为 dirName 子目录

  • -p 确保目录名称存在,不存在的就建一个

2.4 ls

显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

ls [-alrtAFR] [name...]

-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-h 用"K","M","G"来显示文件和目录的大小。
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 = ll
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出

列出根目录()下的所有目录:

# ls /
bin               dev   lib         media  net   root     srv  upload  www
boot              etc   lib64       misc   opt   sbin     sys  usr
home  lost+found  mnt    proc  selinux  tmp  var

列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 :

ls -ltr s*

将 /bin 目录以下所有目录及文件详细资料列出 :

ls -lR /bin

列出目前工作目录下所有文件及目录;目录于名称后加 “/”, 可执行档于名称后加 “*” :

ls -AF


find / -name libNativeMethod.so

等同 ll |grep someFile

2.5 df

Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。

语法

df [选项]... [FILE]...
文件-a, --all 包含所有的具有 0 Blocks 的文件系统
文件--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
文件-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
文件-i, --inodes 列出 inode 资讯,不列出已使用 block
文件-k, --kilobytes 就像是 --block-size=1024
文件-l, --local 限制列出的文件结构
文件-m, --megabytes 就像 --block-size=1048576
文件--no-sync 取得资讯前不 sync (预设值)
文件-P, --portability 使用 POSIX 输出格式
文件--sync 在取得资讯前 sync
文件-t, --type=TYPE 限制列出文件系统的 TYPE
文件-T, --print-type 显示文件系统的形式
文件-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE
文件-v (忽略)
文件--help 显示这个帮手并且离开
文件--version 输出版本资讯并且离开

实例

  • 显示文件系统的磁盘使用情况统计:
  • image.png
  • 第一列指定文件系统的名称

第二列指定一个特定的文件系统1K-块 1K是1024字节为单位的总内存。用和可用列正在使用中,分别指定的内存量。

使用列指定使用的内存的百分比,而最后一栏"安装在"指定的文件系统的挂载点。


用一个-i选项的df命令的输出显示inode信息而非块使用量。

image.png

显示所有的信息:

image.png

我们看到输出的末尾,包含一个额外的行,显示总的每一列。

-h选项,通过它可以产生可读的格式df命令的输出:

image.png

2.6 mount

用于挂载Linux系统外的文件。

语法

mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir

参数

-V:显示程序版本
-h:显示辅助讯息
-v:显示较讯息,通常和 -f 用来除错。
-a:将 /etc/fstab 中定义的所有档案系统挂上。
-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
-s-r:等于 -o ro
-w:等于 -o rw
-L:将含有特定标签的硬盘分割挂上。
-U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
-o sync:在同步模式下执行。
-o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
-o auto、-o noauto:打开/关闭自动挂上模式。
-o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
-o dev、-o nodev-o exec、-o noexec允许执行档被执行。
-o suid、-o nosuid:
允许执行档在 root 权限下执行。
-o user、-o nouser:使用者可以执行 mount/umount 的动作。
-o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
-o ro:用唯读模式挂上。
-o rw:用可读写模式挂上。
-o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。

实例

将 /dev/hda1 挂在 /mnt 之下。

#mount /dev/hda1 /mnt

将 /dev/hda1 用唯读模式挂在 /mnt 之下。

#mount -o ro /dev/hda1 /mnt

将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom之下。用这种方法可以将一般网络上可以找到的 Linux 光 碟 ISO 档在不烧录成光碟的情况下检视其内容。

#mount -o loop /tmp/image.iso /mnt/cdrom

3 文档编辑

3.1 grep

查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式

预设grep指令会把含有范本样式的那一列显示出来。

若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。

-r或–recursive 此参数的效果和指定"-d recurse"参数相同。

-v或–revert-match 反转


反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

grep -v test *test*


实例

1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件  
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行 

2、以递归的方式查找符合条件的文件

例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi”  
#下包含“update”的文件  
/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)  
Rather than  
/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of  
IO.) Rather than  
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update 

3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行  
testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux is a free unix-type opterating system.  

3.2 ag

这里隆重介绍该命令比grep快千百万倍!闪电级别迅速搜索!

类似ack, grep的工具, 它来在文件中搜索相应关键字。

  • 它比ack还要快 (和grep不在一个数量级上)
  • 它会忽略.gitignore和.hgignore中的匹配文件

如果有你想忽略的文件,你需要将(congh .min.js cough*)加入到.ignore文件中

它的命令名称更短:-)

在ubuntu下,我们可以通过sudo apt-get install silversearcher-ag

安装

使用

关于文本搜索,最常见的用法是:

ag "string-to-search"

ag 会遍历当前目录下的文本文件,在每个文件的每一行中查找 “string-to-search” 这种模式,把文件名、行号和匹配的内容高亮显示出来。由于模式可以是一个正则表达式,使得搜索功能极为强大。


如果想在某个指定的目录下搜索,或只搜索某个文件的内容,在搜索的字符串后面加上路径就行:

ag "string-to-search" /path/to/directory

除此以外,ag -G 提供了强大的过滤功能,使搜索在特定的文件中进行。下面的例子只搜索 java 类型的文件:

ag -G ".+\.java" "string-to-search" /path/to/directory

ag 根据输入智能判定大小写的匹配方式。如果查询的字符串只含有小写字符,使用大小写不敏感的匹配方式;如果出现了大写字符,就改为大小写敏感的匹配方式。如果想要直接使用不敏感的匹配方式,请用 ag -i 选项。

另一个很有用的选项是 ag -w 的全词匹配,它要求匹配的字符串前后都需要有合适的分隔符。


如果想要搜索不满足特定模式的行,用 ag -v 对搜索结果取反。


最后,如果只关心有哪些文件匹配(而不在意文件的内容),可以用 ag -l 显示有匹配的文件名,类似的 ag -L 显示没有任何匹配的文件名。

4 系统管理

4.1 groupadd

创建一个新的工作组,新工作组的信息将被添加到系统文件中

  • 语法
    groupadd(选项)(参数)
g:指定新建工作组的[id](http://man.linuxde.net/id "id命令");
-r:创建系统工作组,系统工作组的组ID小于500;
-K:覆盖配置文件“/ect/[login](http://man.linuxde.net/login "login命令").defs”;
-o:允许添加组ID号不唯一的工作组。</pre>
  • 参数
    组名:指定新建工作组的组名
  • 实例
    建立一个新组,并设置组ID加入系统
groupadd -g 344 linuxde

此时在/etc/passwd文件中产生一个组ID(GID)是344的项目

4.2 ps

显示当前进程 (process) 的状态

  • -A 显示进程信息


  • image.png
  • -u user 显示指定用户信息
  • image.png
  • -ef 显示所有命令,连带命令行
  • image.png
  • pstree |grep java

    查看进程树

image.png

4.3 ifconfig

IP 地址配置,可以使用 setup 命令启动字符界面来配置

4.4 uname

用于显示系统信息

uname可显示电脑以及操作系统的相关信息。

  • 语法
uname [-amnrsv][--help][--version]
  • 参数说明:
-a或--all  显示全部的信息。
-m或--machine  显示电脑类型。
-n或-nodename  显示在网络上的主机名称。
-r或--release  显示操作系统的发行编号。
-s或--sysname  显示操作系统名称。
-v  显示操作系统的版本。
--help  显示帮助。
--version  显示版本信息。

实例

  • 显示系统信息
  • image.png
  • 显示计算机类型
    image.png
  • 显示计算机名
    image.png
  • 显示操作系统发行编号
    image.png
  • 显示操作系统名称
    image.png
  • 显示系统时间
  • image.png

4.5 adduser

用于新增使用者帐号或更新预设的使用者资料。

adduser 与 useradd 指令为同一指令(经由符号连结 symbolic link)。

使用权限:系统管理员。

adduser是增加使用者。相对的,也有删除使用者的指令,userdel。语法:userdel [login ID]

参数

参数说明:

  • -c comment 新使用者位于密码档(通常是 /etc/passwd)的注解资料
  • -d home_dir 设定使用者的家目录为 home_dir ,预设值为预设的 home 后面加上使用者帐号 loginid
  • -e expire_date 设定此帐号的使用期限(格式为 YYYY-MM-DD),预设值为永久有效
  • -f inactive_time 范例:

实例

添加一个一般用户

# useradd kk //添加用户kk

为添加的用户指定相应的用户组

# useradd -g root kk //添加用户kk,并指定用户所在的组为root用户组

创建一个系统用户

# useradd -r kk //创建一个系统用户kk

为新添加的用户指定/home目录

# useradd-d /home/myf kk //新添加用户kk,其home目录为/home/myf
//当用户名kk登录主机时,系统进入的默认目录为/home/myf

rpm -aq|grep php

查看安装介质

grep someText *

在当前目录所有文本中查找

#env

环境配置,相当 window 下 set

env |grep PATH

查看环境变量

export

相当于 set classpath

echo

输出变量名

Linux 查看端口占用

lsof

lsof(list open files)是一个列出当前系统打开文件的工具.

  • 语法
  • lsof 查看端口占用语法格式:
lsof -i:端口号
  • 实例
    查看服务器 8000 端口的占用情况:

netstat

  • 查看端口
  • image.png

mv

用来为文件或目录改名、或将文件或目录移入其它位置。

语法

mv [options] source dest

mv [options] source... directory

参数说明:

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;

mv参数设置与运行结果

mv 文件名 文件名 :将源文件名改为目标文件名

mv 文件名 目录名 :将文件移动到目标目录

mv 目录名 目录名 :目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名

mv 目录名 文件名 :出错

实例

将文件 aaa 更名为 bbb :

mv aaa bbb

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。

mv info/ logs

再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:

$ mv /usr/student/* .

rm -r

递归删除, -f 表示 force

somefile

清空文件内容

which java

查看 java 进程对应的目录

who

显示当前用户

users

显示当前会话

zip -r filename.zip filesdir

某个文件夹打 zip 包

unzip somefile.zip

解压 zip 文档到当前目录

gunzip somefile.cpio.gz

解压 .gz

cpio -idmv < somefile.cpio

CPIO 操作

ps auxwww|sort -n -r -k 5|head -5

按资源占用情况来排序,第一个 5 表示第几列,第二个 5 表示前几位

hostname -i

显示本机机器名,添加 i ,显示 etc/hosts 对应 ip 地址

rpm

rpm -ivh some.rpm

安装软件

rpm -Uvh some.rpm

更新软件

rpm -qa |grep somesoftName

是否已安装某软件

目录
相关文章
|
3天前
|
监控 Linux Perl
【专栏】Linux 命令小技巧:显示文件指定行的内容
【4月更文挑战第28天】本文介绍了Linux中显示文件指定行内容的方法,包括使用`head`和`tail`命令显示文件头尾部分,利用`sed`的行号指定功能以及`awk`处理文本数据。文章还列举了在代码审查、日志分析和文本处理中的应用场景,并提醒注意文件编码、行号准确性及命令组合使用。通过练习和实践,可以提升Linux文本文件处理的效率。
|
3天前
|
运维 网络协议 Linux
【专栏】运维工程师工作时最常用的 20 个 Linux 命令有哪些?建议收藏
【4月更文挑战第28天】本文介绍了运维工程师常用的20个Linux命令,包括`ls`、`cd`、`pwd`、`mkdir`、`rm`、`cp`、`mv`、`cat`、`more`、`less`、`head`、`tail`、`grep`、`find`、`chmod`、`chown`、`chgrp`、`ps`、`top`和`ifconfig`,帮助提升工作效率。此外,还提到了其他常用的命令如`df`、`free`、`tar`、`ssh`、`scp`、`ping`、`netstat`、`iptables`、`systemctl`、`hostname`等,建议运维人员掌握以应对各种运维场景。
|
1天前
|
存储 Linux Shell
linux课程第二课------命令的简单的介绍2
linux课程第二课------命令的简单的介绍2
|
1天前
|
JSON 网络协议 Linux
Linux ip命令:网络的瑞士军刀
【4月更文挑战第25天】
7 1
|
1天前
|
安全 Linux C语言
linux课程第一课------命令的简单的介绍
linux课程第一课------命令的简单的介绍
|
1天前
|
NoSQL Linux Shell
2.Docker常用命令(linux)
2.Docker常用命令(linux)
|
1天前
|
Linux
|
1天前
|
Linux Shell 开发工具
【Linux】:文本编辑与输出命令 轻松上手nano、echo和cat
【Linux】:文本编辑与输出命令 轻松上手nano、echo和cat
9 0
|
2天前
|
Linux 数据安全/隐私保护
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)(下)
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)
14 2
|
2天前
|
Linux Shell Python
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)(上)
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)
13 2