Linux命令

查看Linux内核版本命令

uname (Unix name)显示系统信息
当没有选项时,默认启用 -s 选项
如果给出多个选项或 -a 选项时,输出信息按以下字段排序:内核名称, 主机名称, 内核release, 内核版本, 机器名称, 处理器, 硬件平台, 操作系统
在这里插入图片描述
-a, --all 按顺序打印全部信息,如果 -p 和 -i 的信息是未知,那么省略
-s, --kernel-name 打印内核名称
-n, --nodename 打印网络节点主机名称
-r, --kernel-release 打印内核release
-v, --kernel-version 打印内核版本
-m, --machine 打印机器名称
-p, --processor 打印处理器名称
-i, --hardware-platform 打印硬件平台名称
-o, --operating-system 打印操作系统名称
--help 显示帮助信息并退出
--version 显示版本信息并退出

uname -a

cat /proc/version 查看内核信息

cat /proc/version

查看Linux系统版本的命令

lsb_release 显示发行版本信息
LSB是Linux Standard Base的缩写, lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数
-v 显示版本信息
-i 显示发行版的id
-d 显示该发行版的描述信息
-r 显示当前系统是发行版的具体版本号
-c 发行版代号
-a 显示上面的所有信息
-h 显示帮助信息

lsb_release -a /* 列出版本信息 */

cat /etc/issue 适用于所有的Linux发行版

cat /etc/issue /* 列出版本信息 */

help帮助命令

help command /* 详细帮助信息 */
help -d command /* 输出每个主题的简短描述 */
help -m command /* 以伪 man 手册的格式显示使用方法 */
command --help
man command /* 查看相应的手册 */
man -w command /* 查看对应手册位置 */

cd命令(Change Directory)

cd切换目录,home directory(主目录)
~表示为home directory的意思
.表示当前所在的目录
..表示当前所在目录的上一层目录
cd ~是跳转到当前用户的主目录
如果是root用户,相当于 cd /root
如果是普通用户,相当于cd /home/当前用户名

cd ~ /* 进入用户主目录 */
cd   /* 进入用户主目录 */
cd - /* 返回进入此目录之前所在的目录 */
cd / /* 返回根目录 */

ctrl快捷键

ctrl + u /* 从光标位置剪切到行首 */
ctrl + k /* 从光标位置剪切到行尾 */
ctrl + a /* 光标跳到命令行的开头 */
ctrl + e /* 光标跳到命令行的结尾 */
ctrl + l /* 除屏幕并将当前行移到页面顶部 */
ctrl + r /* 在历史命令中查找,输入关键字就联想出以前的命令,输入!命令加上编号(!2)就可以直接执行该历史命令 */
ctrl + c /* 强制中断程序的执行,进程已经终止 */
ctrl + z /* 将任务中止(挂起),任务并没有结束,他仍然在进程中他只是维持挂起的状态 */
ctrl + d /* 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。在shell中,表示退出当前shell,相当于exit */

sudo

以 root 身份运行命令,使用权限:在 /etc/sudoers 中有出现的使用者

sudo date /* 若用户具有可运行sudo的权限,sudo 完之后一般还需要输入用户密码的 */

su(Switch User)

su命令用于在已登录的会话中切换到另外一个用户,需要输入目标用户的密码

su /* 切换到root用户之后仍然保持原始用户的环境 */
su - /* 创建一个新的环境(由root用户~/.bashrc文件所设置的环境)*/

useradd + passwd + userdel

useradd 添加新用户
passwd 修改用户密码
userdel 删除用户,需要root用户权限

useradd lion /* 添加一个lion用户,添加完之后在/home路径下可以查看 */
passwd lion	/* 修改lion用户的密码 */
userdel lion	/* 只会删除用户名,不会从/home中删除对应文件夹 */
userdel lion -r	/* 同时删除/home下的对应文件夹 */

groups + groupadd + groupdel

groups 查看用户所在群组
groupadd 创建群组,用法和useradd类似
groupdel 删除一个已存在的群组

