摘要
- BASIC Commands
- Learn By Example
用途分类法
软件信息
1 | $ uname -a |
硬件信息
1 | $ arch |
Linux Commands
原文:https://www.howtoforge.com/linux-commands/
本文的特点是非常简洁,将繁杂的Linux命令行筛选出100条左右,非常适合入门学习。
此外,将领域知识以“条目+示例”的方式来整理,类似编字典一样,在编辑的过程中可以促进学习者加深认识,也方便日后持续改进(增加注解、参考文献、索引等),是一种不错的学习方法。
最后,整理这些命令行的时候,我体会到操作系统最重要的工作实际就是对文件的管理,创建、移动、查看、编辑、销毁、检索,都是围绕文件的操作,事实上也是实际工作中使用最频繁的需求。对开发者来说,以Linux命令行为模版,命名风格、人机交互、小而美的实现方式,促进自己在其它领域的应用、提高大有裨益。
Adduser/Addgroup
The adduser and addgroup commands lets you add a new user and group to a system, respectively. Here’s an example for adduser:
1 | $ sudo adduser testuser |
Arch
The arch command is used to print the machine’s architecture. For example:
1 | $ arch |
Cal/Ncal
The cal and ncal commands display a calendar in the output.
1 | $ cal |
Cat
分类:文件管理;查看文件内容
The cat command allows you to concatenate files, or data provided on standard input, and print it on the standard output. In layman terms, the command prints the information provided to it, whether through stdin or in the form a file.
1 | $ cat test.txt |
Cd
分类:文件管理;切换工作目录
The cd command is used to change user’s present working directory.
1 | $ cd /home/himanshu/ |
Chgrp
分类:文件管理、权限管理;切换文件所属组
The chgrp command allows you to change the group ownership of a file. The command expects new group name as its first argument and the name of file (whose group is being changed) as second argument.
1 | $ chgrp howtoforge test.txt |
Chmod
分类:文件管理、权限管理;切换文件执行权限
The chmod command lets you change access permissions for a file. For example, if you have a binary file (say helloWorld), and you want to make it executable, you can run the following command:
1 | chmod +x helloWorld |
Chown
分类:文件管理、权限管理;切换文件所有者
The chown command allows you to change the ownership and group of a file. For example, to change the owner of a file test.txt to root, as well as set its group as root, execute the following command:
1 | chown root:root test.txt |
Cksum
分类:文件管理;查看文件属性
The cksum command prints the CRC checksum and byte count for the input file.
1 | $ cksum test.txt |
Clear
分类:人机交互;清屏
The clear command is used to clear the terminal screen.
1 | $ clear |
Cmp
分类:文件管理;文件比对 byte-by-byte
The cmp command is used to perform byte-by-byte comparison of two files.
1 | $ cmp file1 file2 |
Comm
分类:文件管理;文件比对
The comm command is used to compare two sorted files line-by-line. For example, if ‘file1’ contains numbers 1-5 and ‘file2’ contains number 4-8, here’s what the ‘comm’ command produces in this case:
1 | $ comm file1 file2 |
支持选项:
1 | -1:不显示在第一个文件出现的内容; |
Cp
分类:文件管理;文件复制
The cp command is used for copying files and directories.
1 | $ cp test.txt /home//himanshu/Desktop/ |
Csplit
分类:文件管理;待补充内容
The csplit command lets you split a file into sections determined by context lines. For example, to split a file into two where the first part contains ‘n-1’ lines and the second contains the rest, use the following command:
1 | $ csplit file1 [n] |
The two parts are saved as files with names ‘xx00’ and ‘xx01’, respectively.
Date
分类:系统信息;查看系统时间
The date command can be used to print (or even set) the system date and time.
1 | $ date |
Dd
分类:文件管理;待补充内容
The dd command copies a file, converting and formatting according to the operands. For example, the following command creates an image of /dev/sda partition.
1 | dd if=/dev/sda of=/tmp/dev-sda-part.img |
Df
分类:文件管理;查看文件系统利用率
The df command displays the file system disk space usage in output.
1 | $ df /dev/sda1 |
Diff
分类:文件管理;文件比对 line-by-line
The diff command lets you compare two files line by line.
1 | $ diff file1 file2 |
Diff3
分类:文件管理;文件比对,三个文件
The diff3 command, as the name suggests, allows you to compare three files line by line.
1 | diff3 file1 file2 file3 |
Dir
分类:文件管理;查看当前目录文件列表
The dir command lists directory contents. For example:
1 | $ dir |
Dirname
分类:文件管理;查看当前目录
The dirname command strips last component from a file name/path. In layman’s terms, you can think of it as a tool that, for example, removes file name from the file’s absolute path.
1 | $ dirname /home/himanshu/file1 |
Dmidecode
The dmidecode command prints a system’s DMI (aka SMBIOS) table contents in a human-readable format.
1 | $ sudo dmidecode |
DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。 SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。SMBIOS和DMI是由行业指导机构Desktop Management Task Force (DMTF)起草的开放性的技术标准,其中DMI设计适用于任何的平台和操作系统。
Du
分类:文件管理;查看指定目录磁盘利用率
The du command displays disk usage of files present in a directory as well as its sub-directories.
1 | $ du /home/himanshu/Desktop/ |
Echo
The echo command displays whatever input text is given to it.
1 | $ echo hello hi |
Ed
分类:文件管理;编辑器
ed is a line-oriented text editor.
1 | $ ed |
单行纯文本编辑器,它有命令模式(command mode)和输入模式(input mode)两种工作模式。
支持选项:
1 | A:切换到输入模式,在文件的最后一行之后输入新的内容; |
Eject
分类:媒体管理;卸载
The eject command lets you eject removable media (typically, a CD ROM or floppy disk)
1 | $ eject |
Env
分类:系统信息;查看用户环境变量
The env command not only displays the current environment, but also lets you edit it.
1 | $ env |
Exit
分类:交互;退出
The exit command causes the shell to exit.
1 | $ exit |
Expand
分类:文件管理;编辑器;将TAB符替换为空格符
The expand command converts tabs present in the input file(s) into spaces, and writes the file contents to standard output.
1 | $ expand file1 |
Expr
分类:计算器;表达式
The expr command evaluates expressions. For example:
1 | $ expr 1 + 2 |
Factor
分类:计算器;分解质因数
The factor command prints the prime factors of the input number.
1 | $ factor 135 |
Fgrep
The fgrep command is equivalent to the grep command when executed with the -F command line option. The tool is also known as fixed or fast grep as it doesn’t treat regular expression metacharacters as special, processing the information as simple string instead.
For example, if you want to search for dot (.) in a file, and don’t want grep to interpret it as a wildcard character, use fgrep in the following way:
1 | $ fgrep "." [file-name] |
Find
分类:文件管理;搜索;
The find command lets you search for files in a directory as well as its sub-directories.
1 | $ find test* |
Fmt
分类:文件管理;读取文件内容并格式化输出(查看支持选项)
fmt is a simple optimal text formatter. It reformats each paragraph in the file passed to it, and writes the file contents to standard output.
1 | $ fmt file1 |
Fold
The fold command wraps each input line to fit in specified width.
1 | $ fold -w 10 |
Free
分类:系统信息;性能监测;查看内存利用情况。详细介绍 >>>more>>>
The free command displays the amount of free and used memory in the system.
1 | $ free |
Grep
分类:文件管理;搜索;
The grep command searches for a specified pattern in a file (or files) and displays in output lines containing that pattern.
1 | $ grep Hello test.txt |
Groups
分类:文件管理;搜索;
The groups command displays the name of groups a user is part of.
1 | $ groups himanshu |
Gzip
分类:文件管理;压缩
The gzip command compresses the input file, replacing the file itself with one having a .gz extension.
1 | $ gzip file1 |
Gunzip
分类:文件管理;解压缩
Files compressed with gzip command can be restored to their original form using the gunzip command.
1 | $ gunzip file1.gz |
Head
分类:文件管理;查看文件
The head command displays the first 10 lines of the file to standard output
1 | $ head CHANGELOG.txt |
Hostname
分类:系统信息;host name
The hostname command not only displays the system’s host name, but lets them set it as well.
1 | $ hostname |
Id
分类:系统信息;用户信息
The id command prints user and group information for the current user or specified username.
1 | $ id himanshu |
Kill
分类:进程管理;
The kill command, as the name suggests, helps user kill a process by sending the TERM signal to it.
1 | $ kill [process-id] |
Killall
分类:进程管理;
The killall command lets you kill a process by name. Unlike kill - which requires ID of the process to be killed - killall just requires the name of the process.
1 | $ killall nautilus |
Last
分类:安全管理;查看最近登录用户
The last command shows listing of last logged in users.
1 | $ last |
Ldd
分类:软件包管理;查看一个共享库的依赖
The ldd command displays in output dependencies of a shared library.
1 | $ ldd /lib/i386-linux-gnu/libcrypt-2.19.so |
Ln
分类:文件管理;链接
The ln command is used for creating link between files. For example, the following command would create a link named ‘lnk’ to a file with name ‘test.txt’:
1 | $ ln test.txt lnk |
Locate
分类:文件管理;搜索
The locate command helps user find a file by name.
1 | $ locate [file-name] |
Logname
分类:登录信息;
The logname command prints the user-name of the current user.
1 | $ logname |
Ls
分类:文件管理;查看文件列表
The ls command lists contents of a directory in output.
1 | $ ls progress |
Lshw
分类:系统信息;查看硬件信息
The lshw command extracts and displays detailed information on the hardware configuration of the machine.
1 | $ sudo lshw |
Lscpu
分类:系统信息;查看硬件信息-CPU
The lscpu command displays in output system’s CPU architecture information (such as number of CPUs, threads, cores, sockets, and more).
1 | $ lscpu |
Man
分类:帮助;
man lets you access reference manual for commands, programs/utilities, as well as functions.
1 | $ man ls |
Md5sum
分类:计算器;md5
The md5sum command lets you print or check MD5 (128-bit) checksums.
1 | $ md5sum test.txt |
Mkdir
分类:文件管理;创建目录
The mkdir command lets you create directories.
1 | $ mkdir [dir-name] |
Mkfifo
分类:进程管理
The mkfifo command is used to create named pipes.
1 | $ mkfifo [pipe-name] |
More
分类:交互
more is basically a filter for paging through text one screenful at a time.
1 | $ cat [large-file] | more |
Mv
分类:文件管理;移动
The mv command lets you either move a file from one directory to another, or rename it.
1 | $ mv test.txt /home/himanshu/Desktop/ |
Nice
分类:进程管理;指定进程优先级
The nice command lets you run a program with modified scheduling priority.
1 | $ nice -n[niceness-value] [program] |
Nl
分类:文件管理;输出行号
The nl command writes contents of a file to output, and prepends each line with line number.
1 | $ nl file1 |
Nm
分类:文件管理
The nm command is used to display symbols from object files.
1 | $ nm test |
Nproc
分类:进程管理
The nproc command displays the number of processing units available to the current process.
1 | $ nproc |
Od
分类:文件管理
The od command lets you dump files in octal as well as some other formats.
1 | $ od /bin/ls |
Passwd
分类:用户权限管理
The passwd command is used for changing passwords for user accounts.
1 | $ passwd himanshu |
Paste
分类:交互
The paste command lets you merge lines of files. For example, if ‘file1’ contains the following lines:
1 | $ cat file1 |
Pidof
分类:进程管理
The pidof command gives you the process ID of a running program/process.
1 | $ pidof nautilus |
Ping
分类:网络管理
The ping command is used to check whether or not a system is up and responding. It sends ICMP ECHO_REQUEST to network hosts.
1 | $ ping howtoforge.com |
Ps
分类:进程管理
The ps command displays information (in the form of a snapshot) about the currently active processes.
1 | $ ps |
Pstree
分类:进程管理
The pstree command produces information about running processes in the form of a tree.
1 | $ pstree |
Pwd
The pwd command displays the name of current/working directory.
1 | $ pwd |
Rm
分类:文件管理
The rm command lets you remove files and/or directories.
1 | $ rm [file-name] |
Rmdir
分类:文件管理
The rmdir command allows you delete empty directories.
1 | $ rmdir [dir-name] |
Scp
分类:文件管理
The scp command lets you securely copy files between systems on a network.
1 | $ scp [name-and-path-of-file-to-transfer] [user]@[host]:[dest-path] |
Sdiff
分类:文件管理;文本比对 side-by-side
The sdiff command lets you perform a side-by-side merge of differences between two files.
1 | $ sdiff file1 file2 |
Sed
分类:文件管理;编程工具
sed is basically a stream editor that allows users to perform basic text transformations on an input stream (a file or input from a pipeline).
1 | $ echo "Welcome to Howtoforge" | sed -e 's/Howtoforge/HowtoForge/g' |
Seq
分类:计算器
The seq commands prints numbers from FIRST to LAST, in steps of INCREMENT. For example, if FIRST is 1, LAST is 10, and INCREMENT is 2, then here’s the output this command produces:
1 | $ seq 1 2 10 |
Sha1sum
分类:计算器
The sha1sum command is used to print or check SHA1 (160-bit) checksums.
1 | $ sha1sum test.txt |
Shutdown
The shutdown command lets user shut the system in a safe way.
1 | $ shutdown |
Size
分类:文件管理
The size command lists the section sizes as well as the total size for an object or archive file.
1 | $ size test |
Sleep
The sleep command lets user specify delay for a specified amount of time. You can use it to delay an operation like:
1 | $ sleep 10; shutdown |
Sort
分类:文件管理
The sort command lets you sort lines of text files. For example, if ‘file2’ contains the following names:
1 | $ cat file2 |
Split
分类:文件管理
The split command, as the name suggests, splits a file into fixed-size pieces. By default, files with name like xaa, xab, and xac are produced.
$ split [file-name]
Ssh
ssh is basically OpenSSH SSH client. It provides secure encrypted communication between two untrusted hosts over an insecure network.
1 | $ ssh [user-name]@[remote-server] |
Stat
分类:文件管理
The stat command displays status related to a file or a file-system.
1 | $ stat test.txt |
Strings
分类:文件管理
The strings command displays in output printable character sequences that are at least 4 characters long. For example, when a binary executable ‘test’ was passed as an argument to this command, following output was produced:
1 | $ strings test |
Su
分类:用户权限管理
The su command lets you change user-identity. Mostly, this command is used to become root or superuser.
1 | $ su [user-name] |
Sudo
分类:用户权限管理
The sudo command lets a permitted user run a command as another user (usually root or superuser).
1 | $ sudo [command] |
Sum
分类:文件管理
The sum command prints checksum and block counts for each input file.
1 | $ sum readme.txt |
Tac
分类:文件管理
The tac command prints input files in reverse. Functionality-wise, it does the reverse of what the cat command does.
1 | $ cat file2 |
Tail
分类:文件管理
The tail command displays in output the last 10 lines of a file.
1 | $ tail [file-name] |
Talk
分类:网络管理
The talk command lets users talk with each other.
1 | $ talk [user-name] |
Tar
分类:文件管理;压缩&解压缩
tar is an archiving utility that lets you create as well as extract archive files. For example, to create archive.tar from files ‘foo’ and ‘bar’, use the following command:
1 | $ tar -cf archive.tar foo bar |
Tee
分类:文件管理
The tee command reads from standard input and write to standard output as well as files.
1 | $ uname | tee file2 |
Test
分类:计算器
The test command checks file types and compare values. For example, you can use it in the following way:
1 | $ test 7 -gt 5 && echo "true" |
Time
分类:性能监测
The time command is used to summarize system resource usage of a program. For example:
1 | $ time ping google.com |
Top
分类:系统信息;性能监测;性能概览。详细介绍 >>>more>>>
The top command gives a dynamic real-time view of a running system (in terms of its processes). For example:
1 | $ top |
Touch
分类:文件管理
The touch command lets you change file timestamps (the access and modification times). When name of a non-existent file is passed as an argument, that file gets created.
1 | $ touch [file-name] |
Tr
分类:文件管理
The tr command can be used to translate/squeeze/delete characters. For example, here’s how you can use it to convert lowercase characters to uppercase:
1 | $ echo 'howtoforge' | tr "[:lower:]" "[:upper:]" |
Tty
分类:资源管理
The tty command prints the filename of the terminal connected to standard input.
1 | $ tty |
Uname
分类:用户权限管理
The uname command prints certain system information.
1 | $ uname -a |
Uniq
分类:文件管理;待补充信息
The Uniq command is used to report or omit repeated lines. For example, if ‘file2’ contains the following data:
1 | $ cat file2 |
Unexpand
分类:文件管理;待补充信息
The unexpand command converts spaces present in the input file(s) into tabs, and writes the file contents to standard output.
1 | $ unexpand file1 |
Uptime
分类:系统信息;性能监测;查看负载。详细介绍 >>>more>>>
The uptime command tells how long the system has been running.
1 | $ uptime |
Users
分类:用户权限管理;待补充信息
The users command displays in output the usernames of users currently logged in to the current host.
1 | $ users |
Vdir
分类:文件管理;待补充信息
The vdir command lists information about contents of a directory (current directory by default).
1 | $ vdir |
Vim
分类:编辑器
vim is basically a text/programming editor. The name ‘vim’ stands for Vi IMproved as the editor is upwards compatible to the Vi editor.
1 | $ vim [file-name] |
W
分类:性能监测
The w command displays information about the users currently on the machine, and their processes.
1 | $ w |
Wall
分类:通讯;待补充信息
The wall command lets you write and send a message to other users that are currently logged in.
1 | $ wall [your-message] |
Watch
分类:性能监测
The watch command can be used to monitor a program’s output. It runs the program repeatedly, displaying its output and errors. For example:
1 | $ watch date |
Wc
分类:文件管理;待补充信息
The wc command prints newline, word, and byte counts for a file.
1 | $ wc test.txt |
Whatis
分类:帮助
The whatis command displays single-line manual page descriptions.
1 | $ whatis mkdir |
Which
分类:文件管理;以来
The which command basically lets you locate a command - the file and the path of the file that gets executed. For example:
1 | $ which date |
Who
分类:登录信息
The who command shows who is logged on.
1 | $ who |
Whereis
分类:文件管理;以来
The whereis command shows in output locations of the binary, source, and manual page files for a command.
1 | $ whereis ls |
Whoami
分类:登录信息
The whoami command prints effective userid of the current user.
1 | $ whoami |
Xargs
分类:编程工具
The xargs command builds and executes command lines from standard input. In layman’s terms, it reads items from stdin and executes a command passed to it as an argument. For example, here’s how you can use xargs to find the word “Linux” in the files whose names are passed to it as input.
1 | $ xargs grep "Linux" |
Yes
分类:交互;确认
The Yes command outputs a string repeatedly until killed.
1 | $ yes [string] |
扩展阅读
电子书《Linux Perf Master》
扩展阅读:性能诊断指南
扩展阅读:How Linux Works
- How Linux Works:The Big Picture
- How Linux Works:BASIC Commands
- How Linux Works:BASIC Commands Extension
- How Linux Works:Device and FileSystem
- How Linux Works:Boots
- How Linux Works:用户空间
- How Linux Works:内存管理
- How Linux Works:网络管理
- PreviewHow Linux Works:路由管理