Linux常用命令笔记
Linux常用命令笔记
1.ls命令
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -t 以文件修改时间排序
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来(简写ll)
2.cd命令
cd / 进入根目录
cd ~ 进入home目录
cd - 进入上一次工作路径
3.mkdir命令
mkdir -p /tmp/test/t1/t 在tmp目录下创建路径为test/t1/t的目录,若不存在,则创建
4.rm命令
删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
rm -i *.log 删除任何.log 文件,删除前逐一询问确认
rm -rf test 删除test子目录及子目录中所有档案删除,并且不用一一确认
5.mv命令
移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。
mv test.log test1.txt 将文件test.log重命名为test1.txt
mv /test/t2/1.log /test/t1/ 将test目录下t2目录下的1.log文件转移到test目录下的t1目录中
6.cp命令
命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!
-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
cp -i 1.log 2.log 根据1.log文件复制一个名为2.log文件,若2.log文件存在,则提示是否覆盖
cp -r t1 t3 复制t1目录及目录内所有项目到t3目录
7.cat命令
cat filename 一次显示整个文件 cat > filename 从键盘创建一个文件 cat file1 file2 > file 将几个文件合并为一个文件
8.head命令和tail命令
head 1.log -n 20 显示1.log文件中前20行 tail 1.log -n 20 显示1.log文件中后20行
tail -f ping.log 递归显示ping.log文件的末尾,可以用来查看实时日志
9.which命令
which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。
which ls 查看ls命令是否存在,执行哪个
10.find命令
命令格式
find pathname -options [-print -exec -ok ...]
命令参数
pathname: 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 查找系统中最后n*24小时访问的文件 -cmin n 查找系统中最后N分钟被改变文件状态的文件 -ctime n 查找系统中最后n*24小时被改变文件状态的文件 -mmin n 查找系统中最后N分钟被改变文件数据的文件 -mtime n 查找系统中最后n*24小时被改变文件数据的文件 (用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 ) -maxdepth n 最大查找目录深度 -prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略 -newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项
实例
find -atime -2 查找48小时内修改过的文件
find ./ -name '*.log' 在当前目录查找以.log结尾的文件 .代表当前目录 ->类似于SQL中的模糊查询方式,*可以放前面也可以放后面或者都放
find /opt -perm 777 查找 /opt 目录下 权限为 777 的文件
加exec参数
-exec 参数后面跟的是 command 命令,它的终止是以 ; 为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名。
find . -type f -mtime +10 -exec rm -f {} \; 在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)
find . -f -name 'passwd*' -exec grep "pkg" {} \; 当前目录下查找文件名以 passwd 开头,内容包含 "pkg" 字符的文件
11.chmod命令
用于改变 linux 系统文件或目录的访问权限,该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件所有者的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用ls -l filename查询权限信息。如图
上图中文件所有者(属主)为root,所有组(属组)为root,文件名为install.log,权限位的第一个减号“-”代表的是文件类型: -:普通文件,d:目录文件,l:链接文件,b:设备文件,c:字符设备文件,p:管道文件
实例
-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log
第一列共有 10 个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是 d,表示是一个目录。从第二个字符开始到第十个 9 个字符,3 个字符一组,分别表示了 3 组用户(文件所有者、跟所有者同组的用户、其他用户)对文件或者目录的权限。权限字符用横线代表空许可,r 代表只读,w 代表写,x 代表可执行。
数字设定法(常用)
读(read),写(write),执行r(recute)简写即为(r,w,x),亦可用数字来(4,2,1)表示
举例:如果某文件
权限为7则代表可读、可写、可执行(4+2+1).
权限为6(4+2)则代表可读、可写。
权限为5代表可读(4)和可执行(1)。
权限为3代表可写(2)和可执行(1)。
实例
chmod 777 1.log 给1.log文件的属主、属组、其他用户分配可读、可写、可执行权限 ———————————— 执行完成后查看权限信息: -rwxrwxrwx 1 root root 4 Jul 5 15:25 1.log
chmod 751 1.log 给1.log文件的属主分配rwx(读、写、执行)权限,属组wx(读、执行)权限,其他用户x(执行)权限 ———————————— 执行完成后查看权限信息:-rwxr-x--x 1 root root 6 Jul 6 15:36 1.log
12.tar命令
用来压缩和解压文件
-c 建立新的压缩文件 -v 显示操作过程 -f 指定压缩文件 -z 支持gzip压缩 -j 支持bzip2压缩
-x 从压缩包中抽取文件
压缩
tar -cvf log.tar *.log 将目录下所有.log文件打包成名为log.tar的包
tar -cvf log.tar 1.log 2.log 将1.log、2.log文件打包成名为log.tar的包
解压
tar -xvf test.tar
tar -zxvf test.tar.gz
tar -jxvf test.tar.bz2
13.chown命令
chown 将指定文件的所有者、所属组进行更改;文件是以空格分开的要改变权限的文件列表,支持通配符。
-c 显示更改的部分的信息
-R 处理指定目录及子目录
chown -c mail:mail 1.log 将1.log文件的所有者、所属组更改为mail
chown -c :mail t.log 将1.log文件的所属组更改为mail
chown -cR mail: test/ 改变文件夹及子文件目录所属主及所属组为mail
vi /etc/group 可以查看用户所在的组
14.df命令
获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。
df -l 显示磁盘使用情况
15.du命令
du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看
-a 显示目录中所有文件大小 -k 以KB为单位显示文件大小 -m 以MB为单位显示文件大小 -g 以GB为单位显示文件大小 -h 以易读方式显示文件大小 -s 仅显示总计 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
du -h scf/ 以易读方式显示文件夹内及子文件夹大小 du -hc test/ scf/ 显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和 du -hc --max-depth=1 scf/ 输出当前目录下各个子目录所使用的空间
16.grep命令
强大的文本搜索命令
-A n --after-context显示匹配字符后n行 -B n --before-context显示匹配字符前n行 -C n --context 显示匹配字符前后n行 -c --count 计算符合样式的列数 -i 忽略大小写 -l 只列出文件内容符合指定的样式的文件名称 -f 从文件中读取关键词 -n 显示匹配内容的所在文件中行数 -R 递归查找文件夹
ps -ef | grep svn 查找指定进程 grep -c 123 4.log 统计4.log文件中123内容的行数 grep 123 1.log 2.log 3.log 4.log 或者 grep 123 *.log 在多个文件中查找关键词123 grep 123 -R -n 在多级目录中对文本进行递归查询,并标记文件位置以及所在行数
17.wc命令
统计指定的文件中字节数、字数、行数,并将统计结果输出
-c 统计字节数 -l 统计行数 -m 统计字符数 -w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串
wc text.txt 查找文件的 行数 单词数 字节数 文件名
18.ps命令
用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top
ps 工具标识进程的5种状态码
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
ps -ef 显示当前所有进程环境变量及进程间关系
ps -A 显示当前所有进程
19.top命令
显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等
top
各进程(任务)的状态监控,项目列信息说明如下 PID — 进程id USER — 进程所有者 PR — 进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA SHR — 共享内存大小,单位kb S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 %CPU — 上次更新到现在的CPU时间占用百分比 %MEM — 进程使用的物理内存百分比 TIME+ — 进程使用的CPU时间总计,单位1/100秒 COMMAND — 进程名称(命令名/命令行)
20.kill命令
终止指定进程
kill name
21.free命令
显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
-b 以Byte显示内存使用情况 -k 以kb为单位显示内存使用情况 -m 以mb为单位显示内存使用情况 -g 以gb为单位显示内存使用情况 -s<间隔秒数> 持续显示内存 -t 显示内存使用总合
free
快捷键篇
vim文件中,操作快捷键
shift+g 直接翻到最后一行 ?name 从下往上搜索关键词name /name 从上往下搜索关键词name N 搜索到关键词后按N跳到上一个此关键词 shift+N 搜索到关键词后按N跳到下一个此关键词 :num 跳到多少行,num为行数 :set nu 显示行数
ctrl+z 退出文件(不保存)
q 退出文件(不保存)
wq 退出文件(保存)
wq! 退出文件(强制保存)