Linux常用命令总结 - Go语言中文社区

Linux常用命令总结


下面是一年多前读《鸟哥的Linux私房菜》总结的常用的命令、快捷键、Linux特殊符号。

Linux 常用命令 commond [-opt] param1 param2 ...

ls

列出目录内容

ls [opt]...  [file]...

参数:

-a 列出所有的条目,包括隐藏的文件

-l 列出文件的详细信息

-s 打印文件的大小[块]

-t 文件按时间排序

-h 用人类易读的方式打印文件大小[KB/MB/GB]

nl

带有行号的输出文件内容

nl [opt] [file]

locale

查看或设置语言设置

locale [opt]

man

在线参考手册

man [cmd]

附加功能:

/[word] 向下查找文档中的字符 ?[word]  向上

[Home]/[End] 去第一页或者最后一页

n/N 查询下一个或者上一个

shutdown

中断[halt]、关机[poweroff]或者重启计算机[reboot]

shutdown [opt] time [warring]

例子:

shutdown -H now|time中断 | halt

shutdown -P/-h now|time 关机 | poweroff

shutdown -r now|time 重启 | reboot

su

切换用户

su [opt] [u Name]

sudo

升级权限

sudo -S可以通过管道,免输入密码,shell编程时有用

例如: echo “root” | sudo -S source /etc/profile

alias

别名设置 [unalias 删除别名]

例子:

alias la=”ls -al”

uname

查看系统信息

uname [opt]

参数:

-a 打印出所有信息

-s 打印出内核名

-r 打印出发行版内核信息

-n 打印出网络节点主机名

 

env

查看系统的环境变量[可以用set查看自定义的环境变量]

常见环境变量说明:[本机]

HOSTNAME=ubuntu  <== 主机名

TERM=xterm-256color <== 终端机使用的环境

SHELL=/bin/bash <== 使用的是那个shell

HISTSIZE=1000 <== 指令历史纪录条数

OLDPWD=/home/wxh <== 上一个工作目录

USER=root <== 当前使用者

PATH=...... <== 执行文件索搜的目录

RANDOM <== 随机数[0~32767]

locale

查看语言环境信息[LANG是主语言环境值,最重要]

locale [opt]

ulimit

设置/查看用户系统资源的限制

ulimit [opt] [配额]

-H 严格设定

-S 警告设定

-a 列出所有限制额度

......

history

打印出以前使用过的命令

history [opt]

参数:

n 列出几条命令

stty

查询或设置终端机的快捷键

参数:

-a 列出所有的参数

说明:

intr 中断程序

quit 发出一个quit到目前正在运行的run程序

kill 删除目前指令列上所有文字

eof  End Of File 结束输入

start 重启output

stop 停止屏幕的输出

printf

格式化输出数据

printf  ‘打印格式’ data

参数:

a 警告声

b 退格键

f 清除屏幕

n 换行

r Enter键

t 水平tab 键

例子:

apt-get

处理软件包的命令行

apt-get [opt] [cmd] [pkg]

参数:

-q 输出到日志

-qq 不输出到日志

-d 仅下载,不安装或者解压

-y 不提示询问,直接YES

-f 尝试修正系统依赖损坏处

-m 如果归档无法定位,继续尝试

-u 显示更新软件包的列表

命令:

install 安装新的软件包

remove 移除软件包

update 重新获取软件包列表

upgrade 进行更新

autoremove 自动移除全部不使用的软件包

purge 移除软件包和配置文件

source 下载源码档案

check 检验是否有损坏

clean 清楚下载的归档文件

build-dep 为源码包配置编译依赖

apt-key

Debian软件包的安全管理工具。每一个发布的deb包,都是通过秘钥认证,apt-key用来管理秘钥

例子:

apt-key list  列出已保存在系统中的key

apt-key add keyname  把下载的key添加到本地trusted数据库中

apt-key del keyname  从本地trusted数据库删除key

apt-key update  更新本地trusted数据库,删除过期没用的key

dpkg

Debian的安装包管理器

dpkg [opt] [action]

参数:

-i 安装deb包

-c 检查、列出deb包的内容

-l 显示已经安装的deb包和信息[后面接filename就是查询]

-r 移除一个已安装的包裹[保留配置信息]

-P 清除配置文件在内的所有包裹信息

-L 显示包安装到系统里面的文件目录信息[后面接filename就是查询]

-s 显示已安装的包裹信息

-A 从软件包里读取软件信息

--configure 重新配置和释放软件

curl

通过url语法在命令行下上传或者下载的软件工具

curl [opt] [URL]

参数:

-C continue-at 断点传输