groups lion /*查看lion用户所在的群组 */
groupadd foo /* 添加组 */
groupdel foo /* 删除foo群组 */

chgrp(Change group)

用于修改文件的群组

chgrp groupA file.txt /* file.txt文件的群组修改为groupA */

chown(Change owner)

改变文件的所有者,需要root身份才能运行

chown user file.txt /* 把其它用户创建的file.txt转让给lion用户 */
chown user:groupA file.txt /* 把file.txt的用户改为user,群组改为groupA

chmod(Change mode)

控制用户对文件的权限的命令,Linux 操作系统为文件定义了读、写、执行三种权限,系统采用 rwx来分别表示文件的读、写、执行权限
-r 递归授权
chmod 的参数可以分为两种,分别是权限模式和数字模式
权限模式使用ugo分别代表拥有者、同组用户、其他组用户,使用+-代表赋予和收回权限

chmod u+x, g+w file1 /* 将文件file1的执行权限给当前用户,写权限赋给用户所在的用户组和其他用户,-r递归授权 */
mkdir dir
chmod g+wx dir
chmod +t dir /* +t粘滞位替换x,表明这个目录中的文件只能被文件拥有者、目录的拥有者和超级用户root删除 */

数字模式使用二进制的形式代表r、w、x三种权限,如101(5)=r-x

chmod 770 file1.txt /* rwxrwx--- */

usermod

用于修改用户账户的各项设定
常用选项:
-d 修改用户登录时的目录
-g 修改用户所在的群组
-l 修改用户登录名。需要注意的是/home中的用户家目录的名字不会改变,需要手动修改
-L 锁定用户密码,使密码无效
-U 接触密码锁定
-u 修改用户uid
-a -G 会让你离开原先的群组,如果你不想这样做的话,就得再添加 -a 参数,意味着 append 追加的意思。

usermod -l 新用户名 旧用户名
usermod -g groupA user /* 修改user用户的群组为groupA */
usermod -d /home /root /* 更改登录目录 */
usermod -G groupA /* 离开其他用户组,仅仅做为groupA组的成员 */
usermod -a -G groupA user /* 将user用户添加到用户组groupA中 */

who(Who Is logged in)

who /* 列出当前登录的用户名 */

find

用于查找文件,会去遍历实际硬盘进行查找,而且允许对每个找到的文件进行后续操作,功能非常强大
使用形式:find 要查找路径 表达式find path -option 表达式 [action],如果path是空字串则使用当前路径

find / -name "file.txt" /* 整个硬盘下查找file.txt文件 */
find . -name "[A-Z]*" /* 当前目录及子目录中查找文件名以一个大写字母开头的文件 */
find /var -size +10M /* /var目录下查找文件大小超过10M的文件 */
find /var -size -10M /* /var目录下查找文件大小小于 0M的文件 */
find -name "*.txt" -atime -7 /* 近 7天内访问过的.txt结尾的文件 */
find . -name ".txt" -exec wc -l {} \; /* -exec指定了要针对每个找到的文件运行的命令。花括号{}时文件的占位符,而转移的分号;用于防止shell解释该命令。可以使用加号 + 来实现同样的效果 */
find . -name ".txt" -exec wc -l {} + /* +号将会打印总计行数 */
find . -name ".txt" | xargs rm -rf /* xargs命令作用,就是将标准输入转为命令行参数 */
find * | grep-v '\(1.txt\|2.txt\)' | xargs rm /* 删除全部文件,保留1.txt和2.txt */
find /usr/data | grep-v '\(usr/data/app.hex\|usr/data/app.elf|usr/date$\)' | xargs rm /* 删除data文件下除app.hex和app.elf以外的所有文件 */

tar命令(Tape Archive)

tar磁带归档,将一大堆文件或目录打包成一个总的文件,习惯上以.tar后缀作辨识,tar本身不具有压缩功能,根据选项压缩
常用选项:
-c 创建新的打包文件
-x 从打包文件中还原文件
-v 显示指令执行过程
-f 指定文件名字,这个参数是必须的
-z 支持gzip指令处理打包的文件
-j 支持bzip2指令处理打包的文件

