Linux之常用命令
一 简介
Linux 文件的命名规则
1. 除了 / 之外,所有的字符都合法,但有些字符最好不用,如空格符、制表符、退格符和字符 @ # $ & ( ) - 等 2. 避免使用 . 作为普通文件名的第一个字符 3. 大小写敏感,严格区分大小写(包括文件命名、命令、命令选项、用户名等)
Linux 命令格式
#命令格式 :命令 -选项 参数(操作对象) 例 :ls -la /etc
#说明: 1)当有多个选项时,可以写在一起 2)两个特殊的目录 . 和 .. ,分别代表当前目录和当前目录的父目录
Linux 命令提示符
[root@localhost /]# [当前登录用户@当前主机名 当前所在目录的最后一个目录]#
Linux常见目录




Linux内核:
/usr/src/kernels/ 或者 /usr/src/linux/
二 文件处理命令
1. ls
命令英文原意:list 命令所在路径:/bin/ls 功能描述:显示目录文件 语法:ls 选项 文件或目录 -a 显示所有文件,包括隐藏文件 -l 以长格式显示(详细信息) -d 查看目录属性,不显示目录下内容 -ld -h 文件大小显示为常见大小单位 B KB MB -lh -i 显示文件inode号 -rw-------. 1 root root 1190 08-10 23:37 test.txt 第一项: 权限位 第二项: 引用计数(文件:硬链接数=数值-1;目录:目录下的目录个数) 第三项: root 所有者(属主) 第四项: root 所属组(属组) 第五项: 文件大小(默认字节byte) 第六项 最后一次修改时间 第七项 文件名
2. cd
命令英文原意:change directory 命令所在路径:shell内置命令 功能描述:切换目录 语法:cd 目录 cd ~ 进入当前用户的家目录 cd - 进入上次目录 cd .. 进入上一级目录 cd . 进入当前目录
相对路径:参照当前所在目录,进行目录切换 #cd ./rc.d/ (先切换到/etc下) 绝对路径:从根目录开始,逐级确认目录进行切换 #cd /etc/rc.d/
3. pwd
命令英文原意:print working directory 命令所在路径:/bin/pwd 功能描述:显示当前目录
4. mkdir
命令英文原意:make directories 命令所在路径:/bin/mkdir 功能描述:创建新目录 语法:mkdir 目录名
-v 显示创建过程 -p 递归创建
5. tree
命令所在路径:/usr/bin/tree 功能描述:显示目录树 语法:tree 目录
示例:
[root@localhost ~]# tree /root/test
/root/test
├── A
│ └── abc.txt
└── a.txt
1 directory, 2 files
6. touch
命令所在路径:/bin/touch 功能描述:创建空文件 语法:touch 文件名
7. cp
命令英文原意:copy 命令所在路径:/bin/cp 功能描述:源文件或目录(或复制并改名) 语法:cp [选项] 源文件或目录 目标目录 -r 复制目录 -p 保留文件属 -a 相当于 -rp
8. mv
命令英文原意:move 命令所在路径:/bin/mv 功能描述:剪切、改名 语法:mv 源文件或目录 目标目录
9. rm 文件/目录
命令英文原意:remove 命令所在路径:/bin/rm 功能描述:删除文件 语法:rm [选项] 文件或目录 -r 删除目录 -f 强制执行 rmdir 空目录 (只能用来删除目录)
10. cat
命令所在路径:/bin/cat 功能描述:显示文件内容 语法:cat 文件名 注:文件超过一页内容后只能显示最后一页的内容 拓展: -n 列出行号 cat 将多个文件合并(按照文件先后顺序) #cat -n a.txt b.txt
11. more
命令所在路径:/bin/more 功能描述:分页显示文件内容 语法:more 文件名 空格 向下翻页 B 向上翻页 Enter 换行 q或Q 退出
12. less
命令所在路径:/usr/bin/less 功能描述:分页显示文件内容 语法:less 文件名 注:more能使用的四个选项 less都能使用,less和more的区别 在于less在显示文件内容的时候支持查找关键词,使用 /关键词 的方式进行查找
13. head与tail
head -n 显示文件前n行 tail -n 显示文件最后n行 tail -f 实时监控文件尾部变化
14. ln
命令英文原意:link 命令所在路径:/bin/ln 功能描述:生成链接文件 语法:ln -s 源文件 目标文件 #-s 创建软链接
ln 源文件 目标文件 # 创建硬链接 注:不管创建哪种链接,源文件的位置必须写绝对路径。
#硬链接特征: 1. 拥有相同的i节点和存储block块,可看做是同一个文件 2. 可通过i节点识别 3. 不能跨分区 4. 不能针对目录使用 硬链接不能链接目录 硬链接不能跨分区 #软连接特征: 1. 类似Win快捷方式 2. 软连接拥有自己的i节点和block块,但是数据块中只保存源文件的文件名和i节点,并没有实际的文件数据 3. lrwxrwxrwx # l 软连接 软连接文件权限都为rwxrwxrwx,但访问时要受源文件权限限制 4. 修改任意文件,另一都改变 5. 删除源文件,软连接不能使用
三 权限管理命令
-rw-r--r-- 1 root root 08-11 01:11 test.txt 权限位是十位 第一位:代表文件类型 - 普通文件 d 目录文件 l 链接文件 b 块设备文件 c 字符设备文件 s 套接字 p 管道 其余九位 读 写 执行 读 写 执行 读 写 执行 r w x r w x r w x 4 2 1 4 2 1 4 2 1 文件所有者(u) 文件所属组(g) 其他用户(o)
1. chmod
命令英文原意:change the permissions mode of a file 命令所在路径:/bin/chmod 功能描述:修改文件的权限 例: chmod u+x aa 给aa文件的所有者添加x权限 chmod g+w,o+w aa 给aa文件的所属组和其他人添加w权限 chmod u=rwx aa 给aa文件的所有者赋予rwx权限 chmod 644 aa 修改aa文件的权限为755,对应为rw-r--r--
权限的意义:
1. 权限对文件的含义
r:读取文件(cat more head tail)
w:编辑,新增,修改文件内容,但不包含删除文件
x:可执行
2. 权限对目录的含义
r:可查询目录下的文件名
w:具有可修改目录结构的权限,如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切 (touch rm mv cp)
x:可进入目录 (cd)
常见权限:
644 标准文件权限
755 文件:执行权限 目录:标准权限
777 最大权限(服务器不允许出现)
目录可用权限:
0:最大权限
5:基本权限,可进入,可查看
7:完整权限
2. chown
命令英文原意:change file ownership 命令所在路径:/bin/chown 功能描述:修改文件或目录的所有者、所属组 例:
chown tom a.txt 将a.txt文件的所有者修改为tom用户
chown :tom a.txt 将a.txt文件的所属组修改为tom组
3. chgrp
命令英文原意:change group ownership 命令所在路径:/bin/chgrp 功能描述:改变文件或目录的所属组 语法:chgrp 用户组 文件或目录 例:
chgrp tom file1 #改变文件file1的所属组为 tom组
4. umask
功能描述:显示和设置默认掩码值
777 -022 -------------- 755 #就是创建文件的默认权限 #Linux的安全机制,不给新建文件x权限
四 查找命令
1. which
命令所在路径:/usr/bin/which 功能描述:查看命令文件位置和命令可能出现的别名
2. whereis
命令所在路径:/usr/bin/whereis 功能描述:查找命令及帮助文档所在位置
3. locate 文件名
命令所在路径:/usr/bin/locate 功能描述:按照文件名查找,按照数据库查找 updatedb 强制更新数据库 /var/lib/mlocate #locate命令所搜索的后台数据库 /etc/updatedb.conf #配置文件,用于定义locate命令 PRUNE_BIND_MOUNTS = "yes“ #开启搜索限制 PRUNEFS = #搜索时,不搜索的文件系统 PRUNENAMES = #搜索时,不搜索的文件类型 PRUNEPATHS = #搜索时,不搜索的路径
4. find
#按文件查找 find 查找位置 -name 文件名 -iname #不区分大小写 #按时间查找 按天 ctime atime mtime 按分钟 cmin amin mmin c change #表示属性被修改过:所有者、所属组、权限 a access #被访问过(被查看过) m modify #表示内容被修改过 #例: find /etc -mmin -120 120分钟内内容被修改过的 find /etc -ctime +7 七天之前属性被修改过的文件 #按文件类型 -type f 二进制文件(普通文件) -type l 软链接文件 -type d 目录 #按照用户 -uid 数字 按照用户属主ID查找文件 -gid 数字 按照属组组ID查找ID -user 用户名 属主用户名 -group 组名 属组组名 -nouser 找没有属主的文件 Linux没有属主的正常文件: 1. 外来文件(光盘,U盘,移动硬盘,网络文件) 2. 极少数内核直接产生的文件(/proc /sys) #按照文件权限 find /boot -perm 644 #按照大小 单位是数据块 一块是512字节 1M -> 1024k -> 2048块 (1块是0.5k 也就是512字节) 100M -> 102400k -> 204800块 find /etc -size -10k 查找小于10k的文件 find /etc -size +2M 查找大于2M的文件 注意+-号,如果没有,是精确这么大,通常都会带上+或-号,表示一个范围。 #按照i节点 find ./ -inum 2310630 -exec rm {} \;
有一些文件的硬链接数量很多,有相同的i节点,查找其中一个文件的i节点号,一次性删除。
#逻辑连接符 -a (and 逻辑与) -o (or 逻辑与) 例: find /etc -size +1k -a -size -10k 在etc目录下查找大于1k并且小于10k的文件 #命令执行连接符(对查找到的文件,进一步处理) find ... -exec 命令 {} \; {}表示find查询的结果集 \是转义符,不使用命令别名,直接使用命令本身 ;分号是表示语句的结束 注意:固定格式,只能这样写。注意中间的空格
5. grep “字符串” 文件名
grep “root” /etc/passwd -v 反向选择 -i 忽略大小写 -o 统计有几个关键字
#find: 在系统中,搜索符合条件的文件名。如果要匹配,使用通配符匹配,通配符是完全匹配 #grep: 在文件中,搜索符合条件的字符串。如果要匹配,使用正则表达式匹配,正则表达式是包含匹配
注意事项:
1. 尽量不要在根目录/中查找,查找得慢,会占用太多服务器资源
2. 如果需要在服务器中全盘查找,可以写一条计划任务在凌晨执行(计划任务后面讲)
3. 查找范围越小越好,匹配条件,越精准越好
6. 管道符
#命令1 | 命令2 将命令1的标准输出作为命令2的标准输入 例:ls -l /etc | more 分屏显示ls内容 grep -o "root" /etc/passwd | wc -l
五 帮助命令
1. man 查看命令帮助
命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man man -f 命令 #查看命令有哪些级别的帮助
man -k 命令 #查看和命令相关的所有帮助

