常用的Linux命令大全
文件处理命令
ls命令总结【显示】
ls
【显示当前文件夹下的目录项(ls=list)】
ls -a
【显示当前文件夹下所有(包括隐藏) 的目录项(a=all)】
ls -d
【显示当前目录项的属性(d=dirname)】
ls -h
【人性化显示当前文件夹下目录项的信息(h=human)】
ls -R
【递归显示当前文件夹下目录项的信息(R=recursion)】
ls -l
【显示当前文件夹下目录项的详细信息(l=long)】
详细信息包括:
文件权限 硬链接计数 所有者 所属组 大小 时间 文件名/文件夹名
文件权限的格式:
– r w - r - - r - -
1 234 567 890
1代表文件类型【- 文件 d 目录 l 软链接文件】
234代表所有者读写执行权限【r(read)读 w(write)写 x(execute)执行】
567代表同组用户读写执行权限
890代表其他人读写执行权限
ls -i
【显示当前文件夹下目录项的i节点】
mkdir命令总结【创建】
mkdir
【创建新目录(mkdir=make directories)】
mkdir -p
【递归创建新目录(p=parents)】【注意:即使上级目录不存在,也会按照目录层级自动创建目录】
mkdir 目录1 目录2
【一次创建多个目录】
例如: mkdir /tmp/movies/chinese /tmp/movies/EA
cd命令总结【切换】
cd
【切换目录(cd=change directory)】
cd 目录1
【切换到目录1】
cd ..
【回到上一级目录】
pwd命令总结【显示当前】
pwd
【显示当前目录(**pwd=print working directory **)】
【注意,这个命令直接输入pwd即可,后面不用加目录名】
rmdir命令总结【删除空】
rmdir
【删除空目录(**rmdir=remove empty directories **)】 【注意:只能删除空目录】
cp命令总结【复制】
cp
【复制文件和目录(**cp=copy **)】
语法:
cp -r
【复制目录】
cp -p
【保留文件属性】
cp -r 目录1 目录2 目标目录
【复制多个目标目录到目标目录】
mv命令总结【剪切】
mv
【剪切文件和改名(**mv=move **)】
语法:
mv 原文件或目录1 原文件或目录2 目标目录
【多个剪切文件】
rm命令总结【删除】
rm
【删除文件或目录(**rm=remove **)】
语法:
rm -rf
【删除文件或目录】
rm -r
【删除目录】
rm -f
【强制删除】
touch命令总结【创建】
touch 文件名
【创建空文件】
touch 文件名1 文件名2
【创建多个空文件】
touch “前部分 后部分”
【创建带有空格的文件名】
cat命令总结【显示】
cat 文件名
【显示文件内容】
cat -n
【显示行号】
tac命令总结【显示】
tac 文件名
【显示文件内容(反向列示)】
more命令总结【分页显示】
more 文件名
【分页显示文件内容】
操作键:
空格或f 翻页
Enter 换行
q或Q 退出
less命令总结【分页显示】
less 文件名
【分页显示文件内容(可向上翻页)】
操作键:
空格或f 【翻页】
pageup 【向上翻页】
Enter 【换行】
向上箭头 【向上换行】
q或Q 【退出】
【注意:less中还能查找所需内容】操作如下:
在less的浏览状态里——输入 / 需要搜索的词
——按n
可跳转到下一个被查询到的词
head命令总结【显示前几行】
head -n 行数
【显示文件前面几行】
tail命令总结【显示后几行】
tail -n 行数
【显示文件后面几行】
ln命令总结【链接】
ln -s 原文件 目标文件
【生成软链接文件】
例如: ln -s /ect/issue /tmp/issue.soft
软链接的特点是:类似于Windows快捷方式
若用ls -l
命令来查看其信息,可得到:
- 软链接的文件权限是都是rwxrwxrwx
- 箭头指向指向原文件
ln 原文件 目标文件
【生成硬链接文件】
例如: ln /ect/issue /tmp/issue.hard
硬链接的特点是:
- 实现了
cp -p
+同步更新
的功能
若用echo "添加的内容" >> 目标文件
命令,再利用cat
命令就可看到硬链接文件和原文件都发生了更新。 - 原文件丢失,硬链接依然可以访问
- 可通过i节点识别【硬链接和原文件的一致,软链接与原文件的不一致】
- 不能跨分区进行
- 不能针对目录使用
权限管理命令总结
chmod命令总结【改变权限】
语法1:
chmod [{ugoa} {+-=}{rwx}] [文件或目录]
【改变文件或目录权限(**chmod=change the permissions mode of a file **)】
例如: chmod u+r testfile 【用户加读权限】
chmod u+w, g+x testfile 【用户加写权限,所属组加执行权限】
语法2:chmod [mode=421] [文件或目录]
【改变文件或目录权限】
其中:
r——4
w——2
x——1
【注意:mode 中的数字是三位数,其中每个数字是每个rwx的累加】
例如: chmod 777 testfile 【用户、组以及其他加读写执行的权限】
chmod -R
【递归改变文件或目录的权限】
例如: chmod 777 /tmp/a/b 【将目录a和b的权限都改为777】
chown命令总结【改变所有者】
chown [用户] [文件或目录]
【改变文件或目录的所有者(**chown=change file ownership **)】
例如: chown ET UFO 【将UFO的所有者改为ET】
chgrp命令总结【改变所属组】
chgrp [用户组] [文件或目录]
【改变文件或目录的所属组(**chgrp=change file group ownership **)】
例如: chgrp UAV UFO 【将UFO的所属组改为UAV】
umask命令总结【显示或修改权限】
umask -S
【以rwx的形式显示新建文件的缺省权限(**chgrp=change file group ownership **)】
注意:
新创建的文件的权限为: -rw-------
新创建的目录的权限为: -rwx------
【注意:在linux中默认新建的文件是不具有执行权限的】
umask [mode=421]
【mode中的数字是与777异或得到最终所需权限的数字,并非直接是所需权限的数字】
文件搜索命令总结
find命令总结【文件搜索】
find [搜索范围] [匹配条件]
【文件搜索】
常用的匹配条件有:
-name
按名称搜索
-iname
按名称搜索(不区分大小写)
-size
按大小搜索【+数字
表示大于 -数字
表示小于 数字
表示等于】【注意-size后面跟着的是数据块,1数据块=512字节=0.5K】
-user
按所有者搜索
-group
按所属组搜索
-amin
按访问时间搜索【a=access
和min=minutes
】
-cmin
按文件属性搜索【c=change
和min=minutes
】
-mmin
按文件修改搜索【m=modify
和min=minutes
】
条件1 -a 条件2
两个条件同时满足【a=and
】
条件1 -o 条件2
两个条件满足任意一个即可【o=or
】
-exec/-ok 命令{} \;
对搜索结果执行操作【exec=execute
】
-type
按文件类型查找【f表示文件, d表示目录, l表示软链接文件】
-inum
按i节点查找
例如:
find /etc -name init 【在目录/etc中查找文件init(精确查找)】
find /etc -name * init * 【在目录/etc中查找包含init字段的文件名(模糊查找)】
find /etc -name init ??? 【在目录/etc中查找init后有三个字符的文件名(?代表一个字符)】
find /etc -size +204800 【在目录/etc中查找大于100MB的文件】
find /home -user ET 【在用户家目录下朝招所有者为ET的文件】
find /etc -cmin -5 【在/etc下查找5分钟内被修改过文件属性的文件和目录】
find /etc -size +163840 -a -size -204800 【在/etc下查找大于80MB 小于100MB的文件】
find /etc -name UFO -exec ls -l {} ; 【在/etc下查找UFO文件并显示其详细信息】
find /etc -type -f; 【在/etc下查找文件类型】
find使用的注意事项:
- 不要在服务器高运行阶段使用查找
- 尽量让查找范围小,查找的条件更精确
locate命令总结
locate 文件名
【在文件资料库中查找文件】
【注意】
- 在时间很靠近的时候创建的文件可能还没有更新到文件资料库中,因此可能无法搜索到,因此需要进行更新命令
updatedb
,再进行搜索 - 在/tmp这个存在临时文件的目录不在文件资料库中
locate -i
【不区分大小写的文件搜索】
which命令总结
which 命令
【搜索命令所在目录及别名信息】
例如:
which rm 【搜索rm命令所在目录及别名信息】
whereis命令总结
whereis 命令
【搜索命令所在目录及帮助文档路径】
grep命令总结
grep [待查找的字串][文件]
【在文件中搜寻字串匹配的行并输出】
grep -i [待查找的字串][文件]
【不区分大小写】
grep -v [待查找的字串][文件]
【排除指定字串】
例如:
grep -v ^# /etc/inittab 【排除行首以#的注释行排除】
帮助命令总结
man命令总结
man [命令或配置文件]
【获得(非Shell命令)帮助信息】
例如:
man ls 【查看ls命令的帮助信息】
man services 【查看配置文件services的帮助信息】
help命令总结
help 命令
【获得Shell内置命令的帮助信息】
例如:
help umask 【查看umask命令的帮助信息】
【注意】
Shell 是一个命令解释器,它解释用户输入的命令并将它们送到内核
what命令总结
what 命令
【获得命令的简短信息】
例如:
what cd 【获得cd命令的信息】
apropos命令总结
apropos 配置文件
【获得配置文件的相关信息】
help命令总结
命令 --help
【获得命令的帮助信息(同man命令)】
用户管理命令总结
useradd命令总结
useradd 用户名
【添加新用户】
passwd命令总结
passwd 用户名
【为用户名设置密码】
【注意】普通用户只能修改自己用户的密码,超级用户能够修改任意用户的密码
who命令总结
who
【查看登录用户信息】
w命令总结
w
【查看登录用户详细信息】
压缩解压命令总结
gzip命令总结(压缩文件)
gzip [文件]
【压缩文件(gzip=GNU zip)】—格式.gz
例如:
gzip ET 【压缩ET文件】
gunzip命令总结(解压缩文件)
gunzip [压缩文件]
【解压缩.gz文件(gunzip=GNU unzip)】
例如:
gunzip ET.gz 【解压缩ET.gz文件】
tar命令总结(打包目录)
tar 选项[-zcf] [压缩后文件名][目录]
【打包目录】
选项:
-c
【打包】
-v
【显示详细信息】
-f
【指定文件名】
-z
【打包同时压缩】
例如:
tar -zcf Janpan.tar.gz Japan 【将目录Japan打包并压缩为.tar.gz文件】
tar命令总结(解压缩)
tar 选项[-zxvf] [压缩文件名]
【解压缩】
选项:
-x
【解包】
-v
【显示详细信息】
-f
【指定解压文件】
-z
【解压缩】
例如:
tar -zxf Janpan.tar.gz 【将目录Janpan.tar.gz解包并解压缩】
zip命令总结(压缩文件或目录)
zip 选项[-r] [压缩后文件名] [文件或目录]
【压缩文件或目录】–格式:.zip
选项:
-r
【压缩目录】
例如:
zip ET.zip ET【压缩文件】
zip -r Japan.zip Japan【压缩目录】
【注意】zip命令压缩文件后,能保留原文件
unzip命令总结(解压文件)
unzip [压缩文件]
【解压.zip的压缩文件】
例如:
unzip UFO.zip【解压缩UFO.zip文件】
bzip2命令总结(压缩文件)
bzip2 选项[-k] [文件]
【压缩文件】–格式:.bz2
选项:
-k
【产生压缩文件后保留原文件(k=keep)】
例如:
bzip2 -k UFO【压缩UFO文件为UFO.bz2】
tar -cjf UFO.tar.bz2 UFO【压缩UFO文件为UFO.bz2】
bunzip2命令总结(解压缩文件)
bunzip2 选项[-k] [压缩文件]
【解压缩文件】
选项:
-k
【解压缩后保留原文件(k=keep)】
例如:
bunzip2 -k UFO.bz2【解压缩UFO.bz2文件】
tar -xjf UFO.tar.bz2 【解包并解压缩UFO.bz2文件】
网络命令总结
write命令总结(给用户发信息)
write 用户名
【给用户发信息,以Ctrl+D保存结束】
例如:
write ET【给ET用户发消息】
【注意】用户必须在线
wall命令总结(给所有用户发信息)
wall [信息内容]
【给所有用户发信息,以Ctrl+D保存结束】
ping命令总结(测试网络连通性)
ping ip地址
【测试与IP地址的网络连通性,默认一直测试】
ping -c [次数] ip地址
【测试与IP地址的网络连通性,测试限定次】
例如:
ping 192.168.1.156【测试与IP地址为192.168.1.156的网络连通性】
ping -c 3 192.168.1.156【测试与IP地址为192.168.1.156的网络连通性,测试3次】
ping www.baidu.com 【测试与百度网站的网络连通性】
ifconfig命令总结(查看和设置网卡信息)
ifconfig 网卡名称 IP地址
【查看和设置网卡信息(ifconfig=interface configure)】
例如:
ifconfig 【查看和设置网卡信息】
ifconfig eth0 192.168.8.250【设置网卡IP地址】
mail命令总结(查看发送电子邮件)
mail 用户名
【查看和设置网卡信息(ifconfig=interface configure),以Ctrl+D保存结束】
last命令总结(列出目前与过去登入系统的用户信息)
last
【列出目前与过去登入系统的用户信息】
lastlog命令总结(检查某特定用户上次登录的时间)
lastlog
【检查所有用户上次登录的时间】
lastlog -u 用户名
【检查某特定用户上次登录的时间】
traceroute命令总结(显示数据包到主机间的路径)
traceroute 网址
【显示数据包到主机间的路径】
例如:
traceroute www.sina.com.cn
netstat命令总结(显示网络相关信息)
netstat [选项]
【显示网络相关信息】
选项:
-t: TCP协议
-u: UDP协议
-l: 监听
-r: 路由
-n: 显示IP地址和端口号
例如:
netstat -tlun 查看本机监听的端口
netstat -an 查看本机所有的网络连接
netstat -rn 查看本机路由表
setup命令总结(配置网络)
mount命令总结(挂载)
mount [-t 文件系统] 设备文件名 挂载点
【挂载】
例如:
mount -t iso9660 /dev/sr0 /mnt/cdrom
关机重启命令总结
shutdown命令总结(关机重启)
shutdown [选项] 时间
【关机重启】
选项:
-c
【取消前一个关机命令】
-h
【关机】
-r
【重启】
例如:
shutdown -h now 【现在关机】
shutdown -h 21:00 【晚上9点关机】
【注意】shutdown 可以在关机前正确保存数据和文件
其他关机的命令:
halt
poweroff
init 0
其他重启的命令:
reboot
init 6
时间转换命令总结
时间戳转换为具体时间(年月日):date -d "1970-01-01 20000 days"
具体时间(年月日)转化为时间戳:echo $(($(date --date="2022/05/08" +%s)/86400+1))
系统运行级别
数字 | 含义 |
---|---|
0 | 关机 |
1 | 单用户(只启动核心程序) |
2 | 不完全多用户,不含NFS(Network File service)服务 |
3 | 完全多用户 |
4 | 未分配 |
5 | 图形界面 |
6 | 重启 |
cat /etc/inittab
【查看系统运行级别类型】
init 数字
【修改系统运行级别】
runlevel
【查询系统运行级别】
文件编辑器Vim
Vim工作模式
插入命令 | 作用 |
---|---|
a | 在光标所在字符后插入 |
A | 在光标所在行尾后插入 |
i | 在光标所在字符前插入 |
I | 在光标所在行行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
定位命令 | 作用 |
---|---|
:set nu | 设置行号 |
:set nonu | 取消行号 |
gg | 到第一行 |
G | 到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
$ | 移至行尾 |
0 | 移至行首 |
删除命令 | 作用 |
---|---|
x | 删除光标所在处字符 |
nx | 删除光标所在处后n个字符 |
dd | 删除光标所在行,ndd删除n行 |
dG | 删除光标所在行到文件末尾内容 |
D | 删除光标所在处到行尾内容 |
:n1,n2d | 删除指定范围的行 |
复制剪切命令 | 作用 |
---|---|
yy | 复制当前行 |
nyy | 复制当前行以下n行 |
dd | 剪切当前行 |
ndd | 剪切当前行以下n行 |
p、P | 粘贴在当前光标所在行下或行上 |
复制剪切命令 | 作用 |
---|---|
r | 取代光标所在处字符 |
R | 从光标所在处开始替换字符,按Esc结束 |
u | 取消上一步操作 |
搜索和搜索替换命令 | 作用 |
---|---|
/string | 搜索指定字符串 搜索时忽略大小写: set ic |
n | 搜索指定字符串的下一个出现位置 |
:%s/old/new/g | 全文替换指定字符串 |
:n1,n2s/old/new/g | 在一定范围内替换指定字符串 |
保存和退出命令 | 作用 |
---|---|
:w | 保存修改 |
:w new_filename | 保存为指定文件 |
:wq | 保存修改并退出 |
ZZ | 快捷键,保存修改并退出 |
:q! | 不保存修改退出 |
:wq! | 保存修改并退出(文件所有者及root可使用) |
Vim使用技巧
导入命令执行结果: :r !命令
定义快捷键: :map 快捷键 触发命令
例如
:map ^P I# 【注释一行】–其中的^P输入是用Ctrl+v+P
:map ^B 0x【取消一行的注释】
:map ^H inano@163.com 【ctrl+h输入定义的邮箱】
连续行注释:
:n1,n2s/^/#/g
【^表示行首,#表示替换字符,g表示确认】
:n1,n2s/^#//g
:n1,n2s/^/\/\//g
【/\表示/(为了与命令中的/进行区分,加了转义符)】
例如
:1,4s/^/#/g 【在1-4行加注释】
:1,4s/^#//g 【将1-4行的行首的注释取消】
替换::ab mymail nano@163.com
【将mymail替换成nano@163.com】
【注意】如果只在该文件中进行定义,这种定义在系统关机或者重启后就会消失。
如果我们需要对所有文件都可保存这些操作,那么需要在用户/home目录下的配置文件里。
用户root——/root——vim /root/.vimrc
普通用户user—/home/nano
例如:
在vim文本编辑器中进行编辑:
map ^P I#
ab mymail nano@163.com
【注意:不需要在行首加:
】
软件包管理命令总结
yum命令总结
1.【查询所有可用软件包列表】 yum list
2. 【搜索服务器上所有和关键字相关的包】yum search 关键字
3.【安装软件包】 yum -y install 包名
选项:
-y: 自动回答yes
-install: 安装
4.【升级软件包】 yum -y update 包名
-update: 升级
5.【卸载软件包】yum -y remove 包名
--可能会删除系统的依赖,尽量不要使用
-remove: 卸载
6.【列出所有可更新的软件清单】yum check-update
3. 【升级所有软件】 yum update
--会升级系统内核,可能会导致系统崩溃,尽量不要使用
4. 【清除缓存命令】
yum clean packages
—【清除缓存目录下的软件包】
yum clean headers
—【清除缓存目录下的headers】
yum clean oldheaders
—【清除缓存目录下旧的headers】
yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
—【清除缓存目录下的软件包及旧的 headers】
文件目录权限总结
代表字符 | 权限 | 对文件的含义 | 对目录的含义 | 常用的命令或文件类型 |
---|---|---|---|---|
r | 读权限 | 可以查看文件内容 | 可以列出目录的内容 | file: cat/more/less/head/tail directory: ls |
w | 写权限 | 可以修改文件内容 | 可以在目录中创建和删除文件 | file: vim编辑器 directory: touch/mkdir/rmdir/rm |
x | 执行权限 | 可以执行文件 | 可以进入目录 | file: script/command directory: cd |
用户
添加新用户
useradd 用户名
【添加新用户】
passwd
【设置密码】
groupadd 用户组
【添加新用户组】
用户切换
su 普通用户名
【 超级用户到普通用户】
su [选项] 用户名
【 切换用户】
选项:
-【选项只使用“-”代表连带用户的环境变量一起切换】
-c 【仅执行一次命令,而不切换用户身份】
例如:
su - root
【连带环境变量切换到超级用户】
su - root -c "useradd user1
【不切换成root,但是执行useradd命令添加user1用户】
快捷键
ctrl+alt+Enter
【放大或还原窗口】
ctrl+l
【清空终端】
ctrl+c
【终止程序】
ctrl+d
【退出终端】