《The Linux Command Line》中的命令
2017-12-19 14:47
357 查看
《The Linux Command Line》是一本Linux命令入门级图书,网上也有免费版下载,我这里只是按章节做一个简单的书中提到的命令的收集记录和翻译,也为了记录的简洁性略作调整。注意,部分概念说明和命令的使用技巧没有体现在本文中。
Page Up 或 b:向上翻页
Page Down 或 space:向下翻页
Up Arrow:向上滚动一行
Down Arrow:向下滚动一行
G:滚动到文件结尾
1G 或 g:滚动到文件开头
/characters:查找指定字符
n:要查找的下一个指定字符
h:显示帮助信息
q:退出less程序
波浪线(
算数扩展(
大括号扩展:可以创建多个特定形式的字符串
形式1——
形式2——
参数扩展:显示变量对应的值,例如
命令替换(
word-splitting:去除多余的空白字符。例如:
双引号:使得全部的特殊字符被视作普通字符,失去了特殊的意义,除了
单引号:使得所有的扩展都失效。例如:
转义字符:使得具有特殊意义的字符变成普通字符。例如:
2. 导航命令
pwd:打印当前工作目录
cd [绝对或相对路径]:切换工作目录
cd:切换到用户主目录
cd -:切换到上一个工作目录
cd ~用户名:切换工作目录到对应用户名的主目录
ls [dir...]:列出目录(可以同时指定多个目录)中的文件,如果没有指定目录,则列出当前工作目录的文件
-a(--all):列出所有文件,包括隐藏文件(以
.开头)
-A(--almost-all):除了
.(当前目录)
..(上级目录)以外的所有文件
-d(--directory):列出目录本身的信息而不是目录里的内容,通常与
-l合用
-F(--classify):在列出的文件名后面追加一个指示字符,例如在文件夹后面追加“/”符号
-h(human-readable):使“长格式”中的文件大小字段以用户易读的方式展现,而不仅仅是字节大小,通常与
-l合用
-l:以“长格式”展示信息,内容更丰富
-r --reverse:使排列顺序与原来相反
-S:按文件大小排序
-t:按文件最后修改时间排序
3. 探索系统
file 文件名:显示文件类型信息
less 文件名:查看文件内容
Page Up 或 b:向上翻页
Page Down 或 space:向下翻页
Up Arrow:向上滚动一行
Down Arrow:向下滚动一行
G:滚动到文件结尾
1G 或 g:滚动到文件开头
/characters:查找指定字符
n:要查找的下一个指定字符
h:显示帮助信息
q:退出less程序
4. 操作文件和目录
mkdir 目录...:创建目录,可以是一个目录也可以同时创建多个目录
cp item1 item2:复制文件或目录(需要
-r选项)
cp item... 目录:复制文件(一个或多个)到指定目录
-a(--archive):复制文件或目录,并且复制保留原有的所属信息和权限属性,一般来说,复制文件或文件夹的属性是执行命令用户的属性
-i(--interactive):当存在写覆盖时会提示用户进行确认。如果没有指定该选项,则是默认覆盖
-r(--recursive):当复制文件夹时,需要指定该选项
-u(--update):当复制若干文件到另一个目录时,只会复制目标目录没有的文件和比已有文件更新的文件
-v(--verbose):显示复制的相关信息
mv item1 item2:移动文件或目录
mv item... 目录:移动文件(一个或多个)到指定目录
-i(--interactive):当存在写覆盖时会提示用户进行确认。如果没有指定该选项,则是默认覆盖
-u(--update):当移动若干文件到另一个目录时,只会移动目标目录没有的文件和比已有文件更新的文件
-v(--verbose):显示移动的相关信息
rm item...:删除文件或目录(需要
-r选项)
-i(--interactive):在删除文件前需要用户确认。如果没有指定该选项,则会直接删除没有提示
-r(--recursive):当删除涉及目录时,需要指定该选项
-f(--force):忽略不存在的文件,并且不给出提示。此选项会使
--interactive选项失效
-v(--verbose):显示删除的相关信息
ln file link:创建文件的硬链接
ln -s item link:创建文件或目录的符号(软)链接
5. 用命令工作
type 命令:显示命令的类别(可执行程序,shell内建命令,shell函数或命令别名)
which 可执行程序:显示可执行程序的位置
help shell内建命令:显示shell內建命令帮助信息
--help:显示使用信息的选项,大部分命令都支持该选项
man [section] 命令:显示命令的用户手册,也可以指定显示某一节的用户手册信息。man使用less来显示,所以可以使用less中的相关操作
apropos 命令:模糊查询命令信息,相当与在man命令中使用
-k选项
whatis 命令:查询指定命令的简单描述
info 命令:查询命令的info内容
alias 命令别名='命令或命令的组合':给命令或命令的组合(用分号分隔的命令)取别名。注意当shell会话关闭后,用命令行创建的别名就失效了。
unalias 命令别名:删除命令别名
alias:显示系统中存在的命令别名
6. 重定向
<(标准输入重定向:将文件作为标准输入来源
>(标准输出重定向); 2>(标准错误输出重定向); &>(标准输出和标准错误输出重定向):写入文件开头,即会清除原有文件内容
>>(标准输出重定向); 2>>(标准错误输出重定向); &>>(标准输出和标准错误输出重定向):写入文件结尾,即追加新的内容
cat [文件名...]:读取一个或多个文件,并复制到标准输出文件,即打印到屏幕上。如果没有提供文件名作为参数,则从标准输入中读取,使用Ctrl+d作为EOF。
|:管道操作符,将一个命令的标准输出作为另一个命令的标准输入。
sort [文件名]:对文件内容排序。没有文件则从标准输入中读取。(很多命令在没有给出文件名参数时会从标准输入中读取。)
uniq [文件名]:去除重复的行,注意要先将输入内容排序。没有文件则从标准输入中读取。
-d:显示重复的行
wc [文件名]:打印对行、单词数、字节数的计数。没有文件则从标准输入中读取。
-l:只显示行数
grep 模式 [文件名...]:打印匹配模式的行。没有文件则从标准输入中读取。
head [文件名]:打印文件的前10行。没有文件则从标准输入中读取。
-n 数字:显示指定打印的行数
tail [文件名]:打印文件的最后10行。没有文件则从标准输入中读取。
-n 数字:显示指定打印的行数
-f:实时显示指定文件内容,Ctrl+c用于终止显示
tee:从标准输入中读取内容并同时输出到标准输出和文件中,例如
ls /usr/bin | tee ls.txt | grep zip
7. 以shell的视角看世界
路径名扩展:可以在表示路径的字符串中使用通配符,shell会匹配所有符合条件的内容,形成不同的路径字符串波浪线(
~)扩展:
~代表当前用户的主目录,
~用户名代表对应用户的主目录
算数扩展(
$((算数表达式))):只支持整数运算,可以嵌套,也可以使用括号。部分支持的运算符:加法(+),减法(-),乘法(*),整除(/),取模(%)和指数运算(**)
大括号扩展:可以创建多个特定形式的字符串
形式1——
{str1,str2[,str3...]},
{c1,c2[,c3...]}:生成逗号隔开的字符串或字符(中间无空白字符),例如
echo Front-{A,B,C}-Back输出
Front-A-Back Front-B-Back Front-C-Back
形式2——
{数字1..数字2},
{字母1..字母2}:生成指定范围内的数字或字母。例如
echo Number_{1..5},对应的输出为
Number_1 Number_2 Number_3 Number_4 Number_5;还可以支持显示指定位数,空位由0补齐,
echo {01..15}输出为
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15;生成反序序列
echo {Z..A},输出为
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A;还可以嵌套使用
echo a{A{1,2},B{3,4}}b,输出为
aA1b aA2b aB3b aB4b。
参数扩展:显示变量对应的值,例如
echo $USER输出
me
命令替换(
$()):将一个命令的输出作为另一个命令的参数,例如,
ls -l $(which cp)输出“-rwxr-xr-x 1 root root 71516 2007-12-05 08:58 /bin/cp”。早期的shell使用反引号也有同样的功能,例如,
ls -l `which cp`输出
-rwxr-xr-x 1 root root 71516 2007-12-05 08:58 /bin/cp。
word-splitting:去除多余的空白字符。例如:
echo this is a
test,输出
this is a test
双引号:使得全部的特殊字符被视作普通字符,失去了特殊的意义,除了
$,
\(反斜杠),
`(反引号)之外。例如:
ls -l "two words.txt",输出
-rw-rw-r-- 1 me me 18 2016-02-20 13:03 two words.txt。如果没有双引号,则会被视为两个参数。
单引号:使得所有的扩展都失效。例如:
echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER',输出
text ~/*.txt {a,b} \$(echo foo) \$((2+2)) $USER。
转义字符:使得具有特殊意义的字符变成普通字符。例如:
echo "The balance for user $USER is: \$5.00",输出
The balance for user me is: $5.00
8. 高级键盘技巧
Ctrl-a:移动光标到行首
Ctrl-e:移动光标到行尾
Ctrl-f:光标向前移动一个字符,和右箭头作用一样
Ctrl-b:光标向后移动一个字符,和左箭头作用一样
Alt-f:光标向前移动一个单词
Alt-b:光标向后移动一个单词
Ctrl-l:清除屏幕并且移动光标到左上角。与
clear命令作用一样
Ctrl-d:删除光标所在字符
Ctrl-t:交换光标所在字符与前一个字符的顺序
Alt-t:交换光标所在单词和前一个单词的顺序
Alt-l:将从光标处到单词结尾的字符转换为小写
Alt-u:将从光标处到单词结尾的字符转换为大写
Ctrl-k:删除光标处到行尾的字符
Ctrl-u:删除光标前一个字符到行首的字符
Alt-d:删除光标到单词结尾的字符
Alt-Backspace:删除光标前一个位置到单词开头处的字符。如果光标已经处于单词的开头,则删除前一个单词
Ctrl-y:把kill-ring缓冲区中的文本粘贴到光标前
Alt-?:显示所有可能的自动补齐列表。在大多数系统上,可以通过按第二次tab键来实现。(该快捷键需要结合Shift键)
Alt-*:直接插入所有可能的补全项。当你需要使用多个匹配项时会很有用。(该快捷键需要结合Shift键)
9. 权限
id:显示用户身份信息
chmod <[ugoa][+-=][rwx]|表示模式的三个八进制数字> 文件名:改变文件的模式
umask:显示默认权限
umask 四个八进制数字:设置默认权限
su [-[l]] [用户名]:以另一个用户的身份来启动shell。
-l选项可以缩写为
-,如果包含该选项,择该用户的运行环境会被加载,工作目录也将更改为该用户的主目录。如果没有给出用户名,则默认用户名是超级用户。
exit命令用于退出。
su -c '命令':以超级用户身份执行单条命令,输入的密码是超级用户的密码
sudo 命令:以超级用户身份执行命令,输入的密码是用户自己的密码
chown [ower][:[group]] 文件...:改变文件或目录所属的用户和组
passwd [用户名]:更改用户密码。如果不指定用户名,则是更改当前用户的密码
10. 进程
ps [选项]:查看进程信息。常用方法为
ps aux(选项前不带连字符,将使命令以BSD模式运行)。
top:动态查看进程信息。ps命令显示的是机器进程状态的快照。
Ctrl-C:终止程序运行
Ctrl-Z:暂停程序运行
命令 &:让程序在后台运行
jobs:显示作业状态列表(可以显示后台进程)
fg %作业编号:将指定作业放到前台运行
bg %作业编号:将指定作业放到后台运行
kill [-信号名或编号] PID...:向进程发送指定信号
killall [-u 用户名] [-信号名或编号] 进程名...:向指定名称的进程发送信号,还可以指定用户名
pstree:以树状形式输出进程列表,该模式显示了进程间的父子关系
vmstat [数字]:输出系统资源使用情况,可以指定更新的频率的数字,以秒为单位。如果不指定数字,则只显示一份快照
xload:图像化显示系统负载情况
tload:在终端上显示系统负载情况
相关文章推荐
- 《The Linux Command Line》 读书笔记02 关于命令的命令
- 《The Linux Command Line》 读书笔记01 基本命令介绍
- 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令
- 《The Linux Command Line》 读书笔记03 ls命令与长格式输出解释 文件权限
- The Linux Command Line 读书笔记(二)之文件系统The file system操作的命令
- Centos下_MysqL5.7在使用mysqldump命令备份数据库报错:mysqldump: [Warning] Using a password on the command line interface can be insecure.
- The Linux Command Line 1-10章总结
- the linux Command Line 学习笔记--mysql命令行导入sql文件到指定数据库的方法
- 资源分享 | The Linux Command Line 的中文版
- The linux command line--part 4 Writing Shell Scripts
- The Linux Command Line 31-37章总结
- Locating files using the find command(linux find命令)
- The Linux Command Line---读书笔记
- An A-Z Index of the Bash command line for Linux.摘自https://ss64.com
- The Linux Command Line 读书笔记(一)初识shell
- The Linux Command Line 11-20章总结
- Take screenshots from the command line in Linux
- The linux command line--part Two Configuration And The Environment
- the linux command line学习笔记之五
- [NOTE]常用Linux命令总结[Thx for commandlinefu]