linux-1. 常用命令

1. 搜索命令

命令which, whereis, locate和 find的区别
which: 在$PATH目录下查找文件。只能查找可执行文件,该命令基本只在$PATH路径中搜索,查找范围小,查找速度快。默认只返回第一个匹配的文件路径,通过选项-a可以返回所有匹配结果。

which cp

whereis: 在预定目录下(whereis -l查看)查找文件。不只可以查找命令,其他它文件类型都可以(man中说只能查找命令,源文件和man文件,实际测试可以查找大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快,可以能过-b选项,限定只搜索二进制文件。

whereis useradd

locate: 在数据库中查找目录或文件。超快速查找任意文件。它会从linux内置的 索引数据库 查找文件的路径,索引速度超快,刚刚新建的文件可能需要 一定时间才能加入该索引数据库,可以通过执行updatedb命令来强制更新一次索引,这样确保不会遗漏文件。该 命令通常会返回大师匹配项,可以使用-r选项通过正则表达式来精确匹配。

# 在文件资料库中查找文件: /var/lib/mlocate/mlocate.db
# updatedb:更新文件资料库
# /tmp目录下保存的文件是不会被收录到locate文件资料库中的
# -i:不区分大小写
locate inittab

find: 遍历目录查找文件。直接搜索整个文件目录,默认直接从根目录开始搜索,建议在以上命令都无法解决问题时才用它,功能最强大但速度超慢。除非众多指定一个很小的搜索范围。通过-name选项指定要查找的文件名,运行通配符。

# 语法 find [搜索范围] [匹配条件]
# 精确搜索
# 按文件名搜索, 在/etc目录下查找文件init
# -iname: 不区分大小写
find /etc -name init
# 这是精确的搜索,/etc/inittab这样的文件是搜索不到
# 如果要模糊搜索,可以使用通配符
find /etc -name *init*

# 在根目录下查找大于100MB的文件,首先要把大小换算成数据块的个数
# +n 大于 -n 小于 n 等于
# 1数据块 512字节 0.5K, 所以200MB=102400KB=204800个数据块
find / -size +204800

# 在根目录下查找所有者为px的文件
# -group根据所属组查找
find /home -user px
# -gid n       :寻找群组ID为n的文件 
# -group name  :寻找群组名称为name的文件 
# -uid n       :寻找拥有者ID为n的文件 
# -user name   :寻找用户者名称为name的文件 
# -name file   :寻找文件名为file的文件(可以使用通配符) 

# 根据时间属性查找文件
# -amin 访问时间     access
# -cmin 文件属性改变 	change(文件的权限,所有者,所属组,其它人,ls可以看到的信息lrwxrwxrwx)
# -mmin 文件内容		modify	
# 在/etc目录下,5分钟时间内,查找文件属性被改变的文件
find /etc -cmin -5
# +: 超过多长时间, -:多长时间内 

# 在/etc下查找大于80MB小于100MB的文件
# -a: 并
# -o:或
# -type:根据文件类型查找 f文件, d目录, l软链接文件
# -inum:根据i节点查找 
find /etc -size +163840 -a -size -204800
# 以init开头的文件
find /etc -name init* -a -type f

# 在/etc下查找inittab文件并显示其详细信息
# -exec/-ok 命令 {} \; 对搜索结果执行操作
find /etc -name inittab -exec ls -l {} \;

ls

# ls [option] [参数]
# -a: 显示所有文件,包括隐藏文件
# -l: 详细信息显示
# -d: 查看目录属性
# -h: 人性化显示文件或目录大小
# -t: 按时间排序
# -i: i节点号
ls -al
# -rw------- 1 panxiong panxiong 5441 Jan 13 11:19 .bash_history
# 文件属性 1:文件的引用计数 所有者 所属组 文件或目录大小 文件最后一次修改时间 文件名
# -:文件 d: 目录 l:软链接

2. 目录处理命令

# mkdir
# make directories
# mkdir -p [目录名]
# -p: 递归创建
mkdir -p ~/dir1/dir2/dir3
mkdir -p ~/dir1/dir2/dir3 ~/dir1/dir2/dir4

# cd 目录银的
# cd ~: 家目录
# cd -:回到上一次目录

# pwd: 显示当前目录

# rmdir: 删除空目录,不能删除非空目录

# 复制命令:cp
# cp -rp [原文件或目录] [目标目录]
# -r: 复制目录
# -p:保留文件属性
cp -r ~/dir1/dir2/dir3 /root
# 同时复制多个文件到/tmp中
cp /root/install.log /root/install.log.syslog /tmp
# 复制文件的同时更名
cp /root/install.log /tmp/mylog
# 复制目录的同时更名
cp -r /root /tmp/myroot 

# 剪切和更名命令: mv
# mv [原文件或目录] [目标目录]
mv ~/dir1/dir2/dir3 /tmp
# 目录改名,文件改名也一样
mv ~/dir1/dir2/dir3 ~/dir1/dir2/new_dir3

# 删除目录
# rm -rf [文件或目录]
# -r:删除目录
# -f: 强制删除

3. 文件处理命令

# 1.创建空文件
# touch [文件名]
# 创建两个文件
touch file1 file2
# 如果是想创建文件名为"file1 file2”的文件, 但是不建议这样命名
touch "file1 file2"

# 2.显示文件内容
# cat [文件名]
# -n:显示行号
cat -n /etc/issue

# tac [文件名]
# 反向显示
tac /etc/issue

# more [文件名] :分页显示文件内容
# 空格或f:翻页
# Enter: 换行
# q或Q: 退出
more /etc/services

# less [文件名]:和more一样,但是可以向上翻页
# /关键词:搜索关键词 n:下一个
# 上箭头:向上一行
# pageUP:向上翻一页
less /etc/services

# head命令:可以查看文件的前几行
# 显示/etc/services的前7行,如果没有-n, 默认是显示前10行
head -n  7 /etc/services

# tail命令:可以查看文件的末尾几行
# 显示/etc/services的最后3行,如果没有-n, 默认是显示最后10行
# -f: 动态显示文件的末尾内容
tail -n 3 /etc/services

4. 链接命令 ln

# ln -s [原文件] [目标文件]
# -s: 创建软链接
# 创建文件/etc/issue的软链接/tmp/issue.soft
ln -s /etc/issue /tmp/issue.soft
# 创建文件/etc/issue的硬链接/tmp/issue.soft
ln -s /etc/issue /tmp/issue.hard
# 硬链接可以同步更新, 修改硬链接的文件内容,原文件也会修改或者原文件修改了文件内容, 硬链接的文件内容也会同步修改 
# 硬链接不能跨分区,软链接可以跨分区
# 硬链接不能针对目录使用,软链接可以

5. 更改文件权限

# 只有root和文件所有者才可以改变文件权限
 # chmod [{ugoa}{+-=}{rwx}] [文件或目录]
 # chmod [mode=421] [文件或目录]
 # -R:递归修改
 chmod g+w,o-w test.txt
 chmod g=rwx test.txt
 chmod 755 test.txt
 # 更改目录及其下所有的子文件的权限更改为755
 chmod -R 755 testdir
  

在这里插入图片描述

# chown: change file ownership 改变文件或目录的所有者
# 执行用户:所有用户
# chown [用户] [文件或目录]
# 将text.txt的所有者变更为px,用户必须存在,否则会出错
chown px text.txt
# chgrp: change file group ownership 改变文件或目录的所属组
# 执行用户:所有用户
# chown [用户组] [文件或目录]
# 将text.txt的所属组变更为px_group,用户必须存在,否则会出错
groupadd px_group
chgrp px_group text.txt 
# umask [-S]:the user file-creation mask 显示、设置文件的缺省权限
# -S: 以rwx形式显示新建文件缺省权限
# 修改umask,使新建目录只有754权限
umask 023

6. 帮助命令

# man 获得帮助命令 
# man [命令或配置文件]
# 1:命令的帮助, 5:配置文件的帮助
# 命令的格式可以在配置文件中查看
man ls 
# 查看配置文件
man services

# 命令 --help
# --help:查看命令有哪些选项
ls --help 

# info

# help: 获得Shell内置命令的帮助信息
help umask
help if 
# **whatis:** 将man手册NAME节区下的那句描述的话打印出来
# whatis: 查看命令的作用描述信息
# whatis 命令

# apropos: 查看配置文件的简短信息
apropos services

7. 用户管理命令

# 1. 添加新用户
# 执行权限:root
# useradd 用户名
useradd px 

# 2.设置或更改用户密码
# 执行权限:所有用户,普通用户只能更改自己的密码,root可以更改所有用户的密码
# passwd 用户名
passwd px

# 3. 查看登录用户信息
# 执行权限:所有用户
who

# 4.查看更加详细的登录用户信息
w
# LOGIN@ IDLE   JCPU   PCPU WHAT
# LOGIN@:用户登录的时间
# IDLE: 空闲时间
# JCPU:累积占用CPU时间
# PCPU:当前存在执行的操作占用CPU的时间
# WHAT:当前正在执行的操作

8. 网络命令

# 1. write: 给用户发信息,以Ctrl+D保存结束
# 执行权限:所有用户
# write 用户名 (用户需要在线)
write px

# 2.wall(write all):给所有用户发信息
# 执行权限:所有用户
# write [message]
wall hello everyone 

# 3. ping: 测试网络连通性
# 执行权限:所有用户
# write [option] IP地址
# -c: 指定发关次数
ping -c 3 www.baidu.com

# 4. ifconfig:查看和设置网卡信息
# 执行权限:root
# ifconfig 网卡名称 IP地址
ifconfig eth0 192.168.8.250

# 5. mail: 查看发送电子邮件
# 执行权限:所有用户
# mail [用户名]
mail root

# 6. last:列出目前与过去登入系统的用户信息
# 执行权限:所有用户
# last
last

# 7. lastlog: 检查某特定用户上次登录的时间
# 执行权限:所有用户
# lastlog
# -u: 用户uid
lastlog
lastlog -u 502

# 8. tracerout: 显示数据包到主机间的路径 
# 执行权限:所有用户
# traceroute
traceroute www.baidu.com

# 9. mount
# mount [-t 文件系统] 设备文件名 挂载点
# 执行权限:所有用户
mkdir /mnt/cdrom
mount -t iso9660 /dev/sr0 /mnt/cdrom
# 卸载需要先退出挂载点
umount /dev/sr0
# 或者 但只能选择一个
umount /mnt/cdrom

netstat:显示网络相关信息,一般查看本机开启的端口

# 常用选项:
# -t: TCP协议
# -u: UDP协议
# -l: 监听
# -r: 路由
# -n: 显示IP地址和端口号
netstat -tlun # 查看本机监听的端口
netstat -an # 查看本机所有的网络连接,用的少
netstat -rn # 查看本机路由表和网关

在这里插入图片描述
Proto: 协议
Recv-Q: 接收缓冲队列中的数据大小,0代表接收网络很通畅,无积压
Send-Q:发送缓冲队列中的数据大小,0代表发送网络很通畅,无积压
Local Address:本地IP地址和本机端口
Foreign Address :远程IP地址和端口
State:TCP才有State
在这里插入图片描述

9. 关机重启命令

# 1. shutdown [option] 时间
# -c: 取消前一个关机命令
# -h: 关机
# -r: 重启
shutdown -h now
shutdown -h 20:30
shutdown -r now

# halt, poweroff, inint 0
# reboot, init 6

# 修改系统默认运行级别
cat /etc/inittab

# 查询系统运行级别
runlevel

# logout:退出命令

在这里插入图片描述

10. 压缩与解压命令

zip
语法 zip 选项[-r] [压缩后文件名] [文件或目录]

# -q 不显示指令执行过程
# -r 递归处理,将指定目录下的所有文件和子目录一并处理
# -d 从压缩文件内删除指定的文件
# -v 显示指令执行过程或显示版本信息

# 将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
zip -q -r html.zip /home/html
# 如果在我们在 /home/html 目录下,可以执行以下命令:
zip -q -r html.zip *
# 从压缩文件 cp.zip 中删除文件 a.c
zip -dv cp.zip a.c

unzip

# 把文件解压到当前目录下
unzip test.zip
# 如果要把文件解压到指定的目录下,需要用到-d参数
unzip -d /temp test.zip
# 解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数
unzip -n test.zip
unzip -n -d /temp test.zip
# 只看一下zip压缩包中包含哪些文件,不进行解压缩
unzip -l test.zip
# 查看显示的文件列表还包含压缩比率
unzip -v test.zip
# 检查zip文件是否损坏
unzip -t test.zip
# 将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件
unzip -o test.zip -d /tmp/

.gz
gzip只能压缩文件,不能压缩目录,而且不保留原文件
压缩:gzip + 文件名 : gzip test
解压缩:gunzip + 压缩文件 或者 gzip -d + 压缩文件

tar:打包目录
语法:tar 选项[-zcf] [压缩后文件名] [目录]
-c 打包
-v 显示详细信息
-f 指定文件名
-z 打包同时压缩

# 只打包
tar -cvf test.tar test
# 打包的同时压缩
tar -zcf test.tar.gx test

tar命令解压缩
-x 解包
-v 显示详细信息
-f 指定解压文件
-z 解压缩

# 解包
tar -zxf test.tar.gz

bzip2: gzip的生级版本
语法: bzip2 选项[-k] [文件]
-k 产生压缩文件后保留原文件

bzip2 -k test
tar -jcf test.tar.bz2 test

解压缩:

bunzip2 -k test.bz2
tar -jxf test.tar.bz2

11. 其它命令

grep: 在文件中搜寻字串匹配的行并输出
-i: 不区分大小定
-v: 排除指定字串

grep multiuser /etc/inittab
# 将有#号的行都去掉
grep -v # /etc/inittab
# 将以#号开关的行都去掉
grep -v ^# /etc/inittab

发布了140 篇原创文章 · 获赞 44 · 访问量 12万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章