Linux 命令

一、文件相关

1. 文件管理

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

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

basename
去掉路径,只取文件名

cat
查看文件内容

cat -A
展开所有

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
查看对应软链接对应文件的文件类型

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

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

getfacl -R FILE > ACL.txt
备份ACL

getfacl -p
不去除路径前的/

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

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

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

ll
查看文件信息

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

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

ln
创建硬链接

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

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
查看当前系统中被删除但还未释放空间的文件

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
查看文件的atime(访问内容时间)、mtime(修改内容时间)和ctime(改变属性时间)

mkdir
创建目录

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

mkdir -v
显示创建过程

mkdir -m
指定权限

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

mv -i
交互式操作

mv -f
强制

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

rmdir
删除空目录

rmdir -p
递归删除父空目录

rmdir -v
显示删除过程

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
以权限法显示初始权限

2. 字符处理

2>
标准错误输出重定向

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

>|
强制覆盖

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

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

<
标准输入重定向

<<终止符
多行重导向

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

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

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

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

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

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中指定用户的行

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

mail
收邮件

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

.
结束邮件正文编辑

nano
字符文本编辑工具

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

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

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

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

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

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

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

tee
重定向到多个目标

tee -a
追加

tr
转换字符

tr -ctr -C
取反

tr -d
删除

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

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

tr --help
帮助

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

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

3. 备份压缩

tar
打包或解包

4. 文件传输

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

二、系统相关

1. 系统管理

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

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

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

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

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

cat /proc/cpu
查看cpu信息

cat /proc/meminfo
查看内存信息

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

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

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

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

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

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

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

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

date -s
设置时间

date --help
帮助用法

echo
显示字符

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

echo $HISTFILE
查看命令行历史文件

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

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

echo $PATH
查看环境变量

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

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

echo $HOSTNAE
查看主机名

enable
查看运行、启动内部命令

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

exit
退出当前终端

free
查看内存信息

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查看操作系统版本

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

makewhatis
CentOS6制作whatis数据库

mandb
CentOS7制作whatis数据库

ntpdate
指定时钟服务器

poweroff
关机(即关机也断电)

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

reboot
重启系统

reboot -f
强制,不调用shutdown

reboot -p
切断电源,关机

rpm -qa | wc -l
查看系统安装软件的个数

shutdown
关机

shutdown -r
重启

shutdown -h
关机(不断电)

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

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

sosreport
收集系统日志信息

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

startx
启动图形界面功能

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

timedatectl
CentOS7查看当前系统时区信息

timedatectl status
查看当前系统时区信息

timedatectl list-timezones
查看当前系统所有时区

timedatectl set-timezone
调整系统时区

type
查看命令类型

tzselect
CentOS6调整系统时区

unalias
取消命令别名

unalias -a
取消所有命令别名

uname -r
查看内核版本

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

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

which --skip-alias
只显示指定外部命令的最近路径

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

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

2. 磁盘管理

cd /misc/cd
光盘自动挂载

df
查看磁盘分区的使用情况

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

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
测试网络连通性

rz
windows发送文件到Linux

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

screen -S
自定义创建新会话

screen -x
加入指定会话

screen -ls
显示所有已打开的会话

screen -r
恢复指定会话

sz
Linux发送文件到Windows

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(只显示用户附加组名)使用

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
清屏

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
补全

四、文件通配符

*
匹配零个或多个字符

?
匹配任何单个字符

~
当前用户家目录

~+
当前工作目录

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

[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:]
十六进制字符

你可能感兴趣的:(Linux 命令)