Linux命令相关的基本知识有哪些

74次阅读
没有评论

共计 7675 个字符,预计需要花费 20 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章给大家分享的是有关 Linux 命令相关的基本知识有哪些的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

本文约定对于每一个命令,大致分为如下三个部分

功能

简单介绍该命令功能。

举例

给出该命令最常使用的例子。

描述

详细描述该命令。

其他

该命令其他杂乱或者补充性的内容。

对于每个命令的使用例子,如下说明

以 orgmode 格式做为文档格式, orgmode 格式一方面可读性强, 另一方面便于将来导出为各种格式.

对于单个命令操作
+ 开始的列表项第一行给出要操作的目的,然后是具体的命令,最后给出该命令的详细解释。

例如:

+  列出当前目录的内容
 =$ls=
  这里,将会列出当前目录所文件。

如果命令过长,则使用
#+BEGIN_SRC/#+END_SRC 对。

对于某个系列的命令

具体的命令使用列表给出, 而命令所述的系列使用子标题(orgmode 中, 列表的排版比较容易出错, 所以使用子标题, 尽量避免嵌套列表)。

例如:

**  使用 vi 编辑: +  编辑之前首先打开文件 filename :
 =$vi filename=
  打开文件之后,操作如下: +  插入
  输入  =a=
 +  退出
  输入  =:q=

基本知识

这里简单介绍 linux 命令行的一般语法格式。这对初学者很重要,尤其是查找某个命令的帮助手册(
man 手册)的时候,不会什么也看不懂。

命令组成

一般 linux 的命令语法格式如下:

命令名称 项 项参数(值) 命令参数(值)

例如:

od [OPTION]... [FILE]... 
这里,命令名称是  =od= , 项是 OPTION。这里项用 [] 括起来表示这个部分在  =od=  命令里面可可无。命令的参数是 FILE 也是可可无;... 表示其前面的东西(这里是 OPTION 和 FILE 可以不只一个. 一般来说(不是绝对的),在  =man=  手册里面,命令中像 OPTION 和 FILE 这样的变量形式的参数(即其值取决于用户的键入部分会用特殊颜色显示出来;而  =od=  这样本身是固定的部分(即不是用户能改变的用另外一种颜色显示(例如加粗)。也有的描述中把可变的部分用 括起来。

再如:

cp [OPTION]... SOURCE... DIRECTORY 
从这里可以看出,=cp=  命令参数 SOURCE 和 DIRECTORY, 其中 SOURCE 参数可以是多个,DIRECTORY 只能一个。OPTION 部分可可无,但是 SOURCE 和 DIRECTORY 部分必须要。 
具体的例子: 
=$cp -r file1 file2 dir=

关于项

项简单书写形式也复杂书写形式。简单形式的项一般用
– 引出,复杂形式一般用
— 引出等等。

例如:

$cp -v file1 file2 等价于
$cp –verbose file1 file2

这里,=-v= 和
–verbose 是一样的,
-v 是简写形式,
–verbose 是复杂形式。

又例如:

cp -r src des

其中,
-r 就是其中的 [OPTION] 部分,也可以是
–recursive。

另外,有些命令的项不用
– 来引出,例如:

$unrar e test.rar

使用
e 项指定
unrar 命令解压
test.rar 文件。

有些命令项用
– 做为前缀,然后可以接多个选项, 例如:

$tar -czvf dir.tgz dir

这个命令使用
tar 命令的
-c -z -v -f 四个项,给
dir 目录打包并且压缩,生成结果文件为
dir.tgz.

在项用’[]’包含起来表示可的同时,如果几个值其中只能出现一个的话那么用’|’来分开。例如:

command [-a|-b]

这里,
command 是假设的一个命令,这表示这个命令
command 中,
-a 和
-b 项,两者要么都没,要么只一个。

关于项的参数

不光是命令,命令的项也可以参数。

这里举一个复杂点的命令

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 的目录

$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 中的快捷方式。

权限管理相关

修改文件的权限为所人可读可写可执行

$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

磁盘管理相关

查看当前目录大小

$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 … 这是自己尝试出来的。

其他操作

清屏

$clear

这样,当前用户的屏幕会被“清理”, 并被重新刷新,原来输入的命令和命令的输出都被清理掉了,也可以使用
[Ctrl]l 来达到相同的效果。

查看系统的编码

$locale

输入之后,例如我的机器输出如下:

LANG=zh_CN.UTF-8 
LC_CTYPE= zh_CN.UTF-8  
LC_NUMERIC= zh_CN.UTF-8  
LC_TIME= zh_CN.UTF-8  
LC_COLLATE= zh_CN.UTF-8  
LC_MONETARY= zh_CN.UTF-8  
LC_MESSAGES= zh_CN.UTF-8  
LC_PAPER= zh_CN.UTF-8  
LC_NAME= zh_CN.UTF-8  
LC_ADDRESS= zh_CN.UTF-8  
LC_TELEPHONE= zh_CN.UTF-8  
LC_MEASUREMENT= zh_CN.UTF-8  
LC_IDENTIFICATION= zh_CN.UTF-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

搜索最近匹配的历史命令

使用如下步骤进行:

输入
[Ctrl]r

输入以前输入的命令的子字符串

根据 2 的输入会自动匹配最近的命令。

如果匹配了一个,但是我们需要的命令是更早的,那么再输入一下
[Ctrl]r。

输入回车,运行匹配的命令。

在当前目录中寻找指定的文件

$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

复制定内容到剪切板

输入
v。

方向键将高亮择的内容。

输入
y。

这里,开始输入
v 使 vi 临时进入了一个”选择模式”,输入方向键可以择,输入
y 将择的内容复制剪切板。

删除行

输入
dd

注意,vi 的删除等价于剪切,删除的内容会保存到剪切板中。

删除定内容

输入
v。

方向键将高亮择的内容。

输入
d。

这里,开始输入
v 使 vi 临时进入了一个“选择模式”,输入方向键可以择,输入
d 将择的内容删除。

粘贴

输入
p

这样会将剪切板的内容粘贴到光标位置或者光标下一行。

查找字符并定位到第一个匹配处

输入
/character

这里
character 是待查找的字符,只要先输入
/,再输入待查字符,最后回车即可定位到第一个匹配的字符处。

定位到匹配查找的下一个字符处

输入
n

定位到匹配查找的上一个字符处

输入
N

保存文件

输入
:w

注意
w 前面的
:,输入
: 之后,vim 会将
: 之后的输入解释为待执行的指令。

退出

输入
:q

这里,如果文件没保存,将提示无法退出,除非你强制退出,不保存文件,或者保存退出。

强制退出

输入
:q!

保存退出

输入
:wq

或输入
ZZ.

察看帮助

输入
:help

感谢各位的阅读!关于“Linux 命令相关的基本知识有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-07发表,共计7675字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)