Linux常用命令
去这个网站学!通俗全面!!
1. ls
ls就是list的缩写,通过ls命令可以查看文件夹包含的文件,还可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等。
常用参数:
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除 . 及 . . 的其他文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
eg:
(1)按易读方式按时间反序排列,并显示文件详细信息
ls -lhrt
(2)按大小反序显示文件详细信息
ls -lrS
(3)列出当前目录中所有以“t”开头的目录的详细内容
ls -l t*
(4)列出文件绝对路径(不包含隐藏文件)
ls | sed"s:^:‘pwd’/:"
(5)列出文件绝对路径(包含隐藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
2. cd
cd即change directory。切换当前目录至dirName。
命令语法:
cd [目录名]
eg:
(1)进入根目录
cd /
(2)进入用户主目录,即“home”变量指定的目录,如root用户的主目录为/root
cd ~
(3)进入上一次工作路径
cd -
(4)把上个命令的参数作为cd参数使用
cd !$
(5)返回上级目录
cd . .
3. pwd
用于查看当前工作目录路径。
eg:
(1)查看当前路径
pwd
(2)查看软连接的实际路径
pwd -p
4. mkdir
用于创建文件夹
常用参数:
-m 对新建目录设置存取权限,也可以用chmod命令设置
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
eg:
(1)当前工作目录下创建名为t的文件夹
mkdir t
(2)在tmp目录下创建路径为test/t1/t的目录,若不存在,则创建:
mkdir -p /tmp/test/t1/t
5. rm
删除一个目录中的一个或多个文件或目录,通常仍可以将该文件恢复原状。
语法格式:
rm [选项] 文件…
参数:
-r 删除文件,不能用于删除文件夹
-R 既能删除文件,也能删除文件夹
eg:
(1)删除任何.log文件,删除前逐一询问确认
rm -i *.log
(2)删除test子目录及子目录中所有档案删除,并且不用一一确认
rm -rf test
(3)删除以-f开头的文件
rm – -f*
6. rmdir
从一个目录中删除一个或多个子目录项,删除目录项时也必须具有对其父目录的写权限
注意:不能删除非空目录
eg:
(1)当parent子目录被删除后使它也成为空目录的话,则顺便一并删除
rmdir -p parent/child/child11
7. mv
移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件,则重命名该文件)。
当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。
eg:
(1)将文件test.log重命名为test1.txt
mv test.log test1.txt
(2)将文件log1.txt, log2.txt, log3.txt 移动到根的test3目录中
mv log1.txt log2.txt log3.txt /test3
(3)将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
mv -i log1.txt log2.txt
(4)移动当前文件夹下的所有文件到上一级目录
mv * . . /
8. cp
将源文件复制到目标文件,或将多个源文件复制到目标文件
注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖。
参数:
-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
eg:
(1)复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在,提示是否覆盖
cp -ai a.txt test
(2)为 a.txt 建立一个链接(快捷方式)
cp -s a.xt link_a.txt
9. cat
cat主要有三大功能:
(1)一次显示整个文件
cat filename
(2)从键盘创建一个文件(只能创建新文件,不能编辑已有文件)
cat > filename
(3)将几个文件合并为一个文件
cat file1 file2 > file
- -b 对非空输出行号
- -n 输出所有行号
eg:
(1)把log1.log的文件内容加上行号后输入log2.log这个文件里
cat -n log1.log log2.log
(2)把 log1.log 和 log2.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
cat -b log1.log log2.log log.log
- head
用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。 - -n <行数> 显示的行数(行数为复数表示从最后向前数)
eg:
(1)显示 log.log 文件中前20行
head log.log -n 20
(2)显示 log.log 文件前 20 字节
head -c 20 log.log
(3)显示 t.log最后 10 行
head -n 10 t.log
10. tail
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件,并且不断刷新,使你看到最新的文件内容。
参数:
-f 循环读取 (常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)
-v 显示详细的处理信息
-s 与-f合用,表示在每次反复的间隔休眠s秒
(1)循环读取逐渐增加的文件内容
ping 127.0.0.1 > ping.log &
后台运行:可使用jobs.-l查看,也可使用fg将其移到前台运行。
tail -f ping.log
(2)显示文件最后5行内容
tail -n 5 log.log
11. which
搜索。which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which 查看可执行文件的位置
whereis 查看文件的位置
locate 配合数据库查看文件位置
find 实际搜寻硬盘查询文件名称
常用参数:
- -n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
eg:
(1)查看ls命令是否存在,执行哪个
which ls
(2)查看cd
which cd (显示不存在,因为cd是内建命令,而which查找显示是PATH中的命令)
查看当前PATH配置:
echo $PATH
或使用env查看所有环境变量及对应值
11. find
用于在文件树中查找文件,并作出相应的处理
命令格式:
find pathname -options [-print -exec -ok . . . ]
命令参数:
pathneme: find命令所查找的目录路径。例如用 . 来表示当前目录,用 / 来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } \ ; ,注意 { }和\; 之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
命令选项:
-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group 按照文件所属的组来查找文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件
d - 目录
c - 字符设备文件
l - 符号链接文件
p - 管道文件
f - 普通文件
-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件 (用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
-maxdepth n 最大查找目录深度
-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项
eg:
(1)查找48小时内修改过的文件
find -atime -2
(2)在当前目录查找以 .log 结尾的文件。 . 代表当前目录
find ./ -name ‘*.log’
(3)查找 /opt 目录下以权限为777的文件
find /opt -perm 777
(4)查找大于1k的文件
find -size +1000c
12. chmod
改变Linux系统文件或目录的访问权限。
参数:
-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件
权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
权限代号:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
-:删除权限,用数字0表示
s :特殊权限
eg:
(1)增加文件t.log 所有用户可执行权限
chmod a+x t.log
(2)撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息
chmod u=r t.log -c
13. tar
用来压缩和解压文件。tar本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其他的功能来完成的。
常用参数:
-c 建立新的压缩文件
-f 指定压缩文件
-r 添加文件到已经压缩文件包中
-u 添加改了和现有的文件到压缩包中
-x 从压缩包中抽取文件
-t 显示压缩文件中的内容
-z 支持gzip压缩
-j 支持bzip2压缩
-Z 支持compress解压文件
-v 显示操作过程
14. date
显示或设定系统的日期与时间
参数命令:
-d<字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u 显示GMT。
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%m 月份(以01-12来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
15. ps
ps(process status),查看当前运行的进程状态,一次性查看,如果需要动态连续结构top
Linux上进程有5种状态:
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中,受阻,在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不可唤醒和不可运行,进程必须等待直到有中断发生)
- 僵死(进程已停止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGOU信号后停止运行)
ps 工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
命令参数:
-A 显示所有进程
a 显示所有进程
-a 显示同一终端下所有进程
c 显示进程真实名称
e 显示环境变量
f 显示进程间的关系
r 显示当前终端运行的进程
-aux 显示所有包含其它使用的进程
eg:
(1)显示当前所有进程环境变量及进程间关系
ps -ef
(2)显示当前所有进程
ps -A
16. top
显示当前系统正在执行的进程的相关信息,包括进程ID、内存占有率、CPU占有率等
常用参数:
-c 显示完整的进程命令
-s 保密模式
-p <进程号> 指定进程显示
-n <次数>循环显示次数
17. free
显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
命令参数:
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合
eg:
(1)显示内存使用情况
free
free -k
free -m
(2)以总和的形式显示内存的使用信息
free -t
(3)周期性查询内存使用情况
free -s 10