linux命令

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到当前文件夹)

你可能感兴趣的:(linux)