tar -cvf filename.tar filename /* 将filename文件夹打包为filename.tar */
tar -xvf filename.tar /* 还原文件filename.tar */
tar -cvzf filename.tar.gz filename /* 将打包后的文件进行gzip压缩 */
tar -xvzf filename.tar.gz /* 解压文件到当前目录 */
tar -xvzf filename.tar.gz -C ./dir /* 解压文件到dir目录 */
tar -cvzf workname.tar.gz --exclude=*.repo --exclude=*.git workname /* 压缩为workname文件夹,并排除其中的.git, .repo文件夹 */

zip

兼容Linux和Windows,可以压缩多个文件或目录
使用形式:zip -option 压缩后的文件 需要压缩的文件
常用参数选项:
-r 递归压缩

zip file.zip file1 file2 file3 /* 将文件 file1 file2 file3 压缩成格式zip */
zip -r filename.zip filename /* 将filename文件夹递归压缩为filename.zip,默认压缩格式后缀就是.zip */

unzip

解压缩zip文件,unzip为.zip压缩文件的解压缩程序
使用形式:unzip 压缩文件.zip -d 需要解压缩到哪个目录

unzip filename /* 解压所有文件 */
unzip filename.zip -d filename /* 将filename.zip压缩文件解压到filename文件中 */

zstd

zstd这种新的压缩算法,速度和性能都不错
使用方式 :zstd [args] [FILE(s)] [-o file]

zstd file /* 将 file 压缩成一个后缀为.zst的新文件,如果命令后面没有文件或文件为-的话,则读取标准输入 */
zstd -d file.zst /* 解压zst压缩包 */
tar -I zstd -xvf archive.tar.zst /* 在linux中可以使用tar命令来解压.zst/tar.zst文件 */

which

查看命令的可执行文件所在路径,每一条命令其实都对应一个可执行程序

which ls /* 查看ls命令所在位置 */

free(Free memory)

free -h /* 显示内存状态 */

df(Disk space Free)

df -lh /* 显示磁盘使用情况*/

du(Disk usage)

列举目录或文件大小信息
常用选项:
-h 适合人类阅读的
-a 同时列举出目录下文件的大小信息
-s 只显示总计大小,不显示具体信息

du -sh /* 查看目录占用空间 */
du -h readme.txt /* 显示指定文件所占空间 */

file

显示文件的类型
file [选项] 文件或目录…

file filename

tail

将每个FILE的最后10行打印到标准输出
常用选项:
-f 随着文件末尾的内容增长,会持续显示被新添加到文件中的内容
-C 选项来显示检索结果的前后几行

tail -f log_file 
tail -f log_file | grep -C 3 error
tail -f log_file | grep -C 3 -i - E 'error|debug' /* 不区分大小写,同时搜索多个关键字 */

grep

在文件中查找符合条件的字符串
使用形式:grep [选项] [范本样式] [文件或目录…]
-i 忽略大小写, grep -i path /etc/profile
-n 显示行号,grep -n path /etc/profile
-r 递归查找,grep -r hello /etc,Linux中还有一个rgrep命令,作用相当于grep -r
-v 只显示搜索文本不在的那些行,grep -v path /etc/profile
-l 代表“显示文件名,而不是结果本身
-c 只打印匹配的行数,不显示匹配的内容

grep text file /* text代表要搜索的文本,file代表供搜索的文件 */
grep stretch /etc /* 搜索/etc/目录下所有包含stretch字符串的文件,但不去搜索其中的子目录 */
grep -r stretch /etc /* 在/etc/及其子目录中搜索包含 stretch 字符串的文件 */
grep -E ^path /etc/profile /* 可以配合正则表达式使用,匹配path开头的字符串 */

Core文件

