8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
shell就是一个程序,它接受从键盘输入的命令,然后把命令传递给操作系统执行。当使用图像用户界面时,我们需要一个叫做终端仿真器的程序和shell作交互。超级用户的提示符是$,普通用户的提示符为#.
一些简单的命令date:显示系统当前的日期和时间
cal:显示当前月份的日历
df: 查看磁盘剩余空间的数量
free:显示内存空闲的数量
exit: 结束终端会话
第二章 文件系统中跳转
显示当前工作目录
pwd
列出目录内容
ls
更改当前工作目录
cd
相对路径.: 工作目录
..: 工作目录的父目录
~: 家目录
第三章 研究操作系统
ls命令选项和参数选项长选项描述-a–all列出所有文件包括隐藏文件
-h–human-readable以人们可读的格式列出
-l以长格式显示结果
-r–reverse以相反的顺序显示结果
-S按文件大小来排序
-t按修改时间来排序
深入研究长格式-rw-r–r– 1 ma staff 4579 2 3 10:09 debug.log字段含义-rw-r–r–文件的访问权限。第一个字符指明文件类型,‘-’是一个普通文件,‘d’是一个目录。后面三个是所有者的权限,再三个是群组成员的权限,后三个是其它人的权限。
1文件的硬链接数目
Ma文件所属的用户名
staff文件所属的群组名
4579以字节数表示的文件大小
—-上次修改的文件日期
***文件名
确定文件类型file filename
用less浏览文件内容Less filename
less常用的键盘命令:命令行为page up or b向上翻页
page down or space向下翻页
G移动到最后一个行
1G or g移动到开头一行
/characters向前查找指定的字符串
n向下查找下一个出现的字符
h显示帮助
q退出less
第四章 操作文件和目录
通配符通配符意义*匹配任意多个字符,包括0个和1个
?匹配任意一个字符
[characters]匹配任意一个属于字符集中的字符
[!characters]匹配任意一个非字符集中的字符
[[:class:]]匹配任意一个指定类中的字符
常用的字符类:
| 字符符 | 意义 |
| ———————- | —————————— |
| [:alnum:] | 匹配任意一个字母或数字 |
| [:alpha:] | 匹配任意一个字母 |
| [:digit:] | 匹配任意一个数字 |
| [:upper:]或者[:lower:] | 匹配任意一个大写或者小写字母 |
mkdir创建目录mkdir dir1 dir2
创建目录dir1和dir2
cp 复制文件和目录cp item1 item2
cp item1… directory
一些有用的选项选项意义-a, –archive复制文件和目录,以及他们的属性
-i, –interactive-i, –interactive
-r, –recursive递归地复制目录和文件,复制目录时,需要这个选项
-u, –update仅复制目标目录中不存在的文件
mv 移动和重命名文件mv item1 item2
一些选项选项意义-i, –interactive-i, –interactive
-u, –update仅复制目标目录中不存在的文件
rm 删除文件和目录
rm选项和意义:选项意义-i,–interactive删除前提示用户
-r,–recursive递归地删除文件,若删除目录则需指定这个选项
-f,–force忽视不存在的文件,不显示提示信息
-v,–verbose执行命令时,显示详实的信息
Linux系统没有复原命令,一旦用rm删除一些东西,就永远消失了,所以无论啥时候,rm命令用到通配符的时候,先用ls测试通配符。
第五章 使用命令
命令是什么
命令可以是下列4种形式之一:是一个可执行程序
是一个内建于shell自身的命令
是一个shell函数
是一个命令别名
显示命令的类型
type是shell的内部命令,它会显示命令的类别,给出一个特定的命令名。
显示一个可执行程序的位置
使用which命令可以确定所给定的执行程序的准确位置。
得到shell内部命令的帮助文档
使用help command命令得到命令的帮助文档;许多可执行程序支持--help选项,显示此命令支持的语法和选项说明。
man 显示程序手册页
whatis 显示非常简洁的命令说明
info 显示程序的Info条目
创建别名
使用alias命令创建命令的别名,使用方法alias name=’string’
注意:name与string之间没有空格。string是一系列的命令,name是这一系列命令的别名,下次输入name时等价于输入string。
使用unalias命令删除别名。
第六章 重定向
标准输入输出
一般地,输出送到屏幕,输入来自键盘,但是通过I/O重定向我们可以改变输入输出的方向。
重定向标准输出
使用>重定向符,后面跟着文件名,则会把原本输出到标准输出的内容输出到重定向符后面的文件中。需要注意的是使用>重定向符重定向输出结果时,目标文件总是从头开始被重写。所以当我们需要删除一个文件内容或者新建一个空文件的时候,可以使用这样一个技巧:> filename
使用>>重定向符可以把重定向结果追加到文件内容后面,而不是重头开始写文件,如果文件不存在,文件会被新建。>> filename
重定向标准错误
文件描述符0,1,2分别表示标准输入、输出和错误。ls -l /bin/usr 2> ls-error.txt
文件描述符’2‘紧挨着放在重定向符之前,执行重定向标准错误到文件ls-error.txt任务。
重定向标准输出和错误到同一个文件
第一种方法:ls -l /bin/usr > ls-output.txt 2>&1
这里使用了两次重定向,首先重定向标准输出到文件ls-output.txt,然后重定向文件描述符2到文件描述符1,使用表示法2>&1.
第二种方法:ls -l /bin/usr &> ls-output.txt
处理不需要的输出ls -l /bin/usr 2> /dev/null
重定向标准输入
cat 连接文件
cat命令读取一个或多个文件,然后复制他们到标准输出,cat经常用来显示简短的文本文件。cat [file]
cat可以将多个文件连接成或者合并为一个文件:cat file1 … filem > cat_file
管道线
管道线操作符|可以使一个命令的标准输出作为另一个命令的标准输入:command1 | command2
过滤器sort,排序
uniq,忽略重复行
wc,打印行,字和字节数
grep,打印匹配行
head/tail,打印文件开头、结尾部分
第七章 从shell眼中看世界
字符展开
算术表达式展开
花括号展开
通过它可以从一个包含花括号的模式中创建多个字符串。ma$ echo F-{a,b,c}-B
F-a-B F-b-B F-c-Bma$ echo {1..10}
1 2 3 4 5 6 7 8 9 10echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
参数展开
其实就是shell中的变量。
命令替换ma$ ls -l $(which cd)
-rwxr-xr-x 15 root wheel 190 8 18 08:20 /usr/bin/cd
which cd会返回一个路径。
双引号
双引号中的文本被当做普通字符看待,但是参数展开和算术表达式展开仍然有效。
单引号
所有的展开将被禁止。
转义字符转移序列含义a响铃
b退格键
n换行
r回车符
t制表符
第八章 键盘高级技巧
移动光标按键行动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把剪切板的内容粘贴到光标位置
历史命令
history显示历史命令。
可以通过history | less
来浏览历史命令。通过执行history | grep 目录
来找到此目录中的命令。通过!行号
来执行历史命令中此行号对应的命令。
第九章 权限
创建一个文件并显示它的详细信息$ > foo.txt
$ ls -l foo.txt
-rw-r–r– 1 ma staff 0 2 16 19:46 foo.txt
显示的前十个字符是文件的属性,第一个字符表示文件的类型。下表是文件常见的类型:属性文件类型-普通文件
d目录
l符号链接
c字符设备文件
b快设备文件
剩下的九个字符代表文件所有者、文件组所有者、其他人的读写和执行权限。
chmod 更改文件模式
可以使用两种方法改变文件模式:八进制数字表示法和符号表示法。
数字表示法
因为对所有者、群组和其他人分别有r、w、x三种权限,所以假如对于所有者的权限来讲,所有者对文件有r权限和w权限,但是x权限没有,那么他有的权限的位置就置为1,反之为0,那么对应地二进制表示为110,与此对应的八进制为6,即所有者的权限用一个4表示,其它群组和其他人时同理,所以一个文件可以用3个八进制数字表示它的权限模式。例如改变foo.txt的文件权限:$ chmod 600 foo.txt
$ ls -l foo.txt
-rw——- 1 ma staff 0 2 16 19:46 foo.txt
符号表示法
符号表示法分为3个部分:更改会影响谁,要执行那个操作,要设置哪种权限。符号含义u文件所有者
g用户组
o其他人
au、g、o三者的组合
若没有指定字符,则假定使用a。
执行的操作有两种:+增加一个权限,-删掉一个权限。
权限用r、w、x指定。例如$ chmod g+r foo.txt
$ ls -l foo.txt
-rw-r—– 1 ma staff 0 2 16 19:46 foo.txt
更改身份
su 以其他用户和组ID运行一个shell
su命令以另一个用户的身份来启动shell:su [-[l]] [user]
如果包含-l选项,那么会为指定用户启动一个需要登录的shell,意味着会加载这个用户的shell环境,并且工作目录会更改到这个用户的家目录。如果不指定用户,则默认启动超级用户。-l可以缩写为-,例如启动超级用户:su -
当工作完成后,输入exit返回原来的shell。也可以只执行单个命令,而不是启动一个新的可交互的shell,su -c ‘command’
命令用单引号括起来。
sudo 以另一个用户身份执行命令
sudo很多方面类似于su,但sudo还有其他一些总要的功能。管理员可以配置sudo命令,从而使用户以不同身份通过一种可控的方式来执行命令。sudo命令不要求超级用户的密码,而是需要自己的密码来认证。sudo命令不会重新启动一个shell,命令不必用单引号括起来。
chown 更改文件所有者和用户组
使用这个命令需要超级用户权限。命令语法:chown [owner][:[grou]] file…
更改用户密码
只要输入passwd命令,就能更改你的密码。
ReferencesWilliam E.Shotts,Linux命令行大全