Linux命令 - 概述和示例

命令行是Linux最强大的功能之一。存在大量的Linux命令行工具,让您可以做几乎所有的事情...

命令行是Linux最强大的功能之一。 存在大量的Linux命令行工具,允许您在Linux PC上做几乎所有可以想到的工作。 但是,这通常会产生一个问题:使用这么多命令可以使用,您不知道在哪里开始学习,特别是在初学者时。

如果您正在面对这个问题,并且正在寻找一种简单的方式来开始在Linux中的命令行之旅,那么您将来到正确的地方,如本文所述,我们将向您介绍一些受欢迎的有用的Linux命令。 该文章的组织方式是通过一个易于理解的例子来快速了解每个命令的作用。 要了解有关命令的更多信息,请在其说明的末尾单击“更多...”链接。

Adduser / Addgroup

adduseraddgroup命令可以分别向系统添加新的用户和组。 以下是adduser的示例:

$ sudo adduser testuser
Adding user `testuser' ...
Adding new group `testuser' (1003) ...
Adding new user `testuser' (1003) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:

arch命令用于打印机器的架构。 例如:

$ arch
i686

不知道'i686'是什么意思? 在这里

Cal / Ncal

calncal命令在输出中显示一个日历。

$ cal
March 2017
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

$ ncal
March 2017
Su 5 12 19 26
Mo 6 13 20 27
Tu 7 14 21 28
We 1 8 15 22 29
Th 2 9 16 23 30
Fr 3 10 17 24 31
Sa 4 11 18 25

cal和ncal命令的更多示例:

cat命令允许您连接文件或标准输入上提供的数据,并在标准输出上打印。 以外行术语,命令将打印提供给它的信息,无论是通过stdin还是以文件的形式。

$ cat test.txt
Hello...how are you?

光盘

cd命令用于更改用户当前的工作目录。

$ cd /home/himanshu/

Chgrp

chgrp命令允许您更改文件的组所有权。 该命令期望新组名称作为其第一个参数,文件名称(其组正在更改)作为第二个参数。

$ chgrp howtoing test.txt

Chmod

chmod命令允许您更改文件的访问权限。 例如,如果您有一个二进制文件(如helloWorld),并且要使其可执行,则可以运行以下命令:

chmod +x helloWorld

选择

chown命令允许您更改文件的所有权和组。 例如,要将文件test.txt的所有者更改为root,并将其组设为root,请执行以下命令:

chown root:root test.txt

Cksum

cksum命令打印输入文件的CRC校验和字节数。

$ cksum test.txt
3741370333 20 test.txt

不知道校验和是什么? 在这里

明确

清除命令用于清除终端屏幕。

$ clear

Cmp

cmp命令用于对两个文件进行逐字节比较。

$ cmp file1 file2
file1 file2 differ: byte 1, line 1

通讯

comm命令用于逐行比较两个排序的文件。 例如,如果'file1'包含数字1-5,'file2'包含数字4-8,这里是'comm'命令在这种情况下产生的:

$ comm file1 file2
1
2
3
                     4
                     5
         6
         7
         8

Cp

cp命令用于复制文件和目录。

$ cp test.txt /home//himanshu/Desktop/

Csplit

csplit命令可以将文件拆分成由上下文行确定的部分。 例如,要将文件拆分为两个,第一部分包含“n-1”行,第二部分包含其余部分,请使用以下命令:

$ csplit file1 [n]

这两个部分分别保存为名称为“xx00”和“xx01”的文件。

日期

date命令可用于打印(甚至设置)系统日期和时间。

$ date
Tue Feb 28 17:14:57 IST 2017

Dd

dd命令根据操作数复制文件,转换和格式化。 例如,以下命令创建一个/ dev / sda分区的映像。

dd if=/dev/sda of=/tmp/dev-sda-part.img

Df

df命令显示输出中文件系统磁盘空间使用情况。

$ df /dev/sda1
Filesystem 1K-blocks Used     Available Use% Mounted on
/dev/sda1  74985616  48138832 23014620  68%     /

差异

diff命令允许您逐行比较两个文件。

$ diff file1 file2

Diff3

diff3命令,顾名思义,允许您逐行比较三个文件。

diff3 file1 file2 file3

目录

dir命令列出目录内容。 例如:

$ dir
test1 test2 test.7z test.zip

名称

dirname命令从文件名/路径中删除最后一个组件。 按照外行人士的说法,您可以将其视为一种工具,例如, 从文件的绝对路径中删除文件名。

$ dirname /home/himanshu/file1
/home/himanshu

Dmidecode

dmidecode命令以人类可读的格式打印系统的DMI(又称SMBIOS)表内容。

$ sudo dmidecode
# dmidecode 2.12
SMBIOS 2.6 present.
50 structures occupying 2056 bytes.
Table at 0x000FCCA0.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: American Megatrends Inc.
Version: 080015
Release Date: 08/22/2011
...
...
...

du命令显示目录中存在的文件及其子目录的磁盘使用情况。

$ du /home/himanshu/Desktop/
92 /home/himanshu/Desktop/Downloads/meld/meld/ui
88 /home/himanshu/Desktop/Downloads/meld/meld/vc
56 /home/himanshu/Desktop/Downloads/meld/meld/matchers
12 /home/himanshu/Desktop/Downloads/meld/meld/__pycache__
688 /home/himanshu/Desktop/Downloads/meld/meld
16 /home/himanshu/Desktop/Downloads/meld/bin
328 /home/himanshu/Desktop/Downloads/meld/data/ui
52 /home/himanshu/Desktop/Downloads/meld/data/icons/svg

echo

echo命令显示给它的任何输入文本。

$ echo hello hi
hello hi

Ed

ed是一个面向行的文本编辑器。

$ ed

喷射

弹出命令可以弹出可移动媒体(通常是CD ROM或软盘)

$ eject

环境

env命令不仅显示当前环境,还可以编辑它。

$ env

出口

exit命令使shell退出。

$ exit

扩大

扩展命令将输入​​文件中存在的选项转换为空格,并将文件内容写入标准输出。

$ expand file1

费用

expr命令用于计算表达式。 例如:

$ expr 1 + 2
3

因子

因子命令打印输入数字的素数。

$ factor 135
135: 3 3 3 5

Fgrep

当使用-F命令行选项执行时, fgrep命令等同于grep命令。 该工具也被称为固定或快速grep,因为它不将正则表达式元字符视为特殊的,而是将信息作为简单字符串处理。

例如,如果要在文件中搜索点(。),并且不希望grep将其解释为通配符,请按以下方式使用fgrep:

$ fgrep "." [file-name]

find命令允许您搜索目录中的文件及其子目录。

$ find test*
test
test1
test2
test.7z
test.c
test.txt

Linux查找命令的更多示例:

Fmt

fmt是一个简单的最佳文本格式化程序。 它重新格式化传递给它的文件中的每个段落,并将文件内容写入标准输出。

$ fmt file1

折叠命令将每个输入行包装以适应指定的宽度。

$ fold -w 10
Hi my name is himanshu Arora

Hi my name
is himans
hu Arora

自由

free命令显示系统中可用和使用的内存量。

$ free
       total           used  free   shared buffers cached
Mem:   1800032       1355288 444744 79440   9068   216236
-/+ buffers/cache: 1129984 670048
Swap:  1832956      995076  837880

Grep

grep命令在文件(或文件)中搜索指定的模式,并在包含该模式的输出行中显示。

$ grep Hello test.txt
Hello...how are you?

更多关于Linux Grep命令的教程和示例:

团体

groups命令显示用户所在组的名称。

$ groups himanshu
himanshu : himanshu adm cdrom sudo dip plugdev lpadmin sambashare

Gzip

gzip命令压缩输入文件,将文件替换为.gz扩展名。

$ gzip file1

Gunzip

使用gzip命令压缩的文件可以使用gunzip命令恢复到原始格式。

$ gunzip file1.gz

head命令将文件的前10行显示为标准输出

$ head CHANGELOG.txt
BEEBEEP (Secure Lan Messanger)
BeeBEEP
2.0.4
- Some GUI improvements (new icons, file sharing tree load faster)
- Always Beep on new message arrived (option)
- Favorite users (right click on user and enable star button) is on top of the list
- improved group usability
- Offline users can be removed from list (right click on an offline user in list and then remove)
- Clear all files shared (option)
- Load minimized at startup (option)

主机名

hostname命令不仅显示系统的主机名,还可以设置它。

$ hostname
himanshu-desktop

ID

id命令打印当前用户或指定用户名的用户和组信息。

$ id himanshu
uid=1000(himanshu) gid=1000(himanshu) groups=1000(himanshu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)

kill命令,顾名思义,通过向其发送TERM信号来帮助用户终止进程。

$ kill [process-id]

全杀

killall命令允许您按名称杀死一个进程。 不同于kill - 这需要ID的进程被杀死 - killall只需要进程的名称。

killall nautilus

持续

最后一个命令显示上次登录用户的列表。

$ last
himanshu pts/11 :0 Thu Mar 2 09:46 still logged in
himanshu pts/1 :0 Thu Mar 2 09:46 still logged in
himanshu :0 :0 Thu Mar 2 09:42 still logged in
reboot system boot 4.4.0-62-generic Thu Mar 2 09:41 - 10:36 (00:54)
himanshu pts/14 :0 Wed Mar 1 15:17 - 15:52 (00:35)
himanshu pts/13 :0 Wed Mar 1 14:40 - down (08:06)

Ldd

ldd命令以共享库的输出依赖关系显示。

$ ldd /lib/i386-linux-gnu/libcrypt-2.19.so
linux-gate.so.1 => (0xb77df000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb75da000)
/lib/ld-linux.so.2 (0x80088000)

ln命令用于创建文件之间的链接。 例如,以下命令将为名为'test.txt'的文件创建一个名为“lnk”的链接:

$ ln test.txt lnk

定位

locate命令可以帮助用户按名称查找文件。

$ locate [file-name]

日志名称

logname命令打印当前用户的用户名。

$ logname
himanshu

Ls

ls命令列出输出中目录的内容。

$ ls progress
capture.png hlist.o progress progress.h sizes.c
hlist.c LICENSE progress.1 progress.o sizes.h
hlist.h Makefile progress.c README.md sizes.o

LS命令的更多示例:

Lshw

lshw命令提取并显示有关机器硬件配置的详细信息。

$ sudo lshw
[sudo] password for himanshu:
himanshu-desktop
description: Desktop Computer
product: To Be Filled By O.E.M. (To Be Filled By O.E.M.)
vendor: To Be Filled By O.E.M.
version: To Be Filled By O.E.M.
serial: To Be Filled By O.E.M.
width: 32 bits
capabilities: smbios-2.6 dmi-2.6 smp-1.4 smp
...
...
..

Lscpu

lscpu命令显示输出系统的CPU体系结构信息(例如CPU数量,线程数,内核数,socket数等)。

$ lscpu
Architecture: i686
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
Vendor ID: AuthenticAMD
CPU family: 16
Model: 6
Stepping: 3
CPU MHz: 2800.234
BogoMIPS: 5600.46
Virtualization: AMD-V
L1d cache: 64K
L1i cache: 64K
L2 cache: 1024K

man允许您访问命令,程序/实用程序以及函数的参考手册。

$ man ls

Md5sum

md5sum命令可以打印或检查MD5 (128位)校验和。

$ md5sum test.txt
ac34b1f34803a6691ff8b732bb97fbba test.txt

Mkdir

mkdir命令允许您创建目录。

$ mkdir [dir-name]

Mkfifo

mkfifo命令用于创建命名管道。

$ mkfifo [pipe-name]

更多

更多的是基本上是一次筛选通过文本一个屏幕。

$ cat [large-file] | more

Mv

mv命令允许您将文件从一个目录移动到另一个目录,或重命名它。

$ mv test.txt /home/himanshu/Desktop/ 

很好

nice命令允许您运行具有修改的调度优先级的程序。

$ nice -n[niceness-value] [program]

$ nice -n15 vim

Nl

nl命令将文件的内容写入输出,并将每行添加到行号。

$ nl file1
1 Hi
2 How are you
3 Bye

Nm

nm命令用于显示对象文件中的符号。

$ nm test
0804a020 B __bss_start
0804841d T compare
0804a020 b completed.6591
0804a018 D __data_start
0804a018 W data_start
08048360 t deregister_tm_clones
080483d0 t __do_global_dtors_aux
08049f0c t __do_global_dtors_aux_fini_array_entry
0804a01c D __dso_handle
08049f14 d _DYNAMIC
0804a020 D _edata
0804a024 B _end
080484e4 T _fini
080484f8 R _fp_hw
080483f0 t frame_dummy
...
...
...

Nproc

nproc命令显示当前进程可用的处理单元数。

$ nproc
1

奥德

od命令可以转储八进制文件以及其他一些格式。

$ od /bin/ls
0000000 042577 043114 000401 000001 000000 000000 000000 000000
0000020 000002 000003 000001 000000 140101 004004 000064 000000
0000040 122104 000001 000000 000000 000064 000040 000011 000050
0000060 000034 000033 000006 000000 000064 000000 100064 004004
0000100 100064 004004 000440 000000 000440 000000 000005 000000
0000120 000004 000000 000003 000000 000524 000000 100524 004004
...
...
...

密码

passwd命令用于更改用户帐户的密码

$ passwd himanshu
Changing password for himanshu.
(current) UNIX password:

粘贴命令允许您合并文件行。 例如,如果'file1'包含以下行:

$ cat file1
Hi
My name is
Himanshu
Arora
I
Am
a
Linux researcher
and tutorial
writer

然后,以下“粘贴”命令将加入文件的所有行:

$ paste -s file1
Hi My name is Himanshu Arora I Am a Linux researcher and tutorial writer

Pidof

pidof命令为您提供正在运行的程序/进程的进程ID。

$ pidof nautilus
2714

ping命令用于检查系统是否启动并响应。 它向网络主机发送ICMP ECHO_REQUEST。

$ ping howtoing.com
PING howtoing.com (104.24.0.68) 56(84) bytes of data.
64 bytes from 104.24.0.68: icmp_seq=1 ttl=58 time=47.3 ms
64 bytes from 104.24.0.68: icmp_seq=2 ttl=58 time=51.9 ms
64 bytes from 104.24.0.68: icmp_seq=3 ttl=58 time=57.4 ms

诗篇

ps命令显示关于当前活动进程的信息(以快照的形式)。

$ ps
PID TTY TIME CMD
4537 pts/1 00:00:00 bash
20592 pts/1 00:00:00 ps

Pstree

pstree命令以树形式生成有关运行进程的信息。

$ pstree
init???ModemManager???2*[{ModemManager}]
??NetworkManager???dhclient
? ??dnsmasq
? ??3*[{NetworkManager}]
??accounts-daemon???2*[{accounts-daemon}]
??acpid
??atop

普华永道

pwd命令显示当前/工作目录的名称。

$ pwd
/home/himanshu

Rm

rm命令允许您删除文件和/或目录。

$ rm [file-name]

Rmdir

rmdir命令允许您删除空目录。

$ rmdir [dir-name]

scp命令允许您在网络上的系统之间安全地复制文件。

$ scp [name-and-path-of-file-to-transfer] [user]@[host]:[dest-path]

Sdiff

sdiff命令允许您执行并行合并两个文件之间的差异。

$ sdiff file1 file2

塞德

sed基本上是一个流编辑器,允许用户在输入流(文件或管道的输入)上执行基本的文本转换。

$ echo "Welcome to Howtoforge" | sed -e 's/Howtoforge/Howtoing/g'
Welcome to Howtoing

Seq

seq命令将打印从FIRST到LAST的数字,以INCREMENT为单位。 例如,如果FIRST为1,则LAST为10,INCREMENT为2,则此命令将生成此输出:

$ seq 1 2 10
1
3
5
7
9

Sha1sum

sha1sum命令用于打印或检查SHA1(160位)校验和。

$ sha1sum test.txt
955e48dfc9256866b3e5138fcea5ea0406105e68 test.txt

关掉

shutdown命令可以让用户以安全的方式关闭系统。

$ shutdown

尺寸

size命令列出了对象或归档文件的部分大小以及总大小。

$ size test
text data bss dec hex filename
1204 280 4 1488 5d0 test

睡觉

sleep命令允许用户在指定的时间内指定延迟。 您可以使用它来延迟操作,如:

$ sleep 10; shutdown

分类

sort命令允许您对文本文件的行进行排序。 例如,如果'file2'包含以下名称:

$ cat file2
zeus
kyan
sam
adam

然后运行sort命令会产生以下输出:

$ sort file2
adam
kyan
sam
zeus

分裂

拆分命令,顾名思义,将文件拆分成固定大小的碎片。 默认情况下,会生成名为xaa,xab和xac的文件。

$ split [file-name]

Ssh

ssh基本上是OpenSSH的SSH客户端。 它通过不安全的网络在两个不受信任的主机之间提供安全的加密通信。

$ ssh [user-name]@[remote-server]

统计

stat命令显示与文件或文件系统相关的状态。

$ stat test.txt
File: ‘test.txt’
Size: 20 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 284762 Links: 2
Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-03-03 12:41:27.791206947 +0530
Modify: 2017-02-28 16:05:15.952472926 +0530
Change: 2017-03-02 11:10:00.028548636 +0530
Birth: -

字符串命令显示在至少4个字符长的输出可打印字符序列中。 它用于在二进制文件中搜索可打印的文本(字符串)。 例如,当二进制可执行文件“test”作为该命令的参数传递时,产生以下输出:

$ strings test
/lib/ld-linux.so.2
libc.so.6
_IO_stdin_used
puts
__libc_start_main
__gmon_start__
GLIBC_2.0
PTRh
QVhI
[^_]
EQUAL
;*2$"
GCC: (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
....
....
....

su命令允许您更改用户身份。 大多数情况下,此命令用于成为root用户或超级用户。

$ su [user-name]

苏多

sudo命令允许允许的用户作为另一个用户(通常是root用户或超级用户)运行命令。

$ sudo [command]

sum命令打印每个输入文件的校验和和块计数。

$ sum readme.txt
45252 5

Tac

tac命令反向打印输入文件。 在功能方面,它与命令所做的相反。

$ cat file2
zeus
kyan
sam
adam

$ tac file2
adam
sam
kyan
zeus

尾巴

尾部命令显示文件的最后10行。

$ tail [file-name]

谈论

通话命令让用户互相交谈。

$ talk [user-name]

柏油

tar是一个归档实用程序,可以让您创建并提取归档文件。 例如,要从文件'foo'和'bar'创建archive.tar,请使用以下命令:

tar -cf archive.tar foo bar

更多...

三通

tee命令从标准输入读取并写入标准输出以及文件。

$ uname | tee file2
Linux

$ cat file2
Linux

测试

测试命令检查文件类型并比较值。 例如,您可以通过以下方式使用它:

$ test 7 -gt 5 && echo "true"
true

时间

time命令用于汇总程序的系统资源使用情况。 例如:

$ time ping google.com
PING google.com (216.58.220.206) 56(84) bytes of data.
64 bytes from del01s08-in-f14.1e100.net (216.58.220.206): icmp_seq=1 ttl=52 time=44.2 ms
^C
--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 44.288/44.288/44.288/0.000 ms
real 0m0.676s
user 0m0.000s
sys 0m0.000s

最佳

top命令给出了正在运行的系统的动态实时视图(根据其进程)。 例如:

$ top

Touch

Touch命令允许您更改文件时间戳(访问和修改时间)。 当不存在的文件的名称作为参数传递时,该文件将被创建。

$ touch [file-name]

Tr

tr命令可用于翻译/压缩/删除字符。 例如,以下是如何使用它将小写字符转换为大写字母:

$ echo 'howtoing' | tr "[:lower:]" "[:upper:]"
HOWTOFORGE

Tty

tty命令打印连接到标准输入的终端的文件名。

$ tty
/dev/pts/10

昵称

uname命令打印某些系统信息。

$ uname -a
Linux himanshu-desktop 4.4.0-62-generic #83~14.04.1-Ubuntu SMP Wed Jan 18 18:10:26 UTC 2017 i686 athlon i686 GNU/Linux

Uniq

Uniq命令用于报告或省略重复的行。 例如,如果'file2'包含以下数据:

$ cat file2
Welcome to Howtoing
Welcome to Howtoing
A Linux tutorial website
Thanks

然后可以使用uniq命令省略重复的行。

$ uniq file2
Welcome to Howtoing
A Linux tutorial website
Thanks

Unexpand

unexpand命令将输入​​文件中存在的空格转换为标签,并将文件内容写入标准输出。

$ unexpand file1

正常运行时间

uptime命令指示系统运行了多长时间。

$ uptime
15:59:59 up 6:20, 4 users, load average: 0.81, 0.92, 0.82

用户

users命令显示用户当前登录到当前主机的用户名。

$ users
himanshu himanshu himanshu himanshu

Vdir

vdir命令列出目录的内容信息(默认为当前目录)。

$ vdir
total 1088
-rw-rw-r-- 1 himanshu himanshu 4850 May 20 2015 test_backup.pdf
-rw-rw-r-- 1 himanshu himanshu 2082 May 28 2015 test-filled.pdf
-rw-rw-r-- 1 himanshu himanshu 7101 May 28 2015 test.pdf 

Vim

vim基本上是一个文本/编程编辑器。 名称'vim'代表Vi IMproved,因为编辑器向上兼容Vi编辑器。

$ vim [file-name]

W

w命令显示有关当前在机器上的用户及其进程的信息。

$ w
16:18:07 up 6:39, 4 users, load average: 0.07, 0.32, 0.53
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
himanshu :0 :0 09:39 ?xdm? 1:08m 0.25s init --user
himanshu pts/0 :0 09:41 6:36m 0.84s 7.84s gnome-terminal
himanshu pts/10 :0 14:51 0.00s 0.16s 0.00s w
himanshu pts/11 :0 15:41 35:19 0.05s 0.05s bash

wall命令允许您向当前登录的其他用户写入消息并发送消息。

$ wall [your-message]

watch命令可用于监视程序的输出。 它反复运行程序,显示其输出和错误。 例如:

$ watch date

厕所

wc命令为文件打印换行符,字数和字节数。

$ wc test.txt
0 3 20 test.txt

什么是

whatis命令显示单行手册页描述。

$ whatis mkdir
mkdir (1) - make directories
mkdir (2) - create a directory
mkdir (1posix) - make directories

哪一个

哪个命令基本上可以让你找到一个命令 - 文件和被执行的文件的路径。 例如:

$ which date
/bin/date

who命令显示谁登录。

$ who
himanshu :0 2017-03-03 09:39 (:0)
himanshu pts/0 2017-03-03 09:41 (:0)
himanshu pts/10 2017-03-03 14:51 (:0)
himanshu pts/11 2017-03-03 15:41 (:0)

哪里

whereis命令在命令的二进制,源和手动页面文件的输出位置中显示。

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1posix.gz /usr/share/man/man1/ls.1.gz

我是谁

whoami命令打印当前用户的有效用户ID。

$ whoami
himanshu

Xargs

xargs命令从标准输入构建并执行命令行。 以外行的术语,它从stdin读取项目,并执行传递给它作为参数的命令。 例如,下面是如何使用xargs在其名称作为输入传递给它的文件中找到“Linux”一词。

$ xargs grep "Linux"
file1
file2
file3
file1:Linux researcher
file2:A Linux tutorial website
file3:Linux is opensource

更多...

Yes命令重复输出一个字符串直到被杀死。

$ yes [string]