概述
很多人可能在电视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务。
Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。
近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位。可以说不会命令行,就不算会 Linux。
Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。Linux 发行版本最少的命令也有 200 多个,这里只介绍比较重要和使用频率最多的命令。
命令使用方法
Linux 命令格式:
command [-options] [parameter1] …
说明:
command:命令名,相应功能的英文单词或单词的缩写
[-options]:选项,可用来对命令进行控制,也可以省略
parameter1 …:传给命令的参数,可以是零个一个或多个
如何查看帮助文档:
1)--help
一般是 Linux 命令自带的帮助信息,并不是所有命令都自带这个选项。
如我们想查看命令 ls 的用法:ls --help
2)man (有问题找男人)
man 是 Linux 提供的一个手册,包含了绝大部分的命令、函数使用说明。该手册分成很多章节(section),使用 man 时可以指定不同的章节来浏览不同的内容。
man 中各个 section 意义如下:
1、Standard commands(标准命令)
2、System calls(系统调用,如open,write)
3、Library functions(库函数,如printf,fopen)
4、Special devices(设备文件的说明,/dev下各种设备)
5、File formats(文件格式,如passwd)
6、Games and toys(游戏和娱乐)
7、Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)
8、Administrative Commands(管理员命令,如ifconfig)
如,我们想查看 ls 的用法:man 1 ls ( 1:为数字“1”,代表第 1 个 section,标准命令 )
实际上,我们不用指定第几个章节也用查看,如,man ls。但是,有这个一种情况,假如,命令的名字和函数的名字刚好重名(如:printf),它既是命令,也可以是库函数,如果,我们不指定章节号,man printf,它只查看命令的用法,不会查询函数的用法,因为 man 是按照手册的章节号的顺序进行搜索的。
所以,使用 man 手册时,最好指定章节号:
使用技巧
自动补全:
在敲出命令的前几个字母的同时,按下 tab 键,系统会自动帮我们补全命令。
历史命令:
当系统执行过一些命令后,可按上下键翻看以前的命令,history 将执行过的命令列举出来。
重定向( > ):
本应显示在终端上的内容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
管道( l ):
当我们搜索含某个关键字的文件或文件夹时,经常需要用到管道,结合 grep ( 搜索命令 ) 一起使用。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西,右端取东西。
如:ls | grep g,ls 本来显示到屏幕的内容塞进管道的左端,然后从右端取出这些内容,在内容中搜索有 “g” 关键字的文本。
常用命令
文件、磁盘管理:
ls:显示目录内容
-l:列表显示
-a:显示所有文件(隐藏文件以“ . ”开头)
-h:配合 -l 以人性化的方式显示文件大小
clear:清除终端上的显示,也可使用快捷键:Ctrl + l ( “l” 为字母 )
cd:切换目录
cd /mnt 可进入 mnt(指定)目录
cd .. 可进入上一层目录
cd - 可进入上一个进入的目录
cd ~ 可进入用户的家目录 ( ~:代指家目录,家目录指 /home 里的用户目录,不是纯粹的 /home 目录 )
pwd:显示当前工作目录的绝对路径
注意:如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 “ / ”。
mkdir:创建目录
-p 递归地在指定路径建立文件夹
cat:显示文本文件内容
rm:删除文件或目录
-r:删除文件夹时必须加此参数
-f:强制地删除文件
cp:复制文件
-r:拷贝文件夹
-i:有重复文件时,提醒是否覆盖
-v:显示拷贝进度
cp vim_configure/ code/ -ivr 把文件夹 vim_configure 拷贝到 code 目录里
mv:移动文件或更改文件名
–v:显示移动进度
mv file1 file2 file1 改名为 file2mv vim_configure/ code/ vim_configure/ 移动到 code 目录里
which:查看命令所在的目录
tar:压缩与解压缩命令
gzip 格式(压缩包后缀为.tar.gz):
压缩用法:tar cvzf 压缩包包名 文件1 文件2 ...
c:create,创建
v:显示压缩进度
z:指定压缩包的格式为 gzip 格式,file.tar.gz
这三个参数的顺序任意即可,参数的前面可加“ - ”,如:-zcf
f:file,文件,f 的后面必须是压缩包文件,所以,这四个选项一起使用时,f 一定是放在最后,如:zxvf
例子:tar zcvf test.tar.gz 1.c 2.c 3.c 4.c把 1.c 2.c 3.c 4.c 压缩成 zcvf test.tar.gz
上面操作,还可以这么写:tar zcvf other.tar.gz *.c(*.c 代表所有的 .c)
解缩用法: tar zxvf 压缩包包名
x:代表解压操作
z:指定解压压缩包的格式为 gzip 格式,file.tar.gz
用法和创建压缩包用法一样,选项顺序也一样。
例子: tar zxvf new.tar.gz 把 new.tar.gz 解压出来
实际上,“ z ” 参数可以省略,这样的话,不管是什么样格式的压缩包都解压:
解压到指定目录:-C (大写字母“ C ”)
例子:tar -xvf new.tar.gz -C ./test/ 将 new.tar.gz 解压到当前目录下的 test 目录下
注:所有图片都上传到红联Linux系统教程频道中。
bz2 格式(压缩包后缀为 .tar.bz2):
和 gzip 格式操作时一样的,区别:bz2 格式用参数“ j ”指定
压缩用法: tar jcvf 压缩包包名 文件1 文件2 ...
例子:tar jcvf bk.tar.bz2 *.c
解缩用法: tar jxvf 压缩包包名
例子: tar jxvf bk.tar.bz2
解压到指定目录:-C
例子:tar jxvf bk.tar.bz2 -C ./
用户、权限管理:
chmod:改变文件权限
chmod 有两种使用格式(字母法与数字法)
字母法:
chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] 说明
u : user 表示该文件的所有者
g : group 表示与该文件的所有者属于同一组( group )者,即用户组
o : other 表示其他以外的人
a : all 表示这三者皆是
[ +-= ] 说明
+ : 增加权限
- : 撤销权限
= : 设定权限
[ rwx ] 说明
r : read 表示可读取
w : write 表示可写入
x : excute 表示可执行
具体例子:
chmod o+w file 给文件 file 的其它用户增加写权限
chmod u-r file 给文件 file 的拥有者减去读的权限
chmod g=x file 设置文件 file 的同组用户的权限为可执行,同时去除读、写权限
数字法:
“rwx” 这些权限也可以用数字来代替
r:读取权限,数字代号为 "4"
w:写入权限,数字代号为 "2"
x:执行或切换权限,数字代号为 "1"
-:不具任何权限,数字代号为 "0"
如执行:chmod u=rwx,g=rx,o=r filename
就等同于:chmod u=7,g=5,o=4 filename
具体例子:
chmod 751 file
文件所有者:读、写、执行权限
同组用户:读、执行的权限
其它用户:执行的权限
chmod 777 file
所有用户拥有读、写、执行权限
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。
如:chmod 777 test -R
递归 test 目录下所有文件加 777 权限。
系统管理
ps:查看系统进程
ps -a 查看当前用户的所有进程
ps -e 查看系统中所有的进程
kill:杀死指定进程号的进程,配合 ps 使用
kill 9133 9133 为应用程序所对应的进程号
有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束。
ifconfig:查看或配置网卡信息
如果,我们只是敲:ifconfig,它会显示所有网卡的信息:
查看指定网卡的信息:ifconfig eth0 ( “ 0 ” 为数字 )
设置 ip :sudo ifconfig eth0 192.168.31.165
sudo 是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。
ping:测试网络连通性
ping 10.221.0.24 不会自动停止,按 “ Ctrl + c ” 即可停止
ping 10.221.0.24 -c 4 “-c”代表发送包的次数,这里为 4 次
who:查看当前系统登录用户的信息
第一列显示登陆用户名
第二列显示终端名
第三列显示登陆时间
exit:
如果是图形界面,退出当前终端
如果是使用ssh远程登录,退出登陆账户
shutdown:关机
shutdown -h now 立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25 系统在今天的20:25 分会关机
shutdown -h +10 系统再过十分钟后自动关机
reboot:重启电脑