-c cookie jar 命令执行成功保存操作时生成的cookie到文件

-r range 分块下载

-v verbose 打印出更多信息

-m max-time 处理的最大时长

-H header 指定请求头参数

--connect-timeout 指定尝试连接的最大时间

-x proxy 指定代理服务器地址和端口

-T upload file 指定上传文件路径

-o output file 指定输出文件名

-O same as -o 但是保留原来的文件名

-d data 指定post内容

--retry 指定重试次数

-e referer url 指定引用地址

-I head 仅仅返回头部信息

-s silent 不输出任何东西

-L location 如果curl URL发生改变就跳转到新的地址

diff

比较文件或者软件的新旧版本的差异

diff [opt] from-file to-file

参数:

-b 忽略每行中的空格差异

-B 忽略空白行的差异

-i 忽略大小写的差异

crontab

设置周期性被执行的指令[通过配置/etc/crontab来配置系统的例行性任务]

crontab [-u username] [opt]

参数:

-u 帮助其他使用者建立/移除crontab执行功能[只有root才能执行]

-e 编辑crontab工作内容[edit]

-l 查阅crontab工作内容[list]

-r 移除所有的crontab的工作内容[remove]

指令编辑:

时间+指令串

注意anacrontab的使用


wget

文件下载工具

wget [opt] [url]

参数:

-O 重命名下载的文件[动态链接下载通常文件名不正确]

-c 重启下载中断的文件[断点传输]

-b 后台下载[通过tail -f  wget-log查看下载进度]

-o 把下载信息保存到日志文件[download.log]

-Q 限制下载文件的大小

--limit-rate 限速下载

--wget-spider 测试下载速度

--mirror镜像网站下载

kill

终止一个进程 [killall支持进程名]

ps

显示瞬间进程的状态

ps [opt]

常用参数组合:

-aux/ 显示所有进程详细信息

-ef 显示所有进程详细信息

--sort 根据cpu或者内存使用率排序

xargs

将标准输入作为命令的参数

STNIN | xargs commond

xargs 与 没有xargs 的区别:


type

获取命令的来源是别名、函数还是外部命令

sysctl

配置与显示在/proc/sys目录中的内核参数,可以用sysctl来设置或重新设置联网功能,比如:ip转发、ip碎片去除以及源路由检查等

参数:

-w 临时改变某个指定参数的值

-a 显示所有系统参数

-p 从指定的文件加载系统参数

例子:

sysctl -w net.ipv4.ip_forward=1 开启ip路由转发功能

常用的管道命令

cut

将一段信息的某一段取出来

cut [opt]

参数:

-d 后面接分隔字符 与-f一起使用

-f 取出第几段

-c 以字符的单位取出固定字符区间

例子:


grep

取出符合要求的行[主要是行]

grep [opt] ‘find str’ file

参数:

-c 计算找到字符串的次数

-i 忽略大小写

-n 输出行号

-v 反向选择

注意:

执行grep返回0表示索搜成功

返回1表示索搜失败

返回2表示文件不存在

sed

用于过滤和转换文本的流编辑器 [主要是行]

sed [opt] [action]

参数:

-n 安静模式,不会打印多余的东西

-c 直接在指令模式上编辑

-f 直接将sed的动作写在一个文件中

-r sed动作支持延伸正规表示法

-i 直接修改读取文件内容,而不是屏幕输出

动作: [n1,n2]function

a 新增

c 取代

d 删除

i 插入

p 打印

s 取代

例子:


awk

查找和文件语言处理[强大的文本处理工具,默认对行切片]

awk ‘{条件1 动作1} {条件2 动作2}.......’filename

参数:

-F 指定分隔符 后面接分隔符

输出可以用print或者printf

例子:

sort

排序指令 [uuiq在排序后使用,只显示同一个]

sort [opt] [file|stdin]

参数:

-f 忽略大小写

-M 以月份排序

-n 使纯数字进行排序

-r 反向排序

-t 分隔符

-k 以哪个区间来进行排序

tee

双向重向导 [> 在输出到屏幕或者file后就不能处理]

tee [-a] file

参数:

-a 以累加的方式写入到文件中

例子:

ls -l / | tee ~/homefile | grep -v 'etc' | less

split

文件的分区拆分[大文件拆分成多个小文件]

split [-bl] file PREFIX

参数:

-b 后面接欲分区的文件大小[b、k、m]

-l 以行数来进行分区

例子:

wxh@ubuntu:~$ cd /tmp; split -b 100K /etc/services  services

Shell Bash常用

read

读取键盘输入的值

read [opt] [var]

参数:

-p 后面接输入提示符

