一、Linux常用命令
一、linux命令的格式
1、命令 [选项] [参数] (选项是调整命令的功能,参数是这个命令操作的对象)
ls -al anaconda-ks.cfg(参数) 文件、目录、进程可以作为参数
ls list 显示目录下内容
ls -a 显示所有文件(包含隐藏文件)
ls -al 长格式显示所有文件
ls -h 文件大小显示为常见大小单位 B KB MB
ls -d 显示目录本身,而不是里面的子文件
ls -i +文件名 显示文件的inode号
ls -l 长格式显示
-rw------- 1 root root 1190 08-10 23:37 anaconda-ks.cfg
第一项: 权限位
第二项: 1 引用计数(对没目录来说代表目录下的子目录,对文件没什么毛用)
第三项: root 所有者
第四项: root 属组
第五项: 大小
第六项 最后一次修改时间
第七项 文件名
2、提示符
[root@localhost src]#
[当前登录用户@主机名 当前所在目录]#
# 超级用户
$ 普通用户
用户家目录 管理员家目录 /root 普通用户家目录 /home/用户名
二、目录操作命令
1、cd 切换所在目录 列:cd /home
相对路径:参照当前所在目录,进行查找。一定要先确定当前所在目录。 root]#cd ../usr/local/src
绝对路径:cd /usr/local/src 从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置
cd 或者cd ~ 进入当前用户的家目录 超级用户 /root 普通用户 /home/aa/
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
2、pwd 显示当前所在目录
3、linux常见目录
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录 ,启动相关文件
/dev 设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
/root 超级用户的家目录
/tmp 临时目录
/sbin 命令保存目录(超级用户才能使用的目录)
/proc 直接写入内存的 (内存沾满之后会死机,重启会消失,不要随便动内存)
/sys 直接写入内存的
/usr 系统软件资源目录
/usr/bin/ 系统命令(普通用户)
/usr/sbin/ 系统命令(超级用户)
/var 系统相关文档内容
/var/log 系统日志位置
/var/spool/mail/ 系统默认邮箱位置
/var/lib/mysql/ 默认安装的musql库文件目录
4、建立目录
mkdir 目录名
mkdir -p 11/22/33 递归创建目录
5、删除目录
rmdir 目录名 (只能删除空目录)
rm 文件名 删除文件
rm -rf 目录 (删除文件和目录)
-r 递归 删除目录
-f 强制
6、tree 目录名 显示指定目录下所有内容的目录树
三、文件操作命令
1、创建空文件或修改文件时间
touch 文件名
2、删除文件
rm -rf 文件名
-r 删除目录
-f 强制
3、cat 文件名 查看文件内容;从头到尾
cat -n 文件名 列出行号
空格向下翻页,b向上翻页,q退出
linux本机 shift+PageUp 向上翻页,shift+PageDown 向下翻页
4、more 文件名 分屏显示文件内容
5、head 文件名 显示文件头
head -n 行数 文件名 显示指定文件头几行
head -n 20 test1 显示文件头20行
head -20 test1 显示文件头20行
6、tail 文件名 显示文件尾
tail -f 文件名 监听文件尾,不退出
快捷键
ctrl + c 强制终止
ctrl + l 清屏
ctrl + u 光标所在删除到行首
ctrl + y 粘贴删除的内容
ctrl + a 光标移动到行首
ctrl + e 光标移动到行尾
7、链接文件(类似于windows的快捷方式)
ln -s 原文件 目标文件 文件名都必须写绝对路径
ln -s /root/mymulu/test1 /tmp/bols
更改原文件软链接数据也更改,更改软链接原文件数据也一样更改,删除原文件软链接打不开,删除软链接原文件不影响。
四、文件和目录都能操作的命令
1、rm删除 删除文件或目录
2、cp复制
cp 原文件 目标位置
-r 复制目录
-p 连带文件属性复制
-d 若原文件是链接文件,则复制链接属性
-a 相当于 -pdr
cp -a /root/mymulu/test2 /tmp/t2
3、mv 剪切或改名
mv 原文件 目标位置
mv /root/mymulu /tmp/mymulu 剪切
mv /root/mymulu /root/my1 原文件位置和目标文件位置在同一个目录下就是改名
五、权限管理
1、权限位
-rw-r--r--. 1 root root 11 Mar 2 13:36 test2
权限位十位:
第一位:文件类型,(- 普通文件;d 目录文件;l 链接文件;c 设备字符文件 )
第二位到第十位(共九位权限位)
九位 属主权限u(user) 属组权限g(group) 其他人权限o(other)
r 读 4
w 写 2
x 执行 1
2、chmod 修改权限
chmod u+x test1 test1文件的属主加上执行权限
chmod u-x test1
chmod g+w ,o+w test1
chmod u=rwx test1
chmod 755 test1
chmod 644 test1
777 绝对不允许在服务器给目录赋予777权限
3、权限的意义
3.1、权限对文件的含义
r:读取文件内容 对应命令: cat more head tail
w:编辑、新增、修改文件内容(不包含删除文件内容) 对应命令: vi、echo
x:可执行 对文件来说最高权限是执行权限
给hello.sh文件赋予755权限,并且执行它
执行文件两种方式,1、绝对路径方式 2、相对路径方式
3.2、权限对目录的含义
r:可以查询目录下文件名 对应命令:ls
w:具有修改目录结构的权限。如新建文件和目录,删除此目录下得文件和目录,重命名此目录下得文件和目录,剪切, 对应命令:touch rm mv cp ,对目录来说最高权限是写权限
x:可以进入目录 对应命令:cd
目录可用权限: (必须要有查看权限和进入目录权限)
0 最小权限
5 基本权限
7 最大权限
4、属主和属组命令 chown
chown 用户名 文件名 改变文件属主
chown user1 aa1 user1用户必须存在
chown user1:user1 aa1 改变属主的同时改变属组
useradd 用户名 添加用户 (在添加用户的时候默认会添加一个和用户名一样的组)
passwd 用户名 设定用户密码
六、帮助命令
1、man 命令 查看命令的帮助
man ls
2、命令 --help
touch --help 查看命令的常见选项
七、查找命令
1、whereis 命令名 查找命令的命令,同时看到帮助文档的位置
它在哪?
它是干嘛的
2、find 搜索命令
按照“文件名”查找 -name
find 查找位置 选项 文件名
find / -name abc 按照文件名查找
按照“用户”查找 -user
find . -user root 查找当前目录所有者是root的文件
find . -group root 查找当前目录所属组是root的文件
find / -nouser 查找/目录下没有属主的文件
Linux中没有所有者的文件,以下两种是正常的:
1、外来文件(U盘、光盘)
2、极少内核产生的文件
/proc /sys /mnt/cdrom/ 除了这三个目录
通配符:
* 匹配任意内容
? 匹配任意一个内容
[] 匹配任意一个中括号里面的内容
正则:
* 前一个字符匹配任意多次
. 匹配任意一个字符
.* 匹配任意内容
? 前一个字符匹配0次或1次
[] 匹配中括号内任意一个字符
通配符:用来匹配查找文件名,通配符是完全匹配,必须一模一样(用来匹配字符串),完全匹配(find查找)
正则: 用来匹配文件里的内容,是包含匹配(grep查找)
按照“文件大小”查找 -size
-size 按照文件大小查找 +50k,大于50k,-50k,小于50k,50k,等于50k k(千字节必须小写),M(兆字节必须大写)
-size n[cwbkMG](选项)
File uses n units of space. The following suffixes can be used: 文件使用n个空间单位。可以使用以下后缀:
‘b’ for 512-byte blocks (this is the default if no suffix is used) b是选项默认的,不加单位则按照512字节作为一个数据块搜索
‘c’ for bytes 按照字节搜索
‘w’ for two-byte words 双字节,按照一个字搜索
‘k’ for Kilobytes (units of 1024 bytes) “k”表示千字节(1024字节的单位)按照千字节搜索
‘M’ for Megabytes (units of 1048576 bytes) “M”表示兆字节(单位为1048576字节)按照兆字节搜索
‘G’ for Gigabytes (units of 1073741824 bytes) “G”表示千兆字节(单位为1073741824字节)按照千兆字节搜索
find . -size -1k 在当前目录查找小于1k字节的文件
按照“文件类型”查找 -type
-type 类型 按照文件类型查找 f:普通文件 d:目录 l:链接文件
find . -type f
find . -type d
按照“权限”查找 -perm
find . -perm 644
按照“文件名不区分大小写”查找 -iname
find . -iname abc
按照“i接点”查找 -inum
find . -inum 786119 知道i节点去查找文件名
ls -i 知道文件名去查找i节点
按照“修改时间”查找 -mtime
-10,10天内;+10,10天前;10,第10天
在查找出的结果中,直接进行命令操作
长格式显示1天内m2目录下面创建的文件和目录
3、grep "字符串" 文件名 查找符合条件的字串
grep "root" /etc/passwd
grep -v "root" /etc/passwd -v反向选择(取反),在/etc/passwd 中不存在root 字符的
4、管道符
命令1 | 命令2 命令1的执行结果作为命令2的执行条件 (管道符的作用和-exec的作用一模一样,find命令不支持管道符,所以专门开发了-exec命令)
只要加了管道符,不论前面是文件还是内容,全都当做文件内容来处理,使用grep搜索查找
netstat -an | grep ESTABLISHED | wc -l 统计正在连接服务器的网络连接数量
补充命令:
netstat 查看网络状态的命令
-t 查看tcp端口 (tcp通信,需要进行三步,A问B你在吗,B答复A我在,A再给B回复我要发数据了,可靠)
-u 查看udp端口 (udp,A直接发数据给B,速度快)
-l 监听
-n 以IP和端口号显示,不用域名和服务名显示
netstat -tuln 查看本机开启的服务
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 按照连接数量,统计哪个ip地址连接数量多,可以用来屏蔽排除非法攻击
八、压缩和解压缩
1、linux可以识别的常见压缩格式
.gz .bz2
2、常见的压缩和打包命令
.tar.gz (压缩性能相对较差,但是速度更快) .tar.bz2 (算法先进,压缩出来结果更小,但是更占用时间)
linux不靠扩展名区分文件类型,而是靠权限,建议linux系统下压缩包严格区分扩展名
tar -zcvf 压缩文件名 源文件
tar -zcvf aa.tar.gz aa
-z 识别.gz格式
-j 识别.bz2格式
-c 压缩
-x 解压缩
-v 显示压缩过程
-f 指定压缩包名
-t 只查看不解压
查看不解包
tar -ztvf aa.tar.gz 查看不解包
tar -jtvf aa.tar.bz2
指定到解压位置
tar -jxvf aa.tar.bz2 -C /tmp/
九、关闭和重启命令
服务器绝对不允许关机,只能重启,并且服务器应该定时重启,保证服务器状态归零
1、shutdown -h now 没有特殊情况,禁止使用此命令
shutdown -h 关机
shutdown -r now 立即重启 (shutdown -r 重启,最安全的重启命令,会保存正在运行的服务然后再重启)
shutdown -r 16:00 16:00重启 -r(reboot)
windows设置关机,shutdown -s -t 200(秒)
2、reboot 重启
十、挂载命令
linux所有存储设备都必须挂载使用,包括硬盘
挂载:给你的分区找到一个硬件名,创建一个目录,把它连起来
/dev/sr0<------->cdrom
1、mount 挂载
mount -t 文件系统 设备描述文件 挂载点(已经存在的空目录)
mount -t iso9660 /dev/sr0 /mnt/cdrom/ 默认挂载选项
mount /dev/sr0 /mnt/cdrom/ 简写挂载
光盘挂载
/dev/sda1 第一个scsi硬盘的第一个分区
/dev/cdrom 光盘
/dev/hdc 光盘 centos5.5
/dev/sr0 光盘 centos6.x
/dev/sr0 设备文件名 /mnt/cdrom/ 才是盘符
mount直接回车,查看当前已经挂载的设备
2、umount 卸载
umount /mnt/cdrom 强调:退出挂载目录,才能卸载
十一、网络命令
1、ping 测试网络连通性
ping -c 次数 ip 探测网络通畅
2、ifconfig 查询本机网络信息
Linux脚本中 #是注释 唯独一句 #!/bin/bsah 不是注释, 标注下面是shell语句开始...
十二、centOs7防火墙操作命令
1、防火墙开启、关闭、禁用
(1)设置开机启用防火墙:systemctl enable firewalld.service
(2)设置开机禁用防火墙:systemctl disable firewalld.service
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld
(5)检查防火墙状态:systemctl status firewalld
2、使用firewall-cmd 配置端口
(1)查看防火墙状态:firewall-cmd --state
(2)重新加载配置:firewall-cmd --reload
(3)查看开放的端口:firewall-cmd --list-ports
(4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
命令含义:
–zone #作用域
–add-port=9200/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
(5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent