ls
描述:显示文件目录
语法:ls 选项 [-al] [文件或目录]
- a: 显示全部文件,包括隐藏文件
- l: 显示详细信息
通配符
- *:表示文件中所有字符
- ?: 表示文件中任意字符
- []:[”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。
例子:
- ls -al //显示全部文件包括隐藏文件
- ls te* //查找以te开头的文件
- ls ?.c //查找第一个字符任意,后缀为.c的文件
- ls [a-f]* //查找从a-f范围内的字符开头的文件
mkdir
描述:创建文件夹
rmdir
描述: 删除文件夹
touch
描述:创建空文件
rm
描述:删除文件或目录
语法:rm 选项 文件或目录名
- r:
- rf: 删除目录,包括目录下内容
例子:
cp
描述:复制文件或目录~~~~
语法:cp 选项 [源文件] [目标文件]
- -r: 递归复制。若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
- -a:该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
- -f:已经存在的目标文件而不提示
- -i:交互式复制,在覆盖目标文件之前将给出提示要求用户确认
- -v:显示拷贝进度
例子:
- cp -rf ../* destination_path //递归复制当前目录下的所有文件
cat
描述:查看文件内容,如内容过多,显示不全
more
描述:查看文件内容,可完全显示
用法:使用空格进行翻页,回车显示下一行,q 退出(或者 Ctrl+C)
head
描述:查看文件的前多少行
语法:head -number [文件名]
tail
描述:查看文件的后多少行
语法:tail -number [文件名]
mv
描述:修改文件名称或移动文件位置
语法:mv [源文件名称] [新文件位置 + 新文件名称]
- -f:禁止交互式操作,如有覆盖也不会给出提示
- -i:确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
- -v:显示移动进度
例子:
- mv 1.txt 2.txt //将1.txt,重命名为2.txt
ln
描述:创建软或者硬链接文件
语法:ln -s [源文件] [目标文件] (硬链接则不需要 - s 选项)
- Linux链接文件类似于Windows下的快捷方式。
- 链接文件分为软链接和硬链接。
- 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
- 硬链接:两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在。硬链接只能链接普通文件,不能链接目录。
例子:
chmod
描述:改变文件或目录的权限
语法:chmod [{ugo}{±=}{rwx}] [文件或目录]
例子:chmod 777 filename
文件的 rwx 权限:
- r:可以执行 catch、more 等读操作
- w:修改文件的内容等写操作,但是不代表你可以把这个文件删除
- x:对文件进行执行操作
目录的 rwx 权限:
- r:可读操作,可以列出目录的内容,比如 ls 命令
- w:表示可以在目录下创建或删除文件的权限
- x:表示可以进入这个目录(基本上所以的目录都会有 rx 权限)
chown
描述:改变文件的所有者
语法:chown 用户名 文件名
useradd
描述:创建用户
语法:useradd 选项 用户名
- -c comment:指定一段注释性描述
- -d 目录:指定用户主目录,如果此目录不存在,同时使用 -m 选项,可以创建主目录
- -g 用户组:指定用户所属的用户组
- -G 用户组:指定用户所属的附加组
- -s Shell 文件:指定用户的登录 Shell
- -u 用户号:指定用户的用户号,如果同时有 -o 选项,则可以重复使用其他用户的标识号
例子:
userdel
描述:删除用户
语法:userdel 用户名
passwd
描述:设置密码
语法:passwd 选项 用户名
- -l 锁定口令,即禁用账号
- -u 口令解锁
- -d 使账号无口令
- -f 强迫用户下次登录时修改口令
例子:
- passwd -l test // 锁定用户test
chgrp
描述:改变文件的所属组
语法:chgrp group 文件名
find
描述:查找文件或目录
语法:
(1)以文件名来查找
find [搜索范围路径] -name 【文件名称】
例子:find /usr -name *aa
- *:匹配任意字符
- ?:匹配指定字符
find /etc -name '*.conf' //查找 /etc 目录下以 conf 结尾的文件,文件名区分大小写
find . -iname aa //不区分大小写
(2)以文件大小来查找
find [搜索范围路径] -size [(±)文件大小]
- -n 小于大小为n的文件
- +n 大于大小为 n的文件
例子:查找 /ect 目录下,小于 10000 字节的文件。 find /etc -size -10000c
例子:查找 /etc 目录下,大于 1M 的文件。find /etc -size +1M
(3)以文件所有者查找
find [搜索范围路径] -user(文件的所有者)
(4)以时间范围查找
- 天: ctime、atime、mtime
- 分钟:cmin、amin、mmin
- c 表示:change 改变文件属性的意思(比如所有者、所属组、权限变更)
- a 表示:access 表示被访问过的意思(比如被查看过等)
- m 表示:modify 更改内容的意思
- 在时间前面添加:- 表示之内,+ 表示之外
(5)根据文件所在组查找
find [搜索范围路径] -group(文件组)
(6)根据类型查找
- f 文件 find . -type f
- d 目录 find . -type d
- c 字符设备文件 find . -type c
- b 块设备文件 find . -type b
- l 链接文件 find . -type l
- p 管道文件 find . -type p
(6)根据更改时间查找
-mtime
- -n n 天以内修改的文件。
- +n n 天以外修改的文件。
- n 正好 n天 修改的文件
例子:查询 /etc 目录下,5天以内修改 且以 conf 结尾的文件。 find /etc -mtime -5 -name '*.conf'
例子: 查询 /etc 目录下,10天之前修改,且属于 yangyang 的文件。 find /etc -mtime +10 -user yangyang
-mmin
- -n n 分钟以内修改过的文件
- +n n 分钟之前修改过的文件
例子1: 查询 /etc 目录下 30分钟 之前修改过的文件。 find /etc -mmin +30
例子1: 查询 /etc 目录下 30分钟 之前修改过的目录。 find /etc -mmin -30 -type d**
(7)以目录层级查找
-mindepth n 从第 n 级目录开始搜索
例子:从 /etc 的第三级子目录开始搜索。 find /etc -mindepth 3
-maxdepth n 表示至多搜索到第 n-1 级子目录。
例子1: 在 /etc 中搜索符合条件的文件,但最多搜索到 2级 子目录。 find /etc -maxdepth 3 -name '*.conf'
例子2: find /etc -type f -name '*.conf' -size +10k -maxdepthc 2
(8)打印
-print: 打印输出
(9)执行
-exec 对搜索到的文件执行特定的操作,固定的格式为:-exec 'commond' {} \; 注意:{} 表示查询的结果。
举例1: 搜索 /etc 目录下的文件(非目录),文件以 conf 结尾,且大于 10k,然后将其删除。
find /etc -type f -name '*.conf' -size +10k -exec rm -f {} \;
举例2: 将 /data/log/ 目录下以 .log 结尾的文件,且更改时间在 7 天以上的删除。
find /data/log -name '*.log' -mtime +7 -exec rm -f \;
举例3: 搜索条件同 例1 一样,但是不删除,只是将其复制到 /root/conf 目录下
find /etc -type f -name '*.conf' -size +10k -exec cp {} /root/conf/ \;
(10)执行ok
-ok 和-exec的功能一样,只是每次操作都会给用户提示。
例子:
- find ./ -name test.sh //查找当前目录下所有名为test.sh的文件
- find ./ -name '*.sh' //查找当前目录下所有后缀为.sh的文件
- find ./ -name "[A-Z]*" //查找当前目录下所有以大写字母开头的文件
- find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
- find /tmp -size +2M //查找在/tmp 目录下大于2M的文件
- find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
- ind ./ -size +4k -size -5M //查找当前目录下大于4k,小于5M的文件
- find ./ -perm 0777 //查找当前目录下权限为 777 的文件或目录
gzip
描述:压缩的时候不保留原文件,只能压缩文件不能压缩目录
语法:gzip 文件名
- -d:解压
- -r:压缩所有子目录
- -z:指定压缩包的格式为:file.tar.gz
gunzip
描述:解压缩文件,不保留源文件
语法:gunzip 已压缩文件名
tar
描述:打包目录,或者解压
语法:tar [zcvf] [zxvf] [打包文件名.tar.gz] [源文件]
- -c 生成档案文件,创建打包文件
- -x 解开档案文件
- -v 列出归档解档的详细过程,显示进度
- -f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
- -z 打包同时压缩。tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程
- -t: 列出档案中包含的文件
例子:
- tar cvzf 压缩包包名 文件1 文件2
- tar -zcvf test.tar.gz * //将当前路径下所有的文件和问价夹都打包并压缩到test.tar.gz文件
- tar zxvf 压缩包包名
- tar -zxvf test.tar.gz //解压到当前路径
- tar -zxvf test.tar.gz -C test/ //解压到指定目录
zip
描述:压缩文件和目录,压缩目录时需要选项 -r
语法:zip 选项 [-r] [压缩后文件名称] [源文件]
unzip
描述:解压缩
语法:unzip 压缩文件名
- -d 表示文件解压后存放的路径
man
描述:帮助
语法:man [命令或者配置文件]
whatis
描述:查看命令的描述
--help
描述:查看命令的选项信息
语法:[命令] --help
ifconfig
描述:查看网卡信息
语法:ifconfig
ps
描述:查看当前进程
语法:
例子:
- ps -aux: 查看所有的进程
top
描述:动态显示进程
语法:top -d 10:以间隔时间为10秒,刷新进程信息
free
描述:显示内存状态和优先级
语法:
例子:
free -s 10: //每10秒刷新内存状态
nice、renice
描述:显示进程优先级
grep
描述:搜索
语法:
例子:
- grep -rn 'nginx' * //r代表递归搜索,n表示显示行号,*为当前文件夹。
rsync
描述:同步服务器间文件
语法:rsync -av source_file username@IP:destination_path
例子:
- rsync -av /var/www/index.php [email protected]:/var/www/, //回车输入服务器192.168.0.1的登录密码就可以同步了
du
描述:当前路径文件的占用情况
语法: du -h
df
描述:磁盘占用的情况
语法:df -h
scp
描述:远程文件传输
语法:scp [可选参数] file_source file_target
- -1: 强制scp命令使用ssh1协议
- -2: 强制scp命令使用ssh12协议
- -4: 强制scp命令只使用IPv4寻址
- -6: 强制scp命令只使用IPv6寻址
- -P: 指定数据传输用到的端口号
- -v: 详细方式显示输出
- -c cipher: 以cipher方式将数据进行传输加密,这个选项会直接传给ssh
- -l: 限定用户所能使用的带宽,以Kbit/s为单位
- -F: 指定一个替代的ssh配置文件,此参数直接传递给ssh
- -p: 保留原文件的修改时间,访问时间和访问权限
- -q: 不显示传输进度条
- -r: 递归复制整个目录
- -C: 允许压缩
例子:
输出重定向 >
描述:将命令执行结果重定向到一个文件
语法:>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部
例子:
ls > test.txt //test.txt 如果不存在,则创建,存在则覆盖其内容
管道:|
描述:一个命令的输出可以通过管道做为另一个命令的输入
语法:
例子:
- ls -alh | more //对ls操作的结果进行more操作
lsof
描述:查看某文件被哪个进程所占用
语法:lsof 文件名
vi
描述:
语法:
- dd:删除光标所在行
- ndd:删除光标所在行的向下n行
- 190,6233d //把[190,6233]行都删除掉
- G: //直接定位到最后一行
- 1G: //直接定位到第一行
- nG: //直接定位到第n行
- G: //直接定位到最后一行
- 1G: //直接定位到第一行
- nG: //直接定位到第n行
netstat
描述:查看端口连接状态的链接数
用法:netstat -nlap
其他
(1)查看内存使用情况:free -m (m是MB,g为GB)
(2)查看磁盘使用情况:df -lh
(3)查看cpu使用情况:cat /proc/cpuinfo
cat /proc/cpuinfo | grep "model name" //只显示一行对应的cpu型号以及其他信息
cat /proc/cpuinfo | grep "model name" | wc -l //统计出一共有多少核
(4.1)查看当前操作系统发行版本信息:
cat /etc/issue
cat /etc/redhat-release
(4.2)查看当前操作系统更为底层的信息
cat /proc/version
(5.1)查看某文件夹的空间使用情况:du -h 文件夹名
(5.2)查看某文件夹内的所有文件的大小:du -sh * (先cd到当前文件夹)