Linux 命令1

一、文件相关

1. 文件操作

>
创建空文件、覆盖文件内容、标准输出重定向

>>
创建空文件(更为安全的做法)、标准输出追加重定向

basename
去掉路径,只取文件名

bash -n

检查脚本中的语法错误

bash -x

调试执行,查看执行过程

cd
默认切换到用户家目录

cd /
切换到根目录

cd ~
切换到家目录,也可以指定其他用户家目录

cd .
切换到当前目录

cd ..
切换到父目录

cd -
切换到系统所记录上次所在的目录

chattr
设定文件特定属性

chattr +/-i
不能删除、改名、更改(包括管理员)

chattr +/-a
只能追加内容(包括管理员)

chattr +/-A
不修改读时间

chgrp
修改文件所有组

chgrp -R
递归修改

chmod
修改文件权限

chmod u+rwx,g-rwx,o=rwx FILE
权限法修改文件权限,=后不带权限为清空权限

chmod a+/-/=rwx
数字法修改文件权限,修改所有人对文件的权限,a可缺省

chmod --reference=SOURCE_FILE DIRECTORY_FILE
参考指定文件的权限设置其他文件的权限

chmod 777 FILE
数字法修改文件权限

chmod -R
递归修改

chmod -R +X
只对目录递归加执行权限

chmod u+/-s
模式法授权SUID权限

chmod 4???
数字法授权SUID权限

chmod u+/-s
模式法授权SUID权限

chmod 4???
数字法授权SUID权限

chmod g+/-s
模式法授权SGID权限

chmod 2???
数字法授权SGID权限

chmod o+/-t
模式法授权Sticky权限

chmod 1???
数字法授权Sticky权限

chown
修改文件所有者

chown -R
递归修改

chown USERNAME:GROUP
修改文件所有者和所有组

chown USERNAME.GROUP
修改文件所有者和所有组

chown :GROUP
修改文件所有组

chown USERNAME:
修改文件所有者和所有组

cp
复制文件或目录

cp -i
提示是否覆盖

cp -r
递归复制目录及内部的所有内容

cp -R
递归复制目录及内部的所有内容

\cp
原始cp,直接覆盖不提示

cp -f
先删除目标文件,再复制源文件

cp -d
不复制原文件,只复制链接

cp -p
保留权限、所有者和时间属性,等同于--preserv=mode,ownership,timestamp

cp -a
归档,相当于-dR --preserv=all,递归并保留链接及其他所有属性

cp -v
显示过程

cp -u
只复制源比目标更新文件或目标不存在的文件

cp --backup=
目标存在,覆盖前先备份加数字后缀

cp Source_File{,.bak}
配合文件通配符备份文件

dd

可用于检测系统读写速度。

读取、转换并输出数据

if=
从指定文件读数据

of=
指定输出文件

bs=
指定块大小

count=
指定块数量

dirname
只取路径,去掉文件名

echo $OLDPWD
查看系统所记录上次所在的目录

echo $PWD
查看系统所记录当前所在的目录

echo file{1..999999999} | xargs rm
带着大量参数删除文件

echo File{1..999999999} | xargs touch
带着大量参数创建文件

exec Number<>File
手工指定文件描述符

exec Number<>&-
删除指定文件描述符

file
判断文件类型

file -b
列出文件辨识结果时,不显示文件名称

file -f File_List.txt
批量判断文件列表中的文件的类型

file -F
指定分隔符,默认为:

file -L
查看对应软链接对应文件的文件类型

find

实时查找文件

find -maxdepth

指定最大搜索目录深度

find -mindepth

指定最小搜索目录深度

find -name

指定文件名称(支持通配符)

find -iname

忽略大小写

find -num

搜索指定节点编号的文件

find -samefile

搜索相同节点编号的文件(硬链接)

find -links

搜索指定链接数的文件

find -regex

使用正则表达式

find -ls

搜索后显示文件详细属性

find -user

搜索指定所有者的文件

find -group

搜索指定所有组的文件

find -uid

搜索指定UID号的所有者的文件

find -gid

搜索指定GID号的所有者的文件

find -nouser

搜索没有所有者的文件

find -nogroup

搜索没有所有组的文件

find -a

与(默认)

find -o

find -not、find !

find -type

指定文件类型搜索(f:普通文件、d:目录文件、l:符号链接文件、s:套接字文件、b:块设备文件、c:字符设备文件、p:管道文件)

find -empty

搜索空文件

find -path -a prune

过滤指定目录

find -size +/-#

