admin管理员组文章数量:1531405
2024年7月24日发(作者:)
Linux命令学习手册-0前言
【读者须知】
这篇文章纯粹是我个人在学习Linux过程中实践的积累,其中语言文字上面也许
会有些错误,希望读者发现之后能够帮我纠正,在此先谢了。
这里的每个命令都经过我亲身的实践,linux多数命令使用起来并不难,关键是
读懂命令的输出信息,以及如何使用命令帮助。我的愿望是大家能够花费尽可能短
的时间,熟悉Linux操作系统。如果你仅仅是为了临时做一些事情,那么本文也适合
你,你只需要看本前言中的【j基本命令】一节即可。如果有人转载,希望您能注明
出处和作者;如果将本文用于商业行为,希望您能先通知我;希望大家能够互相体
谅,尊重对方的劳动成果。
【本文内容】
本文档最开始介绍Linux命令相关的基本知识,然后给出一些基本的Linux命令。
后面每个章节将分别对每个重要的Linux命令进行详细的讲解,并给出详细的举例。
这是一个没有终点的学习,这个手册的内容会随着学习的命令的更多而增加。
侧重应用,重在举例,所以想要了解每个命令的具体细节还需要察看man或者
info手册。如有机会,每个命令可能会在今后完善更新。
【本文约定】
(1)对于每一个命令,分为如下三个部分:
[功能] 简单介绍该命令功能。
[举例] 给出该命令最常使用的例子。
[描述] 详细描述该命令。
[其他] 该命令其他杂乱或者补充性的内容。
(2)对于每个命令的使用例子,有如下说明:
一般以'*'开始的一行要操作的目的,然后是具体的命令,最后给出该命令的详
细解释。例如:
*
列出当前目录的内容:
$ls
这里,将会列出当前目录所有文件。
如果开始"*"引导的操作目的是在某个操作之下的子操作,那么上级操作用"**"
引导并允许之后有一段说明文字,最后上级操作完毕之后用"**"结束。如果还有上
级操作,那么"***"引导且"***"结束,每增加一级,就多一个"*"。例如:
**
使用
vi
编辑:
编辑之前首先打开文件
$vi filename
打开文件之后,操作如下:
*
插入:
输入
"a".
*
退出:
输入
":q".
**
【基本知识】
这里简单介绍linux命令行的一般语法格式。
这对初学者很重要,尤其是查找某个命令的帮助手册(man手册)的时候,不会什
么也看不懂。
1,命令组成:
一般linux的命令语法格式如下:
命令名称 选项 选项参数(值) 命令参数(值)
例如:
od [OPTION]... [FILE]...
这里,命令名称是od,选项是OPTION。这里选项用'[]'括起来表示这个部分在od
命令里面可有可无。命令的参数是FILE也是可有可无;'...'表示其前面的东西(这里
是OPTION和FILE)可以有不只一个.一般来说(不是绝对的),在man手册里面,命令
中像OPTION和FILE这样的变量形式的参数(即其值取决于用户的键入)部分会用
特殊颜色显示出来;而od这样本身是固定的部分(即不是用户能改变的)用另外一
种颜色显示(例如加粗)。也有的描述中把可变的部分用'<>'括起来。
再如:
cp [OPTION]... DIRECTORY
从这里可以看出,cp命令参数有SOURCE和DIRECTORY,其中SOURCE参数可
以是多个,DIRECTORY只能一个。OPTION部分可有可无,但是SOURCE和
DIRECTORY部分必须要有。
具体的例子:
$cp -r file1 file2 dir
2,关于选项:
项简单书写形式也复杂书写形式。简单形式的项一般用'-'引出,复杂形式一般用
'--'引出等等,例如:
$cp -v file1 file2
等价于$cp --verbose file1 file2
这里,'-v'和'--verbose'是一样的,'-v'是简写形式,'--verbose'是复杂形式。
又例如:
cp -r src des
其中,-r 就是其中的[OPTION]部分,也可以是--recursive.
另外,些命令的项不用'-'来引出,例如:
$unrar e
使用e选项指定unrar命令解压文件。
些命令项用'-'做为前缀,然后可以接多个选项,例如:
$tar -czvf dir
这个命令使用tar命令的-c -z -v -f四个选项,给dir目录打包并且压缩,生成结果
文件为.
在项用'[]'包含起来表示可选的同时,如果有几个值其中只能出现一个的话那么
用'|'来分开。例如:
command [-a|-b]
这里,command是假设的一个命令,这表示这个命令command中,-a和-b选项,
两者要么都没有,要么只有一个。
3,关于选项的参数:
不光是命令,命令的项也可以参数。
这里举一个复杂点的命令:
gdb [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e prog]
[-se prog] [-c core] [-x cmds] [-d dir] [prog[core|procID]]
这是gdb命令的语法格式,关键的几个部分如下:
[-d dir]就是指,运行gdb命令,可以添加一个可选的选项"-d",这个选项的参数是
dir.在本文的描述中,不太容易一下子看出[-d dir]里面哪部分是固定的字符串,哪部
分是随用户输入而变的字符串,但是man手册里面都把它们标记为不同的颜色了,实
际通过分析也很容易知道哪个部分是可变的。
些命令项和项的参数之间可以没空格,有的选项和选项参数之间用'='连接,例如
这里的'[-cd=dir]';
再举一个例子:
minicom [-somMlwz8] [-c on|off] [-S script] [-d entry] [-a on|off] [-t term] [-p pty]
[-C capturefile] [configuration]
这是minicom的命令语法,其中[-c on|off]表示-c选项是可选的(即在命令中可有
可无),它有一个选项参数,参数值可以是on或者off.
【基本命令】
这里是经常使用的linux命令,用于平时查阅之用.
一般而言,超级用户(root)的命令提示符号是'#',一般用户的命令提示符号是'$'.
(1)文件管理相关
*创建名字为1的目录:
$mkdir 1
*创建名字为1的文件:
$touch 1
*删除名字为1的文件:
$rm 1
*查看文件1的内容:
$cat 1
*强制删除一个目录:
$rm -rf dirname
这里,rm -r dirname是递归删除的意思,如果加上-i选项,表示删除之前提示是
否删除。
*重命名/移动文件:
$mv ./origin ./newname
这里,Linux中没有专门的重命名命令,这里实际是使用了移动命令来进行的。
原来的文件名origin,新文件名newname.
*把文件file1拷贝一份到file2
$cp file1 file2
这里,操作都是在当前目录下面进行的,如果拷贝到别的目录,可以指定路径,
例如cp file1 /anotherdir/file2.
*把目录dir1考到另一个地方为dir2:
$cp -r dir1 dir2
这里,-r表示递归拷贝所有子目录。
*进入到一个目录中:
$cd dirname
*查看目录dirname中所包含的文件:
$ls dirname
*查看目录dirname中所包含的文件的详细信息:
$ls -l
这样,会显示相应文件的详细信息,包括属主,大小,权限等信息。
*查看当前的目录:
$pwd
这样,会输出当前所在目录的路径。
*创建文件file的硬链接:
$ln file lnfile
这里,使用链接的目录格式类似cp。建立硬链接之后,如果删除源,还可以通
过这个硬链接访问到这个文件的内容,除非所有的硬链接都被删除了,否则文件内
容就一直存在的。硬链接不能够跨越文件系统,不能够建立目录的硬链接。
*创建文件file的软链接:
$ln -s file lnfile
这里,创建软链接,文件名里面'$'就用了转义'$'表示'$',尽量用绝对路径防止出
错。软链接可以跨越文件系统,可以为目录创建软链接,但是软链接的文件,如果
删除源,链接会失效,类似windows中的快捷方式。
(2)权限管理相关
*修改文件的权限为所有人可读可写可执行:
$chmod 777 filename
这里,文件属主必须是当前用户,否则就只能进入超级用户才能执行这个命令
了。
*修改文件filename的权限,为other用户添加写权限:
$chmod o+w filename
*修改目录以及所有子目录的权限为777:
$chmod 777 -R dir
*查看在线登陆用户:
$who
*将一个用户添加到用户组中:
#usermod -a -G groupA user
这里,不要忘记-a选项。如果用:"usermod -G groupA",这做会使user用户离开其
他用户组,仅仅做为这个用户组 groupA 的成员。
*更改用户user的组为groupA
#usermod -G groupA user
*查看所有的用户:
$cat /etc/passwd
这里,用户都保存在了passwd文件中,所以查看这个文件的内容就可以看到所
有的用户了。
成功创建一个新用户以后,在/etc/passwd文件中就会增加一行该用户的信息,其
格式如下:
〔用户名〕:〔密码〕:〔UID〕:〔GID〕:〔身份描述〕:〔主目录〕:〔登
陆Shell〕
其中个字段被冒号“:”分成7各部分。
由于小于500的UID和GID一般都是系统自己保留,不用做普通用户和组的标志,
所以新增加的用户和组一般都是UID和GID大于500的。
*查看所有的组:
$cat etc/group
*查看所有的组:
$cat etc/group
这里,用户都保存在了group文件中,所以查看这个文件的内容就可以看到所有
的用户了。
*添加一个用户testusr:
#useradd testusr
这里,注意在超级用户模式才能用,刚建立没有密码,没有自己的home,其他选项
可以参见man
*添加一个用户testusr,并自动建立其用户主目录:
#useradd -m testusr
运行完毕,自动生成用户的家目录,目录里面.bashrc等文件。
*删除一个用户testusr:
#userdel testusr
这里,命令不会把主目录删除.
*删除一个用户testusr,连同主目录和邮箱缓存等:
#userdel -r testusr
*切换到用户testusr:
$su testusr
如果用户需要密码,那么需要输入密码才能登录这个用户。
*切换到超级用户:
$su
这样,会提示输入超级用户的密码,输入之后,就会切换成超级用户了。
*以超级用户身份运行一个程序:
$sudo app
这样,会以超级用户身份运行app程序,如果当前权限不够的时候,这条命令是
很有用的。当然,运行之前需要输入自己的密码。还有如sudo su也是类似的。
*设置更改一个用户testusr的密码:
#passwd testusr
这里,需要在超级用户下,输入之后,按照提示输入旧密码和新密码就行了。
如果运行的passwd没有参数,那么会修改当前用户的密码。更改自己的密码只需输
入passwd 不用切换到超级用户下。
*修改用户testusr的主目录和登录的shell:
#usermod -d/home/quietheart -s/bin/bash testusr
这里,用户名testusr的主目录路径设置在/home/testusr,登陆的Shell设置为
/usr/bin/gcc(-d更新使用者新的登陆目录,-s指定新用户Shell),空格有无均可.
*修改用户testusr名称为test:
#usermod -l test testusr
把用户名testusr改成test(-l变更用户登陆时的名称,手册说同时使用者目录名也
会跟着更动成新的名称(实践了没变目录呀))usermod不允许改变正在线上的使用者
帐号名称.
*查看当前用户属于的组:
$groups
*查看testusr用户属于的组:
$groups testusr
(3)磁盘管理相关
*查看当前目录大小:
$du -sh
*查看文件的大小:
$du -sh filename
这里,filename是将要查看的文件名称。
*查看分区信息:
fdisk -l
这里,会显示你的电脑上面的所磁盘的信息,例如分区,文件系统等。当前必
须是root用户,否则没有权限。
**挂载磁盘相关:
你的linux系统必须将其他硬盘的其他分区(例如windows分区)挂载到根目录树
中,才能访问相应的分区。
*挂载分区/dev/sda7到/mnt/win:
#mount -t vfat /dev/sda7 /mnt/win
这样的挂载可能会出现显示中文的时候乱码,因为可能没有指定解码的字符集。
必须是超级用户才能执行。
*指定gb2312字符集的挂载:
#mount -t vfat -o iocharset=gb2312 /dev/sda7 /mnt/win
这样的挂载的时候,指定使用gb2312字符集,这样就可能没有乱码了。其他常
用的字符包括cp936,utf8等等(ntfs的一般用utf8挂载)。必须是超级用户才能执行。
*查看已经挂载的分区:
#mount
*卸载已经挂载的分区:
#umount /mnt/win
或#umount /dev/sda7
这里,是把/dev/sda7分区挂载到了/mnt/win上面。
*重新挂载:
#mount -o rw,remount /mnt/data
这里,时候文件系统变为只读了,试试这个命令.
*设置系统启动自动挂载某个分区:
方法之一是:在/etc/fstab中加入如下内容:
/dev/sda8 /mnt/winG vfat defaults,rw,exec,iocharset=utf8,umask=0000 0 0
(必须umask=0000,否则只有root可以写,并且root也不能更改chmod 777 -R ...这
是自己尝试出来的)
**
(4)其他操作
*清屏:
$clear
这样,当前用户的屏幕会被“清理”,并被重新刷新,原来输入的命令和命令的输
出都被清理掉了,也可以使用[Ctrl]l来达到相同的效果。
*查看系统的编码:
$locale
输入之后,例如我的机器输出如下:
LANG=zh_-8
LC_CTYPE="zh_-8"
LC_NUMERIC="zh_-8"
LC_TIME="zh_-8"
LC_COLLATE="zh_-8"
LC_MONETARY="zh_-8"
LC_MESSAGES="zh_-8"
LC_PAPER="zh_-8"
LC_NAME="zh_-8"
LC_ADDRESS="zh_-8"
LC_TELEPHONE="zh_-8"
LC_MEASUREMENT="zh_-8"
LC_IDENTIFICATION="zh_-8"
LC_ALL=
*启动xwindow图形界面:
$startx
这个命令是在纯粹的命令行下面运行的命令。
*切换到第一个纯命令行终端:
输入:[Ctrl][Alt][F1]
这样,如果在图形界面中运行这个命令,会切换到第一个命令终端上面。可以
是[F1]~[F7]等。
*切换到图形界面:
输入:[Ctrl][Alt][F7]
这样,如果在命令行终端,那么会切换到图形终端上面,的是[F7]有的是[F8]
等等,都不一定,一般是[F7]。
*退出图形界面:
两种方法,
方法1)注销(不会umount)
方法2)输入:[Ctrl][Alt][Backspace]
退出图形界面之后,不会umount之前mount过的分区。
*查看内核版本号:
$uname -r
这里,如果输入uname -a会显示所有的内核信息。
*查看发行的Linux版本号:
$cat /etc/issue
*搜索最近匹配的历史命令
使用如下步骤进行:
1)输入[Ctrl]r
2)输入以前输入的命令的子字符串
3)根据2)的输入会自动匹配最近的命令。
如果匹配了一个,但是我们需要的命令是更早的,那么再输入一下[Ctrl]r。
4)输入回车,运行匹配的命令。
*在当前目录中寻找指定的文件:
$find -name filename
这样,会在当前目录下递归地寻找名称为filename的文件,并且返回它的位置,
这里支持通配符号。
*在指定的目录中寻找指定的文件:
$find dirname -name filename
这样,会在dirname中递归地寻找名称为filename的文件。
*在文件中查找字符串:
$grep 'string' filename
这样会在文件filename中查找指定的字符串'string'并且返回那个字符串的位置。
*在当前目录中所有文件中查找指定的字符串:
$grep -r 'string' *
这里,使用了通配符号。
*查看当前时间:
$date
**GNome桌面下面的操作:
*切换桌面工作区域:
输入:[Ctrl][Alt]<左右方向键>
*锁屏幕:
输入:[Ctrl][Alt]l
*切换不同任务窗口的快捷键:
输入:[Alt][Tab]
*在桌面和上次的程序之间进行切换:
输入:[Ctrl][Alt]d
**
**任务的前台和后台控制:
假设我们运行了多个vi编辑器,以及其他程序(无论前台还是后台,实际上只有
一个前台的程序):
*将当前的程序放到后台停止:
输入:[Ctrl]z.
*查看所有在后台运行的程序:
$jobs.
输入之后,输出如下:
[1]- Stopped vi
[2]+ Stopped vi lex
这里,使用前面的数字来标记每一个后台运行的程序。
*将后台停止的指定程序变成后台运行:
$bg %1
这样会把第一个后台的作业调到后台运行,实际上,用bg 1就行了。
这样做之后,效果相当于运行了"app &",其中app是运行的程序,&表示放在后
台。
*将指定的后台运行的作业号放到前台运行:
$fg %1
这样会把第一个后台的作业调到前台运行,实际上,用fg 1就行了。
*将最近的被停止的程序放到前台运行:
$fg
*杀掉指定的后台运行的程序:
$kill %1
这样,会在后台运行的作业%1给杀掉。注意:这里的作业号用%来进行标记,
而不像进程直接用数字了。
**
***最基本的文件编辑操作:
这里提供了使用vi编辑文件的最基本的操作,能够实现大多数的编辑目的。
*用vi打开一个文件:
输入“vi filename”.
这里,filename就是你要打开的文件的名字,默认打开文件后vi处于指令模式。
*进入编辑模式编辑打开的文件:
输入“i”.
或输入“a”.
进入编辑模式后,你可以直接敲入想要输入的字符到文件,两者的区别是i在当
前字符前面开始插入,a在当前字符后面开始插入。
*退出编辑模式:
输入“[Esc]”.
这样,将返回指令模式,准备接收你要传达给vi的指令并执行,如果之前已经
在指令模式下,那么系统将响铃提醒一下。
**以下命令都是vi在命令模式下进行:
*撤销修改:
输入“u”.
这里,相比以前的vi来说,vim支持多步撤销。
*恢复修改:
输入“[Ctrl]r”.
这里,和撤销命令相反,是撤销的撤销,也可多步。
*复制行到剪切板:
输入“yy”.
*复制选定内容到剪切板:
(1)输入“v”。
(2)按方向键将高亮选择的内容。
(3)输入“y”。
这里,开始输入v使vi临时进入了一个"选择模式",输入方向键可以选择,输入y
将选择的内容复制剪切板。
*删除行:
输入“dd”.
注意,vi的删除等价于剪切,删除的内容会保存到剪切板中。
*删除选定内容:
(1)输入“v”。
(2)按方向键将高亮选择的内容。
(3)输入“d”。
这里,开始输入v使vi临时进入了一个“选择模式”,输入方向键可以选择,输入d
将选择的内容删除。
*粘贴:
输入“p”.
这样会将剪切板的内容粘贴到光标位置或者光标下一行。
*查找字符并定位到第一个匹配处:
输入“/character”.
这里character是待查找的字符,只要先输入/,再输入待查字符,最后回车即可
定位到第一个匹配的字符处。
*定位到匹配查找的下一个字符处:
输入“n”.
*定位到匹配查找的上一个字符处:
输入“N”.
*保存文件:
输入“:w”.
注意w前面的':',输入':'之后,vim会将':'之后的输入解释为待执行的指令。
*退出:
输入“:q”.
这里,如果文件没保存,将提示无法退出,除非你强制退出,不保存文件,或
者保存退出。
*强制退出:
输入“:q!”.
*保存退出:
输入“:wq”.
或输入“ZZ”.
*察看帮助
输入":help".
**
***
作者:QuietHeart
QQ:649711825
Email:quiet_heart000@
版权声明:本文标题:Linux命令学习手册-0前言 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1721822289a899344.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论