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 执行

drwxr-xr-x2
文件类型所有者 user 或者 owner 用 u 代替所属组 group 用 g 代替其他人 others 用 o 代替硬链接数
rootroot409612-01 20:51bin
所有者所属组文件大小创建时间或者最后修改的时间文件的名称

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)

上一篇 linux 基础操作(六)
下一篇 linux 基础操作(八)