默认搜索 (#-1, #] 的文件(k、M、G、c)、+:(#, ∞)、-:[0, #-1)

find -atime/mtime/ctime +-#

默认以天为单位搜索 [#, #+1) 的文件、+:(#+1, ∞)、-:[0, #)

find -amin/mmin/cmin +-#

默认以分钟为单位搜索 [#, #+1) 的文件、+:(#+1, ∞)、-:[0, #)

find -perm /-MODE

默认根据权限精确搜索文件、/:U或G或O、-:并集(权限转换成2进制,匹配为1的位,不匹配为0的位)

find -print

默认的处理动作,显示到屏幕

find -ls

显示查找到的文件的长格式信息

find -delete

删除查找到的文件

find -fls

把查找到的所有文件的长格式信息保存到指定文件中

find -ok CMD {} \;

交互式对查找到的文件执行CMD命令,{}:用于引用查找到的文件名称自身

find -exec CMD {} \;

批量对查找到的文件执行CMD命令(不询问),{}:用于引用查找到的文件名称自身

getfacl
查看指定文件或目录的访问控制列表设置

getfacl FILE/DIRECTORY | setfacl --set-file=- NEW_FILE/DIRECTORY
复制其他文件的ACL权限给指定文件

getfacl -R FILE > ACL.txt
备份ACL

getfacl -p
不去除路径前的/

l*
只显示当前目录的所有隐藏文件(包括子目录和父目录)

ll
查看文件信息

ll --time=
查看文件的atime(访问内容时间)、mtime(修改内容时间)和ctime(改变属性时间)

ll /proc/$$fd
查看被打开的文件所对应的文件描述符

ln
创建硬链接

ln -s
创建软链接(符号链接)

locate

非实时查找文件(数据库查找)

locate -i

忽略大小写

locate -n

只列举前N个匹配项目

locate -r

使用正则表达式

lpr
将一个或多个文件放入打印队列等待打印

lpr -P
将资料送至指定的打印机

ls
查看目录中文件列表

ls -a
显示所有文件(包括隐藏文件)

ls -A
显示所有文件(不包括.和..)

ls -R
目录递归

ls -l
显示额外的信息

ls -ld
显示指定目录额外的信息

ls -1
按照数字、字母顺序分行显示

ls -S
从大到小排序显示

ls -r
倒序显示

ls -t
按文件的mtime(修改时间)从新到旧排序显示

ls -u
配合-t选项,按照atime从新到旧排序显示

ls -c
配合-t选项,按照ctime从新到旧排序显示

ls -U
按目录存放顺序显示

ls -X
按文件后缀排序

ls -d */
只显示目录下的文件夹,不显示文件

ls -d .*
只显示当前目录的所有隐藏文件(包括子目录和父目录)

ls -R .[^.]*
递归查看当前目录下所有隐藏文件(包括子目录内)

ls -d .[^.]*
只显示当前目录下的隐藏文件(不包括父目录)

ls -a .[^.]*
只显示当前目录下的隐藏文件(不包括父目录)

ls -i
查看文件节点编号(inode)

lsattr
显示文件特定属性

lsof | grep deleted
查看当前系统中被删除但还未释放空间的文件

mkdir
创建目录

mkdir -p
存在不报错,自动创建所需的各目录

mkdir -v
显示创建过程

mkdir -m
指定权限

mv
移动或重命名文件、目录

mv -i
交互式操作

mv -f
强制

mv -t
先指定目的目录,再指定源

rmdir
删除空目录

rmdir -p
递归删除父空目录

rmdir -v
显示删除过程

pwd
查看当前工作目录

pwd -P
显示真实路径

readlink
查看软链接对应的原始文件

rename
批量修改文件名

rename Name_Old Name_New Name
Name_New可以为空,表示删除旧文件名的参数。

rm
删除文件、目录

rm -f
强制删除

rm -i
交互式

rm -r
递归

rm -rf /*
删除根目录下所有数据

rm -rf / --no-preserve-root
删除根目录下所有数据

setfacl
访问控制列表

setfacl -m u:USERNAME:rwx FILE/DIRECTORY
为多用户或组的文件和目录赋予指定用户的访问权限,如果rwx为空或为0则代表没有访问权限

setfacl -m g:GROUP:rwx FILE/DIRECTORY
为多用户或组的文件和目录赋予指定组的访问权限,如果rwx为空或为0则代表没有访问权限

setfacl -x u:USERNAME FILE/DIRECTORY
删除指定用户对文件和目录的访问权限

setfacl -x g:GROUP FILE/DIRECTORY
删除指定组对文件和目录的访问权限

setfacl -m mask::rwx FILE/DIRECTORY
设置除所有者和other的之外的人和组的最大权限

setfacl -m d:u:USERNAME/g:GROUP:rwx DIRECTORY
设置指定目录下新建文件的默认ACL权限

setfacl -b FILE/DIRECTORY
清空指定文件、目录所有ACL权限

setfacl -k FILE/DIRECTORY
删除指定文件、目录默认ACL权限

setfacl -R DIRECTORY
递归设置ACL权限

setfacl -M ACL_FILE.txt FILE/DIRECTORY
调用ACL文件设置文件、目录的访问权限

setfacl -X ACL_FILE.txt FILE/DIRECTORY
调用ACL文件取消设置文件、目录的访问权限

getfacl FILE/DIRECTORY | setfacl --set-file=- NEW_FILE/DIRECTORY
复制其他文件的ACL权限给指定文件

setfacl --set u::rwx,u:USERNAME,g::rwx,o::rwx- FILE
清空文件原有ACL权限,再用新ACL权限替换

setfacl -R --set-file=acl.txt FILE
恢复ACL

setfacl --restore acl.txt FILE
恢复ACL

stat
显示文件的inode内容

stat -c

使用特殊格式代替默认

stat -c %a

以数字法显示文件权限

set -C
禁止将内容覆盖已有文件,但可追加

set +C
允许覆盖

shred
彻底删除文件数据

shred -z
以0进行覆盖

shred -n
指定次数

shred -v
查看过程

shred -u
处理完毕后删除

touch
创建空文件或刷新文件时间

touch -a
仅刷新atime和ctime

touch -m
仅刷新mtime和ctime

touch -t
指定atime和mtime的时间戳

touch -c
如果文件不存在,则不创建

tree
显示目录树

tree -L
指定显示的层级

tree -d
只显示目录

tree -P
匹配正则表达式

umask
设置、显示文件、目录初始权限(取消对应的权限),普通用户默认为0022,管理员默认为0002

umask u=rwx,g=rwx=o=rwx
以权限法设置初始权限

umask -p
显示初始权限(带命令)

umask -S
以权限法显示初始权限

updatedb

更新locate命令数据库

 

 

 

2. 文本字符

2>
标准错误输出重定向

2>>
标准错误输出追加重定向

>|
强制覆盖

&>
把所有输出重定向到文件

&>>
把所有输出重定向追加到文件

<
标准输入重定向

<<终止符
多行重导向

|
管道符,把一个命令的标准输出发送给另一个命令作为标准输入

|&
把一个命令的标准输出和标准错误发送给另一个命令,CentOS5及以前的版本不支持

-
将管道符前的命令传送给管道符后的命令,直接代替前一个命令的标准输出

cat
查看文件内容

cat -A
展开所有

cat -n

加行号(忽略空行)

cat -b

加行号(不忽略空行)

cat -s

压缩连续的空行成一行

cat -A

显示所有控制符

cat -E

显示行结束符$(回车)

chfn
添加/etc/passwd中指定用户的描述信息

cut

按列抽取文本内容

cut -d

指定分隔符,默认为Tab

cut -f

指定列(以,分散,以-连续)

cut -c n-N

按字符为单位切割

cut --out-delimiter=

指定输出分隔符

diff

比较两个文件之间的区别

diff -u

以合并的方式来显示文件内容的不同,配合path命令可以实现文件内容恢复

echo
显示字符

echo -e
启用\字符的解释功能

echo $RANDOM
生成0~32767的随机数

egrep

支持扩展正则表达式

fgrep

不支持正则表达式

finger
查看/etc/passwd中指定用户的描述信息

gedit
图形化文本编辑工具

getent group
查看/etc/group内容

getent group GROUP
只显示/etc/group中指定组的行

getent gshadow
查看/etc/gshadow内容

getent gshadow GROUP
只显示/etc/gshadow中指定组的行

getent passwd
查看/etc/passwd内容

getent passwd USERNAME
只显示/etc/passwd中指定用户的行

getent shadow
查看/etc/shadow内容

getent shadow USERNAME
只显示/etc/shadown中指定用户的行

grep

显示匹配到的字符串的行

grep --color=auto

高亮显示

grep -v

只显示不包含匹配到的字符串的行

grep -i

忽略大小写

grep -n

显示匹配的行号

grep -c

统计匹配的行数

grep -o

只显示匹配到的字符串

grep -q

静默模式,不输出任何信息

grep -A

包含匹配到的字符串的行的后几行

grep -B

包含匹配到的字符串的行的前几行

grep -C

包含匹配到的字符串的行的前后各几行

grep -e PATTERN_1 -e PATTERN_2 -e PATTERN_N

实现多个选项间的逻辑or关系

grep -w

匹配整个单词

grep -E

支持扩展正则表达式

grep -F

不支持正则表达式

grep -f

指定规则文件

grpck
检查/etc/group内容和格式的完整性并补充说明

head

显示文本内容前10行(默认)

head -n

指定前多少行

head -c

指定前多少个字节

hexdump
查看2进制文件的16进制编码

hexdump -C
每个字节显示为16进制和相应的ASCII字符

less

分页查看文件或STDIN输出

/

搜索文本内容

n/N

跳到下/上一个匹配内容

mail
收邮件

mail -s SUBJECT USER
指定邮件的主题

.
结束邮件正文编辑

more

分页查看文本内容

more -d

显示翻页及退出提示

rev

镜像查看文本内容

nano
字符文本编辑工具

openssl rand -base64 NUMBER
生成指定个数的随机字符

paste

合并多个文件同行号的列到一行

paste -s

所有行合成一行显示
paste -d

指定分隔符,默认为Tab

patch

修补文件

patch -b

备份文件

pwck
检查/etc/passwd内容和格式的完整性并补充说明

pwconv
开启用户的投影密码,/etc/passwd不显示用户密码

pwunconv
关闭用户投影密码,把用户密码从/etc/shadow,重回存到/etc/passwd

reset
重置字符,遇到乱码时可以执行该命令重置系统字符

sed 'script'

行编辑器(script格式:'地址命令')

#

指定行

$

最后一行

/PATTERN/

被模式匹配的行

#,#、#,+#、/BEGIN_PATTERN/,/END_PATTERN/、#,/END_PATTERN/

指定地址范围

#~#

步进(从指定行开始每次递增行数)

=

显示模式空间中匹配的行的行号

!

模式空间中匹配行取反处理

a [\]

在指定行的后一行开始追加文本内容,支持\n实现多行追加

i [\]

在指定行的前一行开始追加文本内容

c [\]

替换指定行

w

保存模式匹配的行至指定文件

r

读取指定文件的文本至模式空间中匹配到的行后

d

删除模式空间匹配的行,并立即启用下一轮循环

p

打印当前模式空间内容,追加到默认输出之后

s///

单次搜索替换

s///g

全局搜索替换

s///p

显示替换成功的行

s///w

将替换成功的行保存至目标文件中

sed -n

不输出模式空间内容到屏幕,即不自动打印

sed -r

扩展正则表达式

sed -e

多点编辑(单次脚本多次处理)

sed -f SCRIPT_FILE

从指定文件中读取编辑脚本

sed -i.bak

备份文件并原处编辑

seq
生成从n到N的数字,默认从1开始

seq -s
指定分隔符,默认为回车

sort

文本排序,默认以字符排序

sort -t

指定分隔符

sort -k

指定列

sort -n

按数字大小排序

sort -r

倒序

sort -f

忽略大小写

sort -u

压缩重复的行

sort -R

随机排序

tac

倒序查看文本内容

tail

显示文本最后10行内容(默认)

tail -c

指定获取最后多少个字节

tail -n

指定获取最后多少行

tail -f

跟踪显示文件新追加的内容

tail -F

跟踪文件名

tailf

当文件不增长时并不访问文件,类似tail -f

tee
重定向到多个目标

tee -a
追加

tr
转换字符

tr -ctr -C
取反

tr -d
删除

tr -s
压缩连续重复的字符

tr -t
使字符串1的长度和字符串2的长度一致

tr --help
帮助

uniq

合并相重复且相邻的行

uniq -c

统计重复且相邻的行数

uniq -u

仅显示不曾重复且相邻的行

uniq -d

仅显示重复且相邻的行

vi

文本编辑器

vigr
带语法检查功能编辑/etc/group

vim

文本编辑器

vim +N

打开文件后,光标处于第N行

vim + /PATTERN

打开文件后,光标处于第一个被模式匹配到的行首

vim +b

二进制方式打开文件

vim -d

比较多个文件

vim -m

只读方式打开文件

vim -o

单个或多个文件水平分割

vim -O

单个或多个文件垂直分割

vipw
带语法检查功能编辑/etc/passwd

wc

文本数据统计单词总数、行总数、字节总数和字符总数,以空格为分隔符

wc -l

统计行数

wc -w

统计单词总数

wc -c

统计字节总数

wc -m

统计字符总数

wc -L

显示文件中最长行的长度

xargs

将管道、标准输入或文件输出的数据转换成命令行参数(可解决参数过多问题)

xargs -n

指定单次转换的参数数量

 

 

3. 备份压缩

compress

把原文件压缩成后缀为.Z的文件并删除

compress -d

解压缩

compress -c

只把结果输出到标准输出,不压缩、不删除原文件

compress -v

显示详情

uncompress

解压缩.Z后缀的压缩文件

zcat

只查看压缩包内的文件内容,不解压缩

bzip2

压缩成后缀为.bz2的文件(gzip升级版)

bzip2 -k

保留原文件

bzip2 -d

解压缩

bzip -1~9

指定压缩比,默认为9

bunzip2

解压缩

bzcat

只查看压缩包内的文件内容,不解压缩

cpio >/<

通过重定向的方式将文件进行打包备份,还原恢复的工具

cpio -ov

打包

cpio -idv

解包(如果打包时带绝对路径,只能解包到绝对路径上)

cpio -o

将文件拷贝打包成文件或者将文件输出到设备上

cpio -i

解包,将打包文件解压或将设备上的备份还原到系统

cpio -t

预览,查看文件内容或者输出到设备上的文件内容

cpio -v

显示打包过程中的文件名称

cpio -d

解包生成目录,在cpio还原时,自动的建立目录

cpio -c

一种较新的存储方式

file-roller

图形化压缩、解压缩工具

gzip

把原文件压缩成后缀为.gz的文件

gzip -d

解压缩

gzip -c

将压缩或解压缩的结果输出至标准输出

gzip -1~9

指定压缩比(默认为6),值越大,压缩比越大,速度越慢

gunzip

对.gz后缀的压缩文件进行压缩

zcat

只查看压缩包内的文件内容,不解压缩

split

切割大的打包文件为多份小文件

split -b

指定小文件大小

split -d TAR_FILE PREFIX_NAME

指定小文件前缀

cat PART_FILES* > TAR_FILE

合并

tar
打包或解包

tar -cpvf

打包

tar -c

创建打包文件

tar -f

指定目标文件名

tar -v

过程

tar -p

保留原有属性

tar -t

预览

tar -xvf -C

解包

tar -x

解压缩(默认解压缩到当前目录下)

tar -C

指定解压缩目录

tar -z

打包后缀为.gz或.tgz的压缩文件(解包不需要带)

tar -j

打包后缀为.bz2的压缩文件(解包不需要带)

tar -J

打包后缀为.xz的压缩文件(解包不需要带)

tar -T FILELIST

指定输入文件列表

tar -X EXFILELIST

排除指定的文件列表

xz

把原文件压缩成后缀为.xz的文件(压缩比最高)

xz -k

保留原文件

xz -d

解压缩

xz -1~9

压缩比,默认为6

xzcat

只查看压缩包内的文件内容,不解压缩

zip

把原文件压缩成后缀为.zip的文件

zip -r

打包压缩目录

unzip

解包压缩

unzip -p

只查看压缩包内的文件内容,不解压缩

 

 

4. 文件传输

scp FILE IP_ADDRESS:/DIRECTORY
Linux之间复制文件和目录,默认复制到root家目录

 

 

二、系统相关

1. 系统管理

=

变量赋值

.
读取文件内容存放到内存

alias
查看所有命令别名的列表

alias NAME=‘VALUE’
临时定义命令别名

bash

运行bash程序、执行脚本

cat /etc/centos-release
查看发行版本

cat /etc/shells
显示当前系统所有shell类型

cat /proc/cpu
查看cpu信息

cat /proc/meminfo
查看内存信息

clock
修改、查看硬件时钟时间

clock -s
以硬件时钟为准,校正系统时钟

clock -w
以系统时钟为准, 校正硬件时钟

chkconfig

检查,设置系统的各种服务

chkconfig APPLICATION off

禁止开机自启动

command
执行同名命令别名的原始命令

date
修改、查看系统时钟时间

date +%F
以年-月-日格式显示

date +%T
以时:分:秒格式显示

date -d
以英文、字符串查找日期

date -s
设置时间

date --help
帮助用法

declare

声明变量

declare -x

设置或显示环境(全局)变量

declare -i

声明数值、字符串或运算式

echo $$

查看当前进程的进程编号

echo $?

查看上一命令的执行结果,成功为0,失败为非0

echo $HISTFILE

查看命令行历史文件

echo $HISTISIZE

查看命令行历史最多存储数

echo $LANG
查看当前系统语言编码

echo $PATH

查看环境变量

echo $PPID

查看父进程的进程编号

echo $PS1
查看当前命令提示符格式

echo $SHELL

查看当前环境使用的shell类型

echo $HOSTNAE

查看主机名

enable

查看运行、启动内部命令

enable -n
查看禁用、禁用内部命令

env

显示环境(全局)变量

exit

退出当前终端、终止shell脚本并返回自定义退出状态码

export

设置或显示环境(全局)变量

free
查看内存信息

free -h

以合适的单位显示内存使用情况

halt

关机(不断电)

hash

显示缓存到内存的命令

hash -d

清除指定命令的缓存

hash -l

显示命令缓存(包括命令的路径)

hash -p PATH NAME

将命令路径起别名

hash -t

显示指定命令的路径

hash -r

清楚所有缓存

history
命令行历史

!NUMBER
重复执行指定历史命令

history -c
清除内存中的命令历史

history -d
删除指定序号的命令历史

history -a
把内存中的命令历史写入到命令历史文件

history -r
把命令历史文件内容读到内存中的命令历史

history -w
把命令历史写入到命令历史文件

history -n
把命令历史文件中未读过的历史命令读到内存

history -p
执行命令不记录到命令历史

history -s
把命令写入到命令历史,但不执行

hostname
查看主机名

init 0
关机

init 3
切换字符模式

init 5
切换图形界面

killall
杀死进程

ldd
查看命令所调用的库文件

logout
退出当前终端

lsb_release -a
CentOS6查看操作系统版本

lscpu

查看CPU信息

ltrace
查看进程的库调用(library)

makewhatis
CentOS6制作whatis数据库

mandb
CentOS7制作whatis数据库

ntpdate
指定时钟服务器

poweroff
关机(即关机也断电)

printenv

显示环境(全局)变量

pstree

查看进程树

pstree -p

显示进程编号

PS1=
临时修改命令提示符格式

readonly

声明只读变量

reboot
重启系统

reboot -f
强制,不调用shutdown

reboot -p
切断电源,关机

read

从标准输入读取数值

read -p

输入提示

read -s

静默输入

read -n

指定输入的字符长度

read -d

输入结束符

read -t

定义输入字符的等待时间

rpm -qa | wc -l

查看系统安装软件的个数

service

管理系统服务

service APPLICATION start

启动服务

service APPLICATION stop

停止服务

set

显示所有变量(局部变量、环境变量)及函数

set --

清空所有位置变量

shift

位置参数前移(默认一位)

shutdown

关机

shutdown -r

重启

shutdown -h

关机(不断电)

shutdown -c

取消目前已经进行中的关机动作

shutdown TIME [MESSAGE]

设置关机时间,默认+1;now(立即,相当于+0);hh:mm(绝对时间)

sosreport

收集系统日志信息

source

读取文件内容存放到内存

startx

启动图形界面功能

strace

查看进程的系统调用(system call)

systemctl

管理系统服务进程

systemctl start

启动服务进程

systemctl stop

停止服务进程

systemctl disable

禁止开机启动

test、[]、[[]]

检查某个条件是否成立

test -v

判断变量是否赋值

test -z

字符串是否为空

test -n

字符串是否为非空

test -a、test -e

判断文件是否存在

test -b

判断文件是否存在且为块设备文件

test -c

判断文件是否存在且为字符设备文件

test -d

判断文件是否存在且为目录文件

test -f

判断文件是否存在且为普通文件

test -h、test -L

判断文件是否存在且为符号链接文件

test -p

判断文件是否存在且为命名管道文件

test -S

判断文件是否存在且为套接字文件

test -r

判断文件是否存在且可读

test -w

判断文件是否存在且可写

test -x

判断文件是否存在且可执行

test -u

判断文件是否存在且拥有suid权限

test -g

判断文件是否存在且拥有sgid权限

test -k

判断文件是否存在且拥有sticky权限

test -s

判断文件是否存在且非空

test -t

判断文件描述符是否在指定终端打开

test -N

判断文件自从上次被读取后是否被修改过

test -O

判断当前有效用户是否为文件属主

test -G

判断当前有效用户是否为文件属组

timedatectl

CentOS7查看当前系统时区信息

timedatectl status

查看当前系统时区信息

timedatectl list-timezones

查看当前系统所有时区

timedatectl set-timezone

调整系统时区

type

查看命令类型

tzselect

CentOS6调整系统时区

unalias

取消命令别名

unalias -a

取消所有命令别名

uname -r

查看内核版本

unset

删除变量

whereis

查看外部命令的路径及其帮助文档路径

which

查看指定外部命令的最近路径

which --skip-alias

只显示指定外部命令的最近路径

which -a

查看指定外部命令的所有路径

xargs

给命令传递参数的一个过滤器,也是组合多个命令的一个工具

 

 

2. 磁盘管理

cd /misc/cd

光盘自动挂载

df

查看磁盘分区的使用情况

df -i

查看磁盘分区的节点编号使用情况

df -h

使用人类可读的格式

du -sh /*

查看所有一级目录大小

echo '- - -' > /sys/class/scsi_host/host2/scan

磁盘自动扫描

fdisk -l

查看磁盘分区

lsblk

查看块设备信息

ls /dev/sd*

查看分区

runlevel

查看当前工作模式

tune2fs -o acl SYSTEM_PARTITION

mount -o acl SYSTEM_PARTITION MOUNT_POINT

CentOS6设置指定分区支持ACL功能

 

 

3. 网络管理

ifconfig

查看网卡信息

ip a

查看网卡信息

ping

测试网络连通性

ping -c

设置次数

netstat

查看网络连接状态

netstat -n

使用IP地址

netstat -t

显示TCP传输协议的连线状况

nmap

网络扫描

nmap -v -sP

扫描特定网段

rz

windows发送文件到Linux

screen

创建多重视窗管理程序会话

screen -S

自定义创建新会话

screen -x

加入指定会话

screen -ls

显示所有已打开的会话

screen -r

恢复指定会话

systemctl restart network

重启网络服务

systemctl restart sshd

重启ssh远程访问服务

sz

Linux发送文件到Windows

curl

文件传输工具

 

4. 用户管理

adduser

创建用户

authconfig --passalgo= --update

修改用户密码的加密算法

--passalgo=md5

--passalgo=sha1

--passalgo=sha224

--passalgo=sha256

--passalgo=sha384

--passalgo=sha512

chage

交互式修改指定用户的密码的设置

chage -d 0

指定用户密码立即过期

chage -l

查看指定用户的密码策略

chage -E

设置用户密码过期时间

chage -I

设置用户密码宽限期

chage -m

设置用户密码最短有效期

chage -M

设置用户密码最长有效期

chage -W

提前多少天告警

chpasswd

批量修改用户密码

echo PASSWORD.TXT | chpasswd

根据用户密码列表文件批量修改用户密码

chsh -s SHELL USERNAME

修改指定用户的shell类型

chvt [1~6]

切换虚拟终端界面

echo $USER

查看用户名

echo PASSWORD | passwd --stdin USERNAME

通过标准输出接受用户密码

groupadd

创建用户组

groupadd

创建用户组

groupadd -g

指定GID

groupadd -r

创建系统组

groupdel

删除组

groupmems

更改、查看组成员

groupmems -g

指定组

groupmems -a

指定用户加入组

groupmems -d

从组中删除用户

groupmems -p

从组中清楚所有成员

groupmems -l

显示组成员列表

groupmod

修改组属性

groupmod -n

修改组名

groupmod -g

修改组id

groups

查看用户所属组列表

gpasswd

修改、增加用户组口令

gpasswd -a USERNAME

将指定用户添加到指定组中

gpasswd -d USERNAME

从指定组中移除指定用户

gpasswd -A USERNAME1,USERNAME2,……

设置有管理权限的用户列表

id

判断用户是否存在,查看用户id、组id、组列表、安全上下文

id -u

只显示用户id

id -g

只显示用户主组id

id -G

只显示用户附加组id

id -n

需要配合-u(只显示用户名)、-g(只显示用户主组名)、-G(只显示用户附加组名)使用

last

显示用户最近登录信息

newgrp

临时切换用户主组

newusers FILE

根据用户列表文件批量创建用户

passwd

修改用户密码

passwd -e

强制用户下次登录修改密码

passwd -l

锁定指定用户

passwd -d

删除指定用户密码

passwd -u

解锁指定用户

passwd -f

强制操作

passwd -n

指定最短使用期限

passwd -x

指定最大使用期限

passwd -i

设置用户宽限期

passwd -w

提前多少天开始告警

passwd --stdin

通过标准输出接受用户密码

tty

查看当前所在虚拟终端

useradd

创建用户

useradd -N

创建用户时不创建同名主组,该用户默认加入组ID为100(/etc/default/useradd所指定)的users组

useradd -u

创建用户并手工指定用户UID时不检查UID的唯一性

useradd -uo

创建用户时手工指定UID

useradd -g

创建用户时手工指定用户主组(组名、GID)

useradd -c

创建用户时手工指定用户的注释信息

useradd -d

创建用户时手工指定用户家目录路径(必须不存在)

useradd -s

创建用户时手工指定用户的shell类型

useradd -r

创建系统用户(不创建家目录和邮箱)

useradd -m

创建系统用户时创建家目录

useradd -M

创建普通用户时不创建家目录

useradd -G

创建用户时指定附加组(必须存在)

useradd -D

显示/etc/default/useradd内容( 新用户默认设置)

useradd -D -b

修改/etc/default/useradd中所设置的默认shell类型

useradd -D -s

修改/etc/default/useradd中所设置的默认家目录

useradd -D -g

修改/etc/default/useradd中所设置的默认主组

userdel

删除用户

userdel -r

删除用户并删除其家目录及邮箱目录

userdel -f

强制删除

usermod

用户属性修改

usermod -L

用户加锁,/etc/shadow密码栏增加!,无法登录系统,但可以通过进行用户切换

usermod -U

CentOS5用户解锁,/etc/shadow密码栏删除!,需要输入两次才能真正解锁,CentOS6和CentOS7无法解锁

usermod -u

修改用户UID

usermod -g

修改用户主组

usermod -G

修改用户附加组

usermod -aG

追加用户附加组

usermod -G ""

引号内为空,取消用户所有附加组

usermod -s

修改用户shell类型

usermod -s

修改用户描述信息

usermod -s

修改用户shell类型

usermod -dm

自动创建用户新家目录并移动原家目录数据

usermod -l NEWNAME OLDNAME

修改用户名

usermod -e YYYY-mm-dd

指定用户账号过期时间

usermod -f

指定用户账号宽限期,/etc/shadow倒数第三栏

w

显示当前所以的登录会话及所做的操作

who

查看当前所有的登录会话信息

whoami

显示当前用户名

who am i

显示当前用户的登录会话信息

su

切换用户,不完全切换,也称非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录

su -

登录式切换,完全切换,会读取目标用户的配置文件,切换至家目录,默认切换为root管理员

su - root -c 'CMD'

使用root管理员身份执行指定命令(用单引号括起来)

 

 

 

三、其他

1. 帮助

help

查看内部命令列表及帮助用法
info

帮助手册

man

帮助手册

man -f

查看命令简要说明

man -a

列出所有章节

man -w

查看帮助文件的路径

man bash

所有内部命令帮助手册

man 7 glob

文件通配符帮助

whatis

查看命令简要说明及对应man帮助章节

 

 

2. 杂

bc

计算器

ibase=

输入2、8、10、16进制数

obase=

输出2、8、10、16进制数

quit

退出

cal

查看月历

cal -y

查看整年月历

clear

清屏

expr

算数运算

expr +

expr -

expr \*

expr /

整除

expr %

取模(余数)

expr **

乘方

let

算数运算

let +

let -

let *

let /

let %

取模(余数)

let **

乘方

sleep

将目前动作延迟一段时间

wall

发广播

yes

不断输入y

 

 

3. 组合按键

Ctrl+a+d

剥离当前screen会话

Ctrl+Alt+F[1~6]

切换虚拟终端界面

Ctrl+c

取消和结束命令执行(比较强硬)

Ctrl+d

取消和结束命令执行

退出当前终端

Ctrl+g

从命令行历史搜索模式退出

Ctrl+l

清屏

Ctrl+q

允许屏幕输出

Ctrl+r

在命令行历史中搜索命令

Ctrl+s

阻止屏幕输出,锁定

Ctrl+z

挂起命令

Shift+PgUp

向上翻页

Shift+PgDn

向下翻页

Tab*2

补全

 

 

 

四、字符

1. 文件通配符

*

匹配零个或多个字符

?

匹配任何单个字符

~

当前用户家目录

~+

当前工作目录

~-

系统所记录上次所在的目录

[0-9]

匹配数字范围

[a-z]

字母

a、A、……、z、Z

[A-Z]

字母

A、b、……、z、Z

[ABCD]

匹配列表中的任何的一个字符

[^ABCD]

匹配列表中的所有字符以外的字符

[:digit:]

任意数字,相当于0-9

[:lower:]

任意小写字母

[:upper:]

任意大写字母

[:alpha:]

任意大小写字母

[:alnum:]

任意数字或字母

[:blank:]

水平空白字符

[:space:]

水平或垂直空白字符

[:punct:]

标点符号

[:print:]

可打印字符

[:cntrl:]

控制(非打印)字符

[:graph:]

图形字符

[:xdigit:]

十六进制字符

 

 

2. 正则表达式

2.1 字符匹配

.

匹配任意单个字符

\

转义符

[]

匹配指定范围内的任意单个字符

[.]

匹配.本身

[^]

匹配指定范围外的任意单个字符

[:alnum:]

字母和数字

[:alpha:]

任何英文大小写字符(A~Z,a~z)

[:lower:]

小写字母

[:upper:]

大写字母

[:blank:]

空白字符(空格和制表符)

[:space:]

水平和垂直的空格字符(比空白字符包含的范围广)

[:cntrl:]

不可打印的控制字符(退格、删除、警铃……)

[:digit:]

十进制数字

[:xdigit:]

十六进制数字

[:graph:]

可打印的非空白字符

[:print:]

可打印字符

[:punt:]

标点符号

 

2.2 次数匹配

*

匹配前面的字符任意次,包括0次

.*

任意长度的任意字符

\?

匹配前面字符的0或1次

\+

匹配前面字符至少1次

\{N\}

匹配前面的字符N次

\{M,N\}

匹配前面的字符至少M次,至多N次

 

2.3 位置锚定

^PATTERN$

用于模式匹配整行

^

行首锚定,用于模式的最左侧

$

行尾锚定,用于模式的最右侧

^$

空行

^[[:space:]]*$

空白行

\<PATTERN\>

匹配整个单词

\<

词首锚定,用于单词模式的左侧

\>

词尾锚定;用于单词模式的右侧

\b

词首词尾锚定,可用于单词模式的左右两侧

 

2.4 分组

\(\)

将一个或多个字符捆绑在一起,当作一个整体进行处理

\NUMBER

后向引用,引用前面指定分组中的模式所匹配的字符

\|

或者

 

 

3. 扩展正则表达式

3.1 字符匹配

.

任意单个字符

[]

指定范围的字符

[^]

不在指定范围的字符

 

3.2 次数匹配

*

匹配前面字符任意次

?

0或1次

+

1次或多次

{}

匹配指定次数

{M,N}

至少M次,至多N次

 

3.3 位置锚定

^

行首

$

行尾

\<PATTERN\>

匹配整个单词

\<

词首锚定,用于单词模式的左侧

\>

词尾锚定;用于单词模式的右侧

\b

词首词尾锚定,可用于单词模式的左右两侧

()

分组

\NUMBER

后向引用,引用前面指定分组中的模式所匹配的字符

|

或者

 

 

4. 条件判断

4.1 逻辑运算

&

&&

短路与

|

||

短路或

!

^

异或(二进制数对位值相同,结果为真;反之为假)

-a

并且

-o

或者

 

4.2 字符判断

=

字符串是否相同

!=

字符串是否不相同

==

左侧字符串是否被右侧通配符匹配

=~

左侧字符串是否被右侧匹配

 

4.3 数值判断

-gt

是否大于

-ge

是否大于等于

-eq

是否等于

-ne

是否不等于

-lt

是否小于

-le

是否小于等于

 

4.4 文件判断

-ef

文件1是否是文件2的硬链接

-nt

文件1的mtime是否新于文件2

-ot

文件1的mtime是否旧于文件2

 

 

5. 变量

$1、$2、……

位置变量

$0

命令本身

$*

传递给脚本的所有参数,全部参数合为一个字符串

$@

传递给脚本的所有参数,每个参数为独立字符串

$#

传递给脚本的参数的个数

$?

最近的命令退出状态

$_

上个命令最后一个参数

$-

一些功能的组合

h

哈希

i

当前属于交互式的shell

m

打开监控模式

B

大括号扩展

H

历史列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值