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! 退出文件(强制保存)

 

posted @ 2022-07-06 17:45  企业级理解  阅读(281)  评论(0编辑  收藏  举报