-t 后面接等着输入的时间

例子:

declare/typeset

声明变量的类型

declare [opt] var

参数:

-a 声明为数组

-i 声明为整型

-x 声明为全局变量 = export 作用

-r 设置变量为readonly = java static final

-f 设置为函数

例子:

echo

在显示器中打印一段文字

echo [opt] str

参数:

-n 不输出换行

-e 可以识别反斜杠

unset

取消变量或者函数

参数:

-f 删除指定的函数

-v删除指定的变量,默认

export

设置环境变量

参数:

-f 代表变量为函数名称

-p 列出shell程序中的环境变量

注意:

export添加的变量对父shell无效,只对当前shell和其子shell有效,当前shell执行完毕后,export的环境变量就自动销毁

export 只对当前的bash登陆的session有效,存放在内存中

可以编辑 /etc/profile文件修改环境变量,用source命令执行生效

source

执行配置文件,使之立即生效不用注销

source filename

test

核对文件类型或者比较值

test expression

文件类型判断:

-e 该档名是否存在

-f 该档名是否存在且为文件

-d 文件名是否存在且为目录

文件的权限判断:

-r 是否存在且是否有可读权限

-w 是否存在且是否有可写权限

-x 是否存在且是否有可执行权限

-s 是否存在且是否为非空白文件

两个文件比较:

-nt [newer than] 判断 file1 是否比 file2 新

-ot [older than] 判断 file1 是否比 file2 旧

-ef [equal file] 判断是否是同一个文件[判断inode]

两个整数比较:

-eq 两个整数比较[equal]

-ne 两个数值不等[not equal]

-gt [greater than] n1 大于n2

-lt [less than] n1 小于 n2

-ge [greater than and equal] n1 >= n2

-le [less than and equal] n1<= n2

字符串判断:

test -z string 判断字符串是否为0? 若为空则为true

test -n string 判断字符串不为o?若为空则为false

test str1 == str2 若相等 返回 true

test str1 != str2 若相等 返回 false

多重判断条件:

-a and 两个同时成立 例如: test -r file -a -x file

-o or 两个有一个

! 非 相反

用户权限相关命令

chgrp

改变文件所属群组

例子:

chgrp -r grpname dir/file

chown

改变文件拥有者

例子:

chown -r uName dir/file

chmod

改变文件权限

chmod -r ugo dir/file [-r 递归]

r 4 | w 2 | x 1

u=user, g=group, o=others

例子:

chmod -r 777 dir

chmod u=rwx,go=rx file

umask

查看/设置文件默认的权限

umask加的是禁用的属性

例子:

umask 022 等于设置的默认权限是 u=rwx, go=rx

groups

查看当前用户所在的群组

newgrp

切换当前的有效群组

useradd

创建一个新用户

user [opt] 账户

参数:

-u 后面接UID,指定本账户

-g 后面接init group

-G 后面接minor group

-d 指定home目录,而不使用默认home目录

-s 指定shell,取代默认的/bin/bash

-e 后面接日期,格式为[YYYY-MM-DD]账号失效日期

-f 指定密码是否会失效

-D 查看预设值

passwd

passwd: 修改用户密码

passwd [opt] [user]

usermod

修改一个用户账户的属性

usermod [opt] [user]

参数:

-d 后面接家目录

-e 账户失效日期[YYYY-MM-DD]

-f 后面接天数,密码失效

-g 后面接init group

-G 后面接minor group

-a 增加群组

-l 修改账号名称

-s 指定shell

-u 后面接UID

userdel

删除用户

userdel [-r] [user]

参数:

-r 连用户的home目录一起删除[递归删除]

id

打印有效的用户和组信息

id [opt] [user]

groupadd

增加组

groupadd [-g gid] [-r] groupname

参数:

-g 后面接某个特定的GID

-r 建立系统群组

groupmod

修改系统中组的信息

groupmod [-g gid] [-n g_name] g_name

参数:

-g 修改GID

-n 修改组名

groupdel

删除系统中的组

gpasswd

管理/etc/group 和 /etc/gshadow[组管理员]

gpasswd [opt] g_name

参数:

   没有参数表示给groupname一个密码

-A 将g_name的主控权交由后面的使用者管理

-M 将账户加入该组

-r 将groupname的密码移除

-R 将groupname的密码失效

who

显示谁登录进来

last

显示登录历史

lastlog

报告所有用户的最近登录情况,或者指定用户的最近登录情况

磁盘和文件系统指令

lsblk

列出系统上所有磁盘列表

lsblk [opt] [dev]

参数:

-d 列出磁盘本身,不列出磁盘分区数据