在 Linux 系统中,常将“主内存”称为核心(core),而核心映像(core image) 就是 “进程”(process)执行当时的内存内容。当进程发生错误或收到“信号”(signal) 而终止执行时,系统会将核心映像写入一个文件,以作为调试之用,这就是所谓的核心转储(core dump)。当在一个程序崩溃时,系统会在指定目录下生成一个core文件,我们就可以通过 core文件来对造成程序崩贵的原因进行调试定位。

ulimit -a
ulimit -c unlimited /* 不限制产生 core 的大小,当前终端有效,退出终端或者打开一个新的终端时是无效的,配置加入到 /etc/profile 中确保推出终端后有效 */
ulimit -c 0 /* 核心转储功能关闭,只需要将限制大小设为0 */

重定向

把本来要显示在终端的命令结果,输送到别的地方(到文件中或者作为其他命令的输入)
>表示重定向到新的文件,如果输出的文件不存在它会新建一个,如果输出的文件已经存在,则会覆盖
>>表示重定向到文件末尾,它是追加到文件的末尾

管道

把两个命令连起来使用,一个命令的输出作为另外一个命令的输入,英文是pipeline,可以想象一个个水管连接起来,管道算是重定向流的一种

ps -ef|grep nginx /* 在所有进程中查看nginx进程 */

流并非一个命令,在计算机科学中,流stream的含义是比较难理解的,记住一点即可:流就是读一点数据, 处理一点点数据。其中数据一般就是二进制格式。上面提及的重定向或管道,就是把数据当做流去运转的


Vim

查找
处于交互模式下,按下/键,那么就进入查找模式,输入你要查找的字符串,然后按下回车从当前光标处开始向文件尾搜索
向文件头搜索则使用?,当然也可以先按下gg跳转到第一行在进行全文搜索
n 跳转到下一个匹配项
N 跳转到上一个匹配项

查找并替换
:[range]substitute/from/to/[flags]
这个命令把[range]指定范围中的字符串from修改为字符串to:substitute可以缩写为:s。如果没有指定range:s命令只作⽤在当前⾏,默认情况下只对某⼀⾏中的第⼀个匹配点起作⽤,要对⾏中所有匹配点起作⽤,需要加⼀个 g (global,全局) 标记。

:1,10s/from/to/ /* 表示在第1到第10行(包含第1,第10行)之间搜索替换 */
:%s/Professor/Teacher/g /* %表示命令作⽤于全部⾏,g表示匹配行中所有匹配点 */
:g/^s*$/d /* 匹配空行,其中^表示行首,s表示空字符,包括空格和制表符,*重复0到n个前面的字符,$表示行尾。连起来就是匹配只有空字符的行,也就是空行 */
:%s/ *$// /* 删除行尾空格 */
:%s/\n//g /* 删除换行 */
:set list /* 显示换行,可以看到以“$”表示的换行符和以“^I”表示的制表符 */
:set fileformat? /* 查询文件格式 */
:set fileformat=unix /* 行尾换行符 */
:set fileformats=dos /* 行尾回车换行 */

flags有如下四个选项
c confirm,每次替换前询问
e error, 不显示错误
g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串
i ignore,忽略大小写
n 防止任何替换

补全

Ctrl +n /* 关键字补全 */

统计字符串个数

:%s/string//gn /* n标志以避免替换, 报告的替换数是项目数 */

string为要统计的字符串
合并文件
可以用冒号 +r ( :r ) 实现在光标处插入一个文件的内容

:r filename /* 可以用Tab键来自动补全另外一个文件的路径 */

运行外部命令 :!

:!ls /* 在Vim中打开的文件所在的目录运行ls命令 */

hex模式
Vim 有一个名为 xxd 的内置命令,外部 shell 命令,可以从 Vim 命令行模式使用它来直接在 Vim 中转换二进制文件,打开二进制文件(或任何其他代码文件)后,使用以下命令将二进制文件转换为十六进制表示形式(请记住备份文件以避免数据丢失)