2. help 内部命令 #查看内部的帮助信息
3. 命令 --help #查看命令的常见选项
4. info 命令
回车: 进入子帮助页面(带有*号标记)
u 进入上层页面
n 进入下一个帮助小节
p 进入上一个帮助小节
q 退出
六 压缩和解压缩
1.最早的Linux备份介质是磁带,使用命令是tar
2.可以打包后的磁带文件进行压缩储存,压缩命令是 gzip和bzip2
3.进程使用的扩展名: .tar.gz --> .tgz .tar.bz2 --> .tbz2
1) .zip格式
压缩格式: zip 压缩文件(生成) 源文件 解压格式: unzip 压缩包名 -r 压缩目录
2) .gz 格式
1. 压缩 gzip 源文件
gzip -c 源文件 > 压缩文件 #压缩为 .gz格式,源文件保留 gzip -r 源目录 #不能压缩目录,压缩目录下所有内容 2. 解压缩 gunzip 压缩包
3) .bz2格式 #不能压缩目录
1.压缩 bzip2 源文件 bzip2 aa bzip2 -k 源文件 #压缩之后保留文件 2. 解压 bunzip2 压缩文件 #解压缩,-k 保留压缩文件
4) .tar
1. 打包 tar -cvf 打包文件名 源文件 tar -cvf aa.tar aa -c 打包 -v 显示打包过程 -f 指定生产后的文件名 2. 解打包 tar -xvf 打包文件名 -x 解打包 tar -xvf aa.tar 3. 压缩同时打包 -z 识别.tar.gz格式 -j 识别.tar.bz2格式 -v 显示压缩过程 -f 指定压缩包名 tar -zcvf 压缩包名 源文件名 tar -zxvf 压缩包名 #解压缩同时解打包 tar -jcvf 压缩文件名 源文件 #压缩同时打包 tar -jxvf 压缩文件名 #解打包同时解压缩 4. 查看不解包 tar -ztvf aa.tar.gz tar -jtvf aa.tar.bx2 -t #只查看,不解压 5. 指定解压缩文件位置 tar -jxvf root.tar.bz2 -C /tmp/
七 网络命令
1. ping
#测试网络连通性 ping -c 次数 192.168.1.1 #探测网络通畅 ping -s 65536 192.168.1.1 #指定谈测时数据包的大小 Ctrl +c 强制终止
2. ifconfig
#查询本机网络信息 命令名称:ifconfig 命令英文原意:interface configure 命令所在路径:/sbin/ifconfig 执行权限:root ifconfig eth0 192.168.1.1 netmask 255.255.255.0 ifconfig eth0 192.168.1.1/24 ifconfig eth0:0 192.168.1.2 #设置网卡子端口
3. w
#查询当前登录服务器的用户 第一行:当前时间 持续运行时间,登录用户数量,1分钟,5分钟,15分钟 前的平均负载 第二行:用户名 TTY:登录终端 FROM:来源IP 登录时间 IDLE:用户闲置时间 JCPU:所有进程占用cpu时间 PCPU:当前进程占用cpu时间 WHAT:用户正在进行的操作
4. who #查询登录用户
5. last #列出登录系统的相关信息
6. lastlog # 显示所有账户最后一次的登录时间
7. write 用户名
#给在线用户写信 #例: write root ctrl+d 保存,发送
8. wall
#对所有在线用户广播 #例: wall 字符串 或者 wall 回车 字符串 ctrl+d
9. mail
#邮件命令 发信: mail 用户名 标题 内容 ctrl+d 结束,发送
收信: mail 1 2 3 查看对应邮件(from to subject) h 列出邮件列表 q 退出
10. netstat
#查看网络连接状态 netstat -tlun 查看本机所有监听端口 -t tcp协议 -u udp协议 -l 监听 -n 以IP和端口的形式显示信息
/etc/service #所有常见的端口
11. traceroute
1.命令格式: traceroute[参数][主机] 2.命令功能: traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。 具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小] 3.命令参数: -d 使用Socket层级的排错功能。 -f 设置第一个检测数据包的存活数值TTL的大小。 -F 设置勿离断位。 -g 设置来源路由网关,最多可设置8个。 -i 使用指定的网络界面送出数据包。 -I 使用ICMP回应取代UDP资料信息。 -m 设置检测数据包的最大存活数值TTL的大小。 -n 直接使用IP地址而非主机名称。 -p 设置UDP传输协议的通信端口。 -r 忽略普通的Routing Table,直接将数据包送到远端主机上。 -s 设置本地主机送出数据包的IP地址。 -t 设置检测数据包的TOS数值。 -v 详细显示指令的执行过程。 -w 设置等待远端主机回报的时间。 -x 开启或关闭数据包的正确性检验。
#常见的端口: 20 21 ftp 文件共享 22 ssh 安全的远程连接 23 telnet 25 smtp 简单邮件传输协议(发信) 110 pop3 邮局协议(收信) 80 http 超文本传输协议 3306 mysql 数据库端口 3389 windows 终端端口 53 DNS
#arp
用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系
-a<主机>:显示arp缓冲区的所有条目; -H<地址类型>:指定arp指令使用的地址类型; -d<主机>:从arp缓冲区中删除指定主机的arp条目; -D:使用指定接口的硬件地址; -e:以Linux的显示风格显示arp缓冲区中的条目; -i<接口>:指定要操作arp缓冲区的网络接口; -s<主机><MAC地址>:设置指定的主机的IP地址与MAC地址的静态映射; -n:以数字方式显示arp缓冲区中的条目; -v:显示详细的arp缓冲区条目,包括缓冲区条目的统计信息; -f<文件>:设置主机的IP地址与MAC地址的静态映射。
八 关闭和重启命令
1. sync
#数据同步,把内存中数据,强制保存进硬盘
2. 关机
shutdown -h now #没有特殊情况,使用此命令 halt init 0 poweroff
3. 重启
shutdown -r now #用此
reboot
init 6
4.注销
logout
exit #工作中常用
ctrl+d #工作中常用
九 挂载命令
#linux所有存储设备都必须挂载使用,包括硬盘 命令名称:mount 命令所在路径:/bin/mount
1. mount
#查询系统中已经挂载的设备常见的存储设备: /dev/sda1 第一个scsi硬盘的第一分区 /dev/cdrom 光盘 /dev/sr0 光盘 centos 6.x 常用挂载点: /mnt /media /cdrom #挂载格式: mount [-t 文件系统类型] [-o 特殊选项] 设备文件名 挂载点 选项: -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660 等文件系统 -o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步异步等,如果不指定则默认值生效