-f 列出磁盘内的文件系统

-p 列出该装置完整的文件名

parted

列出磁盘分区表类型和分区信息[分区表类型有MBR、GPT、MSDOS等]

parted dev_name print

gdisk

用于gpt类型的磁盘分区 [fdisk和gdisk一样,只不过用于MBR类型]

gdisk [dev]

附加功能:

d 删除一个分区

n 增加一个分区

p 打印出分区表

q 什么都不做离开

w 存储操作后离开

? 打印可用指令

mkfs.xfs

内建文件系统,也就是格式化 [mkfs是一个综合指令]

mkfs.xfs [opt] dev

参数:

-b block容量设置一般是4K

-d 后面接data section相关的参数

-f 强制格式化

-i 设置与inode有关参数

-L 文件系统标头名称Label Name

-r 指定realtime section

xfs_repair

xfs文件系统修复

xfs_repair [opt] dev

参数:

-f 后面跟文件,而不是实体装置

-n 检查文件系统,但不修改

-d 单人维护模式

mount

挂载文件系统[挂载后原目录下东西会暂时消失]

mount [opt] [src] [tar]

参数:

-a 将所有未挂载的磁盘都挂载上来

-l 显示挂载的信息

-t 加上文件系统的指定挂载类型

-o 添加额外的挂载信息

umount

将装置文件卸载

umount [opt] dev/um point

参数:

-f 强制卸载

-l 立即删除文件系统,比-f还强

文件和目录操作

touch

创建空文件或者修改文件时间

touch [opt] file

参数:

-a 仅仅更新访问时间

-m 仅仅更新修改时间

-c 仅仅修改文件时间,不存在就不创建

-d 修改你想要修改的时间

cd

切换工作目录

cd [dir]

pwd

pwd=print work directory 打印出当前的工作目录

pwd [opt]

参数:

-L 打印出逻辑路径

-P 打印出实际路径

mkdir

新建一个目录

mkdir [opt] [dir]

-m 设置目录的权限 as in chmod

-p 检查是否有父目录

cp

复制文件或者目录

cp [opt] src1 src2 src3 tar

例子:

-a 等于dr

-f 强制复制,不询问

-i 交互模式

-r 递归复制

-p 连同源文件的权限一同复制

-u src比tar新才更新

rm

删除文件或者文档 [rmdir 删除空目录]

rm [opt] file

例子:

-f 强制删除

-i 交互模式

-r 递归删除

-d 删除空目录

mv

移动或者重命名文件

mv [opt] src tar

例子:

-f 强制删除

-i 交互模式

-u src比tar新才更新

file

查看文件类型

fd

列出文件系统的整体磁盘使用量

fd [opt] dir/file

参数:

-a 列出所有文件系统

-h 自动的调整文件大小单位,以合适的单位显示

-i 用innode数量来显示

du

推估目录所占的容量

du [opt] dir/file

参数:

-a 列出所有的文件与目录容量

-h 自动的调整文件大小单位,以合适的单位显示

-s 列出总容量

ln

建立实体链接与符号链接

ln [opt] src tar

参数

-s 建立符号连接,因为默认是实体链接

-f 如果目标文件存在,则删除强制建立一个链接

注意:

由于实体连接只能作用于文件,虽然优点多但是用的少,一般用符号连接[类似于windows的快捷方式]

dd

把指定输入文件拷贝到输出文件中,并可以格式转换

参数:

if 就是input file 也可以是装置

of 就是output file 也可以是装置

bs 就是block size 预设大小是512bytes 可以设定成4K

count 就是多少个bs

例子:

模板:dd if=”input_file” of=”output_file” bs=”block_size” count=”number”

bs 和 count 可以不指定

文档操作

cat

将一个文件连续的输出在屏幕上

cat [opt] [file]

参数:

-n 打印出行号

-A 打印出特殊字符

less

可翻页文件浏览查看 [more的扩展]

less [opt] file

参数:

-f 强制打开文件

-N 打印出行号

-s 显示连续空行为一行

-e 到文件结尾自动退出

附加功能:

/[word] 向下找字符串  ? 向上找、

n/N 向前/向后搜索字符

g/G 去到第一行或者最后一行

head

读取文档的前几行数据 [tail 后面取几行]

head -n num 文件

参数:

-n 表示显示几行数据

tar

打包指令,常常和压缩指令一起使用[因为压缩指令只能压缩单一文件]

tar [opt] src / tar [opt] src -C tar

参数:

-t 查看压缩包内的文件

-c 建立打包

-x 解打包或解压缩

-v 查看压缩/解压缩过程中,显示处理的文件名

-f 跟要压缩/解压缩的文件

-z 用gzip来压缩/解压缩

-j 用bzip2来压缩/解压缩

-J 用zx来压缩/解压缩

-C 后面接要解压缩到目录

-p 保留备份数据的原本权限与属性,常用于备份重要资料

例子:

压缩:tar -zcvf filename.tar.gz 压缩文件

查询压缩包内容:tar -ztvf filename.tar.gz

解压缩:tar -zxvf filename -C 解压的目录

备份:time tar -jpcvf filename.tar.gz 备份的文件[time:显示备份时间]

vi/vim

vi编辑器指令分为三部分一般指令模式、编辑模式、指令咧命令模式

常用指令:

vi filename 一般指令模式

- i、o、a进入插入模式 r 取代某个字符

- :wq、:q!、:wq! 退出vi编辑器 :w 保存当前编辑

- 按下[Esc]退回到一般指令模式

- [ctrl] + f 等于 [PageDn]

- [ctrl] + [b] 等于 [pageUp]

- 0 等于 [Home]

- $ 等于 [End]

- G 跳到最后一页

- gg 跳到第一行

- nG/ngg 跳到第n行

- /word 在文件内向下寻找这个单词  ? 向上

- n 继续向下搜索这个单词  N 向上

- :n1,n2s/word1/word2/gc 在n1~n2之间寻找word1这个单词并用word2取代

[有交互模式] 取消c没有交互模式

- ndd 删除光标所在的向下的n行

- nyy 复制光标所在的下n行  用 p 指令粘贴

- u 还原上一个动作 等于 windows上的[ctrl] z

- . 重复执行前一个动作

扩展功能:

>> 区块选择[经过的地方反白选择]

v 字符选择

V 列选择

[Ctrl] + v 区块选择 ==> y 复制 d 删除 p 粘贴
>> 多文本编辑

vi file1 file2 ...

:n 编辑下个文件

:N 编辑上一个文件

:files 列出这个vim开启的文件

Ctrl+s 冻结vi编辑器 Ctrl+q 结束冻结vi编辑器

>> 其他

:set list 显示换行符

:set ff? 显示文件格式[dos还是unix]

:set fileformat 设置文件的格式[dos还是Unix]

查找文档命令

which

查看可执行文档[shell命令]的位置

whereis

查找文件名[只会在特定目录中查询,速度快]

whereis [opt] file/dir

参数:

-l 列出whereis会去查询的几个主要目录

locate

查找文件名[在数据库文件中查找,速度快但一天更新一次]

locate [opt] keyword

参数:

-i 忽略大小写

-l num 输出几行

-S 显示数据库相关信息

注意:

相关的数据库文件/var/lib/mlocate一天更新一次,所以你可以用updatedb更新数据库文件

find

查找文件名[扫描整个磁盘,速度慢但功能全]

find [path] [opt] str

参数:

与时间相关

与使用者和组名相关 -name

与文件权限和名字有关


 

Linux特殊符号

.

代表本层目录

..

上层目录

-

前一个工作目录

~

代表用户家目录

|

管道命令,将一个命令的结果作为下一个命令的输入

换行不执行

()

在中间为子shell的起始和结束

{}

在中间为命令区块的组合

[1]>/>>

以覆盖/追加的方法输出到指定的文件或者装置上[正确的数据 Standard Output]

[2]>/>>

以覆盖/追加的方法输出到指定的文件或者装置上[错误的数据 Standard Error Output]

将原本需要由键盘输入的数据,改成由文件来取代[Standard Input]

<< 

结束的输入字符设置

;

连续指令下达[不考虑指令前后相关性][通过回传值判断cmd执行是否成功]

&&

若cmd1执行成功,则执行cmd2

若cmd1执行不成功,则不执行cmd2

||

若cmd1执行成功,则不执行cmd2

若cmd1执行不成功,则执行cmd2

$#

shell script中代表参数个数

$@

shell script中代表所有的变量

${n}

shell script中代表第几个参数 ${0} shell script 的文档名

Linux通配符

*

代表0到无穷多个任意字符 [有括号] 重复前一个字符,0到无穷多次 [无括号]

?

代表一定有一个任意字符 [有括号]

[]

代表一定有一个[]内的字符合符条件

[-]

-在[]中代表在编码顺序内的所有字符

[^]

若括号中的第一个字符为^,则表示反向选择

^

首行选择

$

尾行选择

.

代表一定有一个任意字符

{}

字符范围符,重复n到m个字符

 

 

 



版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u013468915/article/details/80964872
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-13 15:00:24
  • 阅读 ( 1028 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