:%!xxd /* 将文件换为十六进制表示形式 */
:%!xxd -r /* 十六进制转储转换(或者打补丁)成二进制形式 */
:%!xxd -r -ps /* 将纯十六进制转储的反向输出打印为了ASCII格式 */
:vim -b test.txt /* 打开二进制文件 */

分屏
Vim有一个特别便捷的功能那就是分屏,可以同时打开好几个文件,分屏之后,屏幕每一块被称为一个 viewport ,表示“视口”
横向分屏 :sp 文件名
垂直分屏 :vsp 文件名
分屏模式下的快捷键
Ctrl + w 再加 Ctrl + w ,表示从一个 viewport 移动光标到另外一个 viewport ;
Ctrl + w 再加 “方向键”,就可以移动到这个方向所处的下一个视口了;
Ctrl + w 再加 + 号,表示扩大当前视口;
Ctrl + w 再加 - 号,表示缩小当前视口;
Ctrl + w 再加 = 号,表示平均当前视口;
Ctrl + w 再加 r 键,会反向调换视口位置;
Ctrl + w 再加 q 键,会关闭当前视口;
Ctrl + w 再加 o 键,会关闭除当前视口以外的所有视口

可视模式
v 字符可视模式,进入后配合方向键选中字符后,然后再按 d 键可以删除选中。
V 行可视模式,进入后光标所在行默认被选中,然后再按 d 键可以删除所在行。
Ctrl + v 块可视模式,它是可视模式最有用的功能了,配合dI键可以实现删除选中的内容和插入内容

删除列
1. 光标定位到要操作的地方。
2. CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3. d 删除。
插入列
插入操作的话知识稍有区别。例如我们在每一行前都插入"() ":
1. 光标定位到要操作的地方。
2. CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3. SHIFT+i(I) 输入要插入的内容。
4. ESC 按两次,会在每行的选定的区域出现插入的内容。

Vim配置
在Vim被启动后,可以运行一些指令来激活一些选项参数,但是这些选项参数的配置在退出Vim时会被忘记,例如前面讲解的激活行号。如果希望所在的配置是永久性的,那么需要在家目录cd ~创建一个Vim 的配置文件.vimrc

.vimrc
set number /* 显示行号 */
syntax on /* 激活语法高亮 */
set showcmd /* 实时看到输入的命令 */
set ignorecase /* 搜索时不区分大小写 */
set mouse=a /* 激活鼠标,用鼠标选中时相当于进入可视模式 */

Vim配置非常丰富,可以通过个性化配置把Vim打造成属于自己的IDE等,在github上也可以搜索到一些强大的Vim配置文件
Linux命令大全

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux命令PDF是一种包含Linux操作系统中常用命令和其使用方法的电子书格式文件。通过下载和阅读Linux命令PDF,用户可以方便地学习、查找和使用Linux系统中的各种命令Linux命令PDF中通常会包含诸如文件操作、目录管理、进程管理、网络配置、软件安装等方面的命令。通过学习这些命令,用户可以更好地理解和掌握Linux系统的使用。不论是Linux初学者还是有经验的用户,都可以利用Linux命令PDF来提高自己的技能和效率。 Linux命令PDF的优势包括: 1. 全面性:Linux命令PDF中包含了Linux系统中几乎所有的常用命令,用户可根据需要选择学习和掌握特定的命令。 2. 方便性:PDF文件格式易于阅读和搜索,用户可以方便地在文档中查找和定位具体的命令和使用方法。 3. 离线使用:用户可以将Linux命令PDF下载到本地,便于随时查阅,无需依赖网络连接。 4. 可打印性:用户可以将Linux命令PDF打印成纸质文档,以备在没有电脑或电子设备的情况下使用。 5. 更新性:由于Linux系统的不断更新和发展,命令也在不断增加和演变。因此,一些Linux命令PDF会提供定期的更新版本,使用户能够获取到最新的命令和使用方法。 总之,Linux命令PDF是一种有助于用户学习和使用Linux系统的工具。通过下载和了解Linux命令PDF,用户可以很快地了解和掌握Linux系统中的常用命令,从而提高自己的工作效率和技能水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值