linux 基础操作(七)
文件命名规则
- 除了 / 之外,所有的字符都合法。
- 有些字符最好不用,如空格符、制表符、退格符和字符 @#$&()- 等。
- 避免使用. 作为普通文件名的第一个字符,. 开头的文件默认为隐藏文件。
- 大小写敏感。
命令格式:
命令 - 选项 参数
例如:
ls -a /etc
说明:
1)、当有多个选项时,可以写在一起
2)、两个特殊的目录. 和..,分别代表当前和当前目录的父目录
ls
ls 即为 list 的简写,列出当前目录下所有的文件及文件夹
所在路径:/bin/ls
显示目录文件
ls 选项 [-ald] [文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
-i 查看 i 节点
目录权限
所有用户有权限的目录
/bin 或者 /usr/bin
只有超级管理员有权限的目录
/sbin 或者 /usr/sbin
文件属性
d 目录 directory
- 二进制文件
l 软链接文件 link
r---read 读
w---write 写
x---execute 执行
列 | 列 | 列 | 列 | 列 | 列 |
---|---|---|---|---|---|
d | rwx | r-x | r-x | 2 | |
文件类型 | 所有者 user 或者 owner 用 u 代替 | 所属组 group 用 g 代替 | 其他人 others 用 o 代替 | 硬链接数 | |
root | root | 4096 | 12-01 20:51 | bin | |
所有者 | 所属组 | 文件大小 | 创建时间或者最后修改的时间 | 文件的名称 |
cd
cd 是 change directory 的简写
切换目录
pwd
显示当前目录
touch
创建空文件
mkdir
mkdir 是 make directories 的简写
创建目录
创建test目录
mkdir test
cp
复制文件
将文件file1、file2复制到dir1目录下
cp file1 file2 dir1
将dir1目录下的所有文件复制到dir2目录下
cp -R dir1 dir2
复制文件/etc/issue为/test/issuefile并保留源文件的时间
cp -p /etc/issue /test/issuefile
复制文件夹或文件,并显示详细信息
[root@localhost solr]# cp -iv zoo.cfg ./zoo
"zoo.cfg" -> "./zoo"
ctrl+c 终止命令执行
mv
mv 是 move 的简写移动文件
mv 源文件或目录 目标目录
将当前目录下文件file1改名为file3
mv file1 file3
mv /test/inittab /tmp/testfile
将文件file2移动到dir2目录下
mv file2 dir2
mv /test/inittab /tmp/
rm
rm 是 remove 的简写
删除文件
删除文件file3
rm file3
删除目录dir1
rm -r dir1
删除目录dir2不确认
rm -rf dir2
cat
查看文件内容
cat file1
more
分页显示文件
more file1
空格或者 f 显示下一页
enter 显示下一行
q 或者 Q 退出
head
查看文件的前几行
head -num 文件名
-num 显示文件的行数
显示文件/etc/services前20行
head -20 /etc/services
tail
显示文件最后几行
-num 显示文件的行数
-f 动态显示文件内容
ln
ln 是 link 的简写
ln -s 源文件 目标文件
-s 创建软链接
不加-s创建硬链接
创建文件/etc/issue的软链接/issue.soft
ln -s /etc/issue /issue.soft
创建文件/etc/issue的硬链接/issue.hard
ln /etc/issue /issue.hard
软链接文件类型为 l,所有人都有访问权限,时间为创建软链接文件的时间和源文件的时间不同,相当于 windows 的快捷方式
硬链接相当于复制,但和复制不一样,硬链接会同步更新,时间和源文件的时间相同。
源文件被删掉,软链接失效,硬链接可以正常访问
硬链接和源文件 i 节点相同,软链接和源文件 i 节点文件不同
软链接可以跨文件系统生成(分区)
硬链接不可以跨文件系统(分区)
chmod
chmod 是 change the permissions mode of a file 的简写
改变文件或者目录的权限
chmod [{ugo}{+-=}{rwx}][文件或目录]
[mode=421][文件或目录]
+ 添加权限
- 减少权限
= 设置为当前权限
为 /test/file1 所有者添加 wx 权限
chmod u+wx /test/file1
为 /test/file1 其他组去掉 rx 权限
chmod o-rx /test/file1
为 /test/file1 所属组设置权限为 rwx
chmod g=rwx /test/file1
r---4
w---2
x---1
7---- rwx
6--- rw-
5--- r-x
3--- -wx
0--- ---
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读权限 | 可以查看文件的内容 | 可以列出目录中的内容 |
w | 写权限 | 可以修改文件的内容 | 可以在目录中创建、删除文件 |
x | 执行权限 | 可以执行文件 | 可以进入目录 |
设置/test/file1文件的权限为641(rw-r----x)
chmod 641 /test/file1
设置目录dir1的权限为777(rwxrwxrwx)
chmod 777 dir1
su - 用户名
切换用户
chown
chown 是 change file ownership 的简写
改变文件所有者
chown 用户 文件或目录
改变文件file1的所有者为nobody
chown nobody file1
chgrp
chgrp 是 change file group ownership 的简写
chgrp 用户组 文件或目录
修改文件file1的所属组为adm
chgrp adm file1
umask -S
0022
0---特殊权限位
022---用户权限位,权限掩码值
777
- 022
------------
755
默认目录权限为755
缺省创建的文件不能赋予x权限
755
- 111
------------
644
默认文件的权限为644
修改默认权限为750
777
- 750
-----------
027
umask 027
which
获取命令的绝对路径和别名
which ls
whereis
获取命令的绝对路径和帮助文档的位置
whereis ls
find
查找文件或者目录
在/etc目录下查找init文件
find /etc -name init
在/etc目录下查找init开头的文件
find /etc -name init*
在/etc目录下查找init开头并且是七个字符的文件
find /etc -name init???
* 匹配任意字符
?匹配单个字符
避免在根目录下查找文件,耗费资源较多
在根目录下查找大于100M的文件
find / -size +204800
在根目录下查找小于100M的文件
find / -size -204800
数据块 512字节=0.5KB
100M=102400KB=204800BLOCK
大于 +
小于 -
等于 省略就可以
在/home目录下查找所有者为samlee的文件
find /home -user samlee
根据时间查找
天:ctime atime mtime
分钟:cmin amin mmin
c------change 改变(文件的属性被修改过,所有者、所属组、权限)
a------access 访问(文件被浏览过)
m------modify 修改(文件内容被修改过)
大于 +
小于 -
等于 省略就可以
在/etc目录下查找24小时内被修改过属性的文件和目录
find /etc -ctime -1
在/etc目录下查找2小时内被修改过内容的文件和目录
find /etc -mmin -120
-o--------------or 逻辑或
-a ------------and 逻辑与
在/etc目录下查找文件大小大于80M小于100M的文件
find /etc -size +163840 -a -size -204800
-type 文件类型
f 二进制文件
l 软链接文件
d 目录
在/etc目录下查找文件大小大于80M小于100M并且文件类型为二进制文件f的文件
find /etc -size +163840 -a -size -204800 -a -type f
-exec 对查找到的内容分别执行相应命令
-ok 执行命令并询问确认
find ..... -exec 命令 {}\;
{} 表示查找的结果集
\ 转义符,使符号或者命令可以使用本身的含义\rm
testfile 使用 rm 本身的用法
rm testfile 可能通过 alias 定义了别名和 rm 本身不一样
查找/test目录下名称为testfile的文件并且删除
find /test -name testfile -exec rm {} \;
查找samlee创建的文件或者文件夹并删除
find /home -user samlee -exec rm -rf {} \;
find /home -user samlee -ok rm -rf {} \;
在/etc目录下查找以init开头的二进制文件并执行查看详细信息的命令
find /etc -name init* -a -type f -exec ls -l {} \;
创建文件a b(a空格b)
touch "a b"
创建文件-abc
touch -- -abc
删除文件a b
rm "a b"
删除文件-abc
rm -- -abc
查看文件的i节点
ls -i
在当前目录根据i节点查找文件并删除
find . -inum 16 -exec rm -f {} \;
locate
查找文件或者目录,只有 linux 系统中有
locate 查找文件在数据库中查找,有可能查询不到(文件数据库没有更新)
updatedb 更新文件数据库,自动任务更新,或者手动更新
grep
在文件中搜寻字符串匹配的行并输出
在/etc/services中查找所有和ftp相关的行
grep ftp /etc/services
查看/etc/inittab 中除了以#开头的所有信息
grep -v "^#" /etc/inittab
man
man 是 manual 的简写
查看帮助信息
查看ls命令的帮助信息
man ls
查看配置文件services的帮助信息(不是配置文件的路径,是配置文件的名称)
man services
帮助文档分为一到九种
- 1 Executable programs or shell commands
- 2 System calls (functions provided by the kernel)
- 3 Library calls (functions within program libraries)
- 4 Special files (usually found in /dev)
- 5 File formats and conventions eg /etc/passwd
- 6 Games
- 7 Miscellaneous (including macro packages and conventions), e.g. man(7),groff(7)
- 8 System administration commands (usually only for root)
- 9 Kernel routines [Non standard]
查看passwd命令
man passwd或者man 1 passwd
查看passwd配置文件帮助文档
man 5 passwd
info
info 是 information 的简写
查看ls帮助信息
info ls
whatis
查看命令的简单帮助信息
make whatis 更新 whatis 的帮助信息
查看ls的简单帮助信息
whatis ls
--help
获取命令的选项信息
ls --help
apropos
相当于 man -k
help
查看 shell 内置命令的帮助,使用 man 无法查看内置命令的帮助信息
help pwd
help cd
gzip
GNU zip
压缩文件,只能压缩文件,不能压缩目录,不保留原文件
gzip 文件名
压缩newfile
gzip newfile
gunzip
相当于 gzip -d
解压缩.gz 文件,不保留.gz 文件
解压缩newfile.gz
gunzip newfile.gz
或者gzip -d newfile.gz
tar
将目录打包为一个文件, 不保留原文件
-c 产生.tar 打包文件,create 必要选项
-v 显示详细信息
-f 指定压缩后的文件名 必要选项
-z 打包同时压缩
压缩目录,压缩后文件格式.tar.gz
将目录dir1压缩成一个包并压缩文件
tar -zcvf dir1.tar.gz dir1
相当于执行tar -cvf dir1.tar dir1后执行gzip dir1.tar
tar 解压缩
-x 解压.tar 文件
-v 显示详细信息
-f 指定解压文件
-z 解压缩
解压缩dir1.tar.gz文件
tar -zxvf dir1.tar.gz
相当于执行gunzip dir1.tar.gz后执行tar -xvf dir1.tar
file
判断文件类型
file 文件名
判断newfile的文件类型
file newfile
zip
压缩文件和目录,保留原文件
默认 windows 和 linux 支持的通用压缩格式为.zip
压缩文件/ect/services为services.zip
zip services.zip /ect/services
压缩目录/test为test.zip
zip -r test.zip /test
unzip
解压.zip 文件
解压test.zip
unzip test.zip
bzip2
压缩文件,不能压缩目录
压缩后文件格式.bz2
-k 产生压缩文件时,保留原文件
压缩文件dir1,并保留原文件
bzip2 -k dir1
bunzip2
解压缩.bz2 文件
-k 解压后保留原压缩文件
解压dir1.bz2并保留原压缩文件
bunzip2 -k dir1.bz2
write
向另外一个用户发送信息,以 CTRL+D 作为结束
write 用户名
wall
向所有用户广播信息
向所有用户发送Happy new year
wall Happy new year
ping
测试网络的连通性
ping 选项 IP 地址
只要安装了 ip 协议没有网卡,也可以 ping 通
127.0.0.1
安装网卡才可以 ping 通本机的 ip 地址
ping 通,偶尔有丢包,可能是网络硬件的问题 (网线,网卡)
-c 指定 ping 的次数
-s 指定 ping 包的大小,最大 65507
指定ping 3次
ping -c 3 192.168.1.19
发送60008大小的包
ping -s 60008 192.168.1.19
ifconfig
查看网络设置信息
-a 显示所有网卡信息
修改ip地址为192.168.9.6
ifconfig eth0 192.168.9.6
shutdown
关机
立即关机
shutdown -h now
reboot
重新启动
clear
清屏
CTRL+L
CTRL+U
清除操作行光标前所有字符
history
显示所有执行过的历史命令
!序号 直接执行对应命令
alias
命令别名定义
使用copy执行cp的操作
alias copy=cp
使用rm代替rm -i
rm="rm -i"
unalias
删除别名
删除copy的别名
unalias copy
重定向
>输出重定向,覆盖之前内容
>> 输出重定向,在之前内容后追加内容
< 输入重定向
shell对于每一个进程预先定义3个文件描述字(0、1、2)
0(STDIN)标准输入
1(STDOUT)标准输出
2(STDERR)标准错误输出
>、 >>、0>、 0>> 、< 、1<、 2>、 2>>
将日期重定向输出到/tmp.msg文件中
date >>/tmp.msg
将/etc/motd文件内容作为输入广播出去
wall < /etc/motd
备份/usr到/backup/usr.bak并且将错误信息输出到/bak.error文件中(没有错误信息不输出)
cp -R /usr /backup/usr.bak 2>> /bak.error
|
管道
将一个命令的输出传送给另外一个命令,作为另外一个命令的输入
命令 1| 命令 2| 命令 3| 命令 4
将/etc目录下的文件列表用more展示
ls -l /etc |more
查看/etc目录下包含init的文件个数
ls -l /etc | grep init |wc -l
wc
统计行数
;
用; 间隔的各命令按顺序依次执行
pwd;ls;date
&&
前后命令的执行存在逻辑与关系,只有 && 前面的命令执行成功后,它后面的命令才被执行
向oracle用户发送/tmp/oracle.txt内容,发送成功后删除对应文件,不成功,不删除对应文件
write oracle </tmp/oracle.txt && rm -f /tmp/oracle.txt
||
前后命令的执行存在逻辑或关系,只有 || 前面的命令执行失败后,它后面的命令才被执行
向oracle用户发送/tmp/oracle.txt内容,发送成功后不删除对应文件,不成功,用邮件的方式发送
write oracle </tmp/oracle.txt || mail oracle </tmp/oracle.txt
``
将一个命令的输出作为另外一个命令的参数
查看touch命令的属性信息
ls -l `which touch`
文件大小以 M、G 的格式显示
ls -alh
关闭防火墙
systemctl stop firewalld
启动防火墙
systemctl start firewalld
启动 zookeeper
[root@localhost zookeeper-3.4.12]# /usr/Zookeeper/zookeeper-3.4.12/bin/zkServer.sh start
查看 zookeeper 的状态
[root@localhost zookeeper-3.4.12]# /usr/Zookeeper/zookeeper-3.4.12/bin/zkServer.sh status
启动 kafka
/usr/kafka/kafka_2.12-1.1.0/bin/kafka-server-start.sh -daemon /usr/kafka/kafka_2.12-1.1.0/config/server.properties
创建 kafka 话题
[root@localhost kafka_2.12-1.1.0]#
/usr/kafka/kafka_2.12-1.1.0/bin/kafka-topics.sh --create --topic test0 --zookeeper 192.168.1.107:2181 --config max.message.bytes=12800000 --config flush.messages=1 --partitions 5 --replication-factor 1
Created topic "test0".
查看 kafka 的话题
/usr/kafka/kafka_2.12-1.1.0/bin/kafka-topics.sh --list --zookeeper 192.168.1.107:2181
查看 kafka 话题描述信息
[root@localhost kafka_2.12-1.1.0]# bin/kafka-topics.sh --describe --zookeeper 192.168.1.107:2181 --topic test0
Topic:test0 PartitionCount:5 ReplicationFactor:1 Configs:max.message.bytes=12800000,flush.messages=1
Topic: test0 Partition: 0 Leader: 1 Replicas: 1 Isr: 1
Topic: test0 Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: test0 Partition: 2 Leader: 1 Replicas: 1 Isr: 1
Topic: test0 Partition: 3 Leader: 0 Replicas: 0 Isr: 0
Topic: test0 Partition: 4 Leader: 1 Replicas: 1 Isr: 1
linux 查看当前版本操作系统发行版信息
cat /etc/issue 或cat /etc/redhat-release(Linux查看版本当前操作系统发行版信息)
Red Hat Linux release 9 (Shrike)