示例:
mount #查看挂载信息 /dev/sda1 on /boot type ext4 (rw) 我们查看到/boot分区已经被挂载,而且采用的defaults选项,那么我们重新挂载分区,并采用noexec 权限禁止执行文件执行,看看会出现什么情况(注意不要用/分区做试验,不
然系统命令也不能执行了) [root@lchuan ~]mount -o remount,noexec /boot [root@lchuan ~]cd /boot [root@lchuan ~]vim hello.sh #!/bin/bash echo “hello world!” [root@lchuan ~]chmod 755 hello.sh [root@lchuan ~]./hello.sh [root@lchuan ~]-bash: ./hello.sh: 权限不够 [root@lchuan ~]mount -o remount,exec /boot 结束记得修改回来,不然会影响系统正常启动
2. 挂载硬盘分区、移动硬盘
[root@lchuan ~]mkdir /mnt/disk1 #创建挂载点 [root@lchuan ~]mount /dev/sdb1 /mnt/disk1 #挂载硬盘分区或者移动硬盘
3. 挂载光盘
[root@lchuan ~]mount -t iso9660 /dev/cdrom /mnt/cdrom #/mnt/cdrom必须是已存在的目录
4. 挂载U盘
[root@lchuan ~]fdisk -l #查看当前系统下的存储设备,确认U盘的设备名称 [root@lchuan ~]mount -t vfat /dev/sdb1 /mnt/usb #fat32格式的U盘挂载方式 -t vfat fat32 -t fat fat16 注:Linux默认情况不识别NTFS格式。
5. 卸载
umount 设备名称或者是挂载点 #所有的挂载的设备卸载方式都一样
#挂载NTFS分区设备 a.重新编译内核(略) b.加载NTFS模块(略) c.使用第三方插件加载NTFS格式 下载NTFS-3g插件 安装插件 挂载NTFS格式设备 [root@lchuan ~]mount -t ntfs-3g 设备名 挂载点
十 查看Linux系统信息
1. uname -a 可显示电脑以及操作系统的相关信息
[root@localhost ~]# uname -a Linux localhost.localdomain 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
2.cat /proc/version 说明正在运行的内核版本
Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016
3.查看CentOS的版本号(C7)
cat /etc/centos-release
4.cat /etc/issue 显示的是发行版本信息(C6)
[root@localhost ~]# cat /etc/issue CentOS release 6.8 (Final) Kernel \r on an \m
5. lsb_release -a (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb)
[root@localhost ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.8 (Final) Release: 6.8 Codename: Final
5. cat /proc/cpuinfo 查看CPU信息
6.查看操作系统位数
getconf LONG_BIT

浙公网安备 33010602011771号