Linux基础命令

Posted WarYan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础命令相关的知识,希望对你有一定的参考价值。

目录操作命令

ls命令

用途:
    用来对文件进行操作
    
英文原意:list

命令格式:
[root@localhost ~]#ls [选项][文件名或目录名]

选项:
    -a:显示所有文件
    -A:列出除.及..的其他文件
    -d:显示目录信息,而不是目录下的文件//ls -ld [目录] 显示目录本身详细信息
    -l:长格式显示                        //ls -l [目录]显示目录下的内容
    //ls -l+(h=按照习惯单位显示文件大小(k))
    -t:以文件的大小排序
    -S:以文件的大小排序
    -i:显示文件的i节点号
    -h:以易读的方式显示

cd命令

英文原意:change directory

用途:
    对目录的切换
    
命令格式:
[root@localhost ~]#cd [目录名]

常见用法:
    cd+回车:进入家目录
    cd ~:进入家目录
    cd /+要进入的目录
    cd -:进入上一次工作路径
    cd .. :入上级目录
    cd .  :进入当前目录
    pwd:查看当前所在目录,可以看到路径

cd的相对路径和绝对路径的使用:

    cd /usr/local/src  绝对路径的使用
    
    cd /usr进入第一层目录以后
    相对路径的进入是指进入当前目录下的文件
    命令: xxx/  注意反斜杠的位置在后面

mkdir命令

英文原意:make directories

用途:
    创建空目录

命令格式:
[root@localhost ~]#mkdir [选项] 目录名

    -p:递归建立所需目录
常见用法:
    mkdir 文件名:创建文件且创建到当前目录
    mkdir -p lm/movie/jp/cangls :递归创建一系列文件

rmdir命令

英文原意:remove empty directories

用途:
    删除空目录

命令格式:
[root@localhost ~]# rmdir [选项] 目录名

    -p:递归删除目录
常见用法:
    rmdir 文件名:删除该文件
    rmdir -p lm/movie/jp/cangls :递归删除一系列文件
    
rmidr命令比较笨一般不使用,不论删除的文件还是目录以后都会使用rm命令

tree命令

英文原意:list contents of directories in a tree-like format

用途:
    显示目录树
    
命令格式:
[root@localhost ~]#tree

    tree /etc/:显示etc文件的目录树

文件操作命令

touch命令

英文原意:change file timestamps

用途:
    文件不存在创建文件,文件存在修改
    文件的时间(访问时间,数据修改时间,状态修改时间)

命令格式:

[root@localhost ~]#touch [选项] 文件名或目录名


常见用法:
    touch -a xx:只修改文件的访问时间(Access Time)
    touch -c xx:如果文件不存在则建立新文件
    touch -d xx:把文件的时间改为制定的时间
    touch -m xx:只修改文件的数据修改时间

注意:
    1.在Linux中文件没有创建时间
    2.可以通过stat命令查看文件的时间
    3.在Linux中氛围访问时间,数据修改时间,状态修改时间

stat命令

英文原意:display file or file system status

用途:
    查看文件详细信息的命令,而且可以看到文件的三个时间
    
命令格式:

[root@localhost ~]#stat [选项] 文件名或目录名

常见用法:
    -f :查看文件所在的文件系统信息,而不是查看文件的信息
    echo 内容 > 文件名:向某个文件输入xxx内容(修改了时间的变化)
    chown nobody 文件名:只修文件的状态时间

cat命令

英文原意:concatenate files and print on the standard output

用途:
    合并文件并打印输出到标准输出
    
命令格式:

[root@localhost ~]#cat [选项] 文件名

选项:
    -A:相当于-vET选项的整合,用于列出所有隐藏符号
    -E:列出每行结尾的回车符¥
    -n:显示行号
    -T:把Tab键用^I显示出来
    -v:列出特殊字符

more命令

英文原意:file perusal filter for crt viewin

用途:
    当文件过大使用cat不能满足需要是,more是分屏显示文件的命令

命令格式:
[root@localhost ~]#more 文件名

常用的交互命令:
    空格键:向下翻页
    b:向上翻页
    回车键:向下滚动一行
    /字符串:搜索指定字符串
    q:退出

less命令

英文原意:opposite of more

用途:
    more为分屏显示,less是分行显示命令
    q退出,上下移动

head命令

英文原意:output the first part of files
    
用途:
        显示文件开头的命令,默认显示文件的开头10行内容
    
命令格式:
[root@localhost ~]#head [选项] 文件名
选项:
    -n 行数:从文件头开始,显示指定行数
    -v :显示文件名
    
常见用法:
    head -n xx 文件名:显示xx行内容,默认10行
    也可以直接 head -xx 文件名:-行数即可省略-n

tail命令

英文原意:output the last part of files

用途:
    显示文件结尾的内容

命令格式:
[root@localhost ~]#tial [选项] 文件名
选项:
    -n 行数:从文件结尾开始,显示指定行数
    -f :监听文件的新增内容
    
常见用法:
    tail -n 20 xxx
    tail -f xxx:会监视文件的更新且光标不会跳出

ln命令

英文原意:make links between file

用途:
    在文件之间建立链接
    
命令格式:
[root@localhost ~]#ln [选项] 源文件 目标文件
选项:
    -s:建立软链接文件。如果不加"-s"则建立硬链接文件
    -f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件
    
注意:
        1.软链接的源文件必须写成绝对路径

目录和文件都能操作的命令

rm命令

英文原意:remove files or directories

用途:
    删除文件或者删除目录

命令格式:
[root@localhost ~]#rm [选项] 文件或目录
选项:
    -f: 强制删除((force)
    -i:交互删除,在删除之前会询问用户
    -r: 递归删除,可以删除目录(recursive)
    默认 -i 文件名

常见用法:
    rm -r 目录名:递归删除时候会分别进入各个目录然后询问是否删除
    rm -rf 目录名: 强制删除

cp命令

英文原意:copy files and directories

用途:
    复制文件和目录
    
命令格式:
[root@localhost ~]#cp [选项] 源文件 目标文件
选项:
    -a:相当于-dpr选项的集合,这几个选项我们一一介绍
    -d:如果源文件为软链接(对硬链接无效)。则复制出的目标文件也为软链接
    -i:询问,如果目标文件已经存在,则会询问是否覆盖
    -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件
    -s:把目标文件建立为源文件的链接文件,而不是复制源文件
    -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和实践)
    -r:递归复制,用于复制目录
    
常见用法:
    cp -i cangls /tmp/bols :文件的改名复制(bols是改名复制)
    cp -r good /tmp/xx :目录的同名复制(xx为改名复制)
    cp -d /tmp/links_good /tmp/links_goods :软链接复制(对硬链接无效)
    cp -p /tmp/good /tmp/goods :保留源文件的属性(不会修改时间等源文件属性)

mv命令

英文原意:move(rename) files

用途:
    用来移动或改名(剪切)

命令格式:
[root@localhost ~]#mv [选项 源文件 目标文件
选项:
    -f:强制覆盖,如果目标文件已经存在,则不询问,强制覆盖
    -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
    -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户
    -v:显示详细信息

常见用法:
    mv good /tmp:移动文件或目录
    mkdir movie
    mv movie/ /tmp:将movie目录移到/tmp下(不需要像cp一样加入-r选项)
    mv -vn bols cangls lmls /tmp :将前三个文件移动到tmp目录下 /v用于显示详细过程
    mv xxx yyy:把xxx改名为yyy

基本权限命令

chmod命令

英文原意:change file mode bits

用途:
    用来修改文件的权限模式

命令格式:
[root@localhost ~]#chmod [选项] 权限模式 文件名
选项:
    -R:递归设置权限,也就是给子目录中的所有文件设定权限

常见用法:
    chmod x+y 文件名:给文件中x用户添加y权限
    chmod x+y,x2+y2 文件名:给多个用户同时添加权限
    chmod x-y,x2-y2文件名:给x用户减去某权限
    chmod x=rwx,y=rw1,z=rwx:给x,y,z用户设置设置rwx其中的权限(rwx这里写在一起为了方便)
数字权限:
    4:代表“r”权限
    2:代表“w”权限
    1:代表“x”权限
    
    chmod 755 文件名:给文件赋予755权限
        解释:
            第一个数字“7”代表给所有者的权限是“4+2+1”,也就是读、写、执行权限
            第二个数字“5”代表给所属组的权限是“4+1”,也就是读、执行权限
            第三个数字"5"代表给其他人的权限是同上

所有者和所属组命令

chown命令

英文原意:change file owner and group

用途:
    修改文件和目录的所有者所属组的命令

命令格式:
[root@localhost ~]#chown [选项] 所有者:所属组 文件或目录
选项:
    -R:递归设置权限,也就是给子目录中的所有文件设置权限
    
常见用法:
    chown user 文件名:将文件的"所有者"设置为user,这时user对这个文件具有了读、写权限
    chown user:user good:“:”前是所有者后是所属组,也可以用"."来代替

chgrp命令

英文原意:change group ownership

用途:
    修改文件和目录的所属组

命令格式:
[root@localhost ~]# chgrp 用户组 文件名

    chgrp user test:将文件test的所属组设置为user用户组

umask命令

umask命令

用途:
    查看默认权限

命令格式:
[root@localhost ~]#umask xx

[root@localhost ~]#umask :直接使用是用八进制数显示umask权限
[root@localhost ~]#unmask -S:用字母表示文件和目录的初始权限

帮助命令

man命令

英文原意:format and display the on-line manual pages

用途:
    显示联机帮助手册

命令格式:
[root@localhost ~]#man [选项] 命令
选项:
    -f:查看命令拥有哪个级别的帮助
    -k:查看和命令相关的所有帮助

常见用法:
    man 命令名称:查看命令的帮助
    man -f 命令:查看命令的帮助级别
    man -k useradd:会列出所有包含useradd字符串的命令(字符串还可以改成别的)
    whatis命令和 man -f是一致的
    apropos命令和man -k是一致的
    whoami 查看当前用户
    whereis xx 、whatis xx命令在哪里、命令是干什么的

快捷键:

img

命令帮助级别:

img

info命令

info命令的帮助信息是一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一个章节
    info xxx

快捷键:

img

help命令:

help命令只能获取shell内置命令的帮助,但是在Linux中绝大多数命令是外部命令,所以help命令的作用非常有限
而且内置命令可以使用man命令获取帮助

--help选项

绝大多数命令都可以使用"--help"选项来查看帮助
    列如:ls --help

搜索命令

whereis命令

英文原意:locate the binary source,and manual page files for a command

用途:
    不能搜索普通文件,只能(搜索系统命令)
    查找二进制命令、源文件和帮助文档的命令
    
命令格式:
[root@localhost ~]#where [选项] 命令
选项:
    -b:只查找二进制命令
    -m:只查找帮助文档

常见用法:
    whereis ls:即可看到二进制命令的位置,也可以看到帮助文档的位置,但是无法查看普通文件
    whereis -b ls:只查看二进制命令的位置
    whereis -m ls:只查看帮助文档的位置

which命令

英文原意:shows the full path of(shell) commands

用途:
    列出命令的所在路径和命令的别名(搜索系统命令的命令)
命令格式:
[root@localhost ~]#which xx

locate命令

英文原意:find files by name

用途:
    按照文件名来搜索文件
    
命令格式:
[root@localhost ~]#locate [选项] 文件名
选项:
    -i:忽略大小写

常见用法:
    locate install.log:搜索文件名叫install.log的文件
    locate mkdir:由于系统命令其实也是文件,所以也可以按照文件名来搜索系统命令

注意:
    1.locate命令不会直接搜索硬盘空间,而是搜索locate数据库,每当用户退出登录或重启系统是locate数据库才会更新,所以我们无法查找到新建立文件
    2.如果不想退出登录或重启系统,则可以通过updatedb命令手工更新这个数据
    3.loate的配置文件中会设置不搜索的区域比如说:文件系统类型、(.git .hg .svn)扩展名、系统目录

find命令

英文原意:search for files in a drectory hierarchy

用途:
    按照设置的"关键"来按照关键搜索文件

命令格式:
[root@localhost ~]#find 搜索路径 [选项] 搜索内容
选项:
    -name:按照文件名搜索
    -iname:按照文件名搜索,不区分文件名大小写
    -inum:按照inode号搜索
    -size [+-]大小:按照指定大小搜索文件

常见用法:
    find / -name yum.cnf:在/目录下搜索文件名是yum.conf的文件(文件名必须完全匹配)
    find . -iname cangls:大小写都搜索出来(即不区分文件名的大小写)
    find . -inum 262147:如果知道inode号,则可以用find命令来查找文件名(按照inode号搜索文件,也是区分硬链接文件的重要手段,因为硬链接文件的inode号是一致的)
    find . -size 25k :在当前目录下查找大小刚好是25KB的文件
    find . -size -25k:在当前目录下查找小于25k的文件
    find . -size 1M:主要按M查询字母要大写
    find . -size 1207c:按1207字节来搜索需要加字母c
    
按照修改时间搜索:
选项:
    -atime [+-]时间:按照文件访问时间搜索
    -mtime [+-]时间:按照文件数据修改时间搜索
    -ctime [+-]时间:按照文件状态修改时间搜索
        [+-]时间的含义:
            -5:代表5天内修改的文件
             5:代表前5-6天那一天修改的文件
            +5:代表6天前修改的时间
    当然也有按分钟查询的:amin、mmin、cmin

按照权限搜索:
选项:
    -perm 权限模式:查找文件权限刚好等于“权限模式”的文件
    -perm -权限模式:查找文件权限全部包含“权限模式”的文件
    -perm +权限模式:查找文件权限包含”权限模式“的任意一个权限的文件
    
按照所有者和所属组搜索
选项:
    -uid 用户ID:按照用户ID查找所有者是指定ID的文件
    -gid 组ID:按照用户组ID查找所属组是制定ID的文件
    —user 用户名:按照用户名查找所有者是指定用户的文件
    -group 组名:按照组名查找所属组是制定用户组的文件
    -nouser:查找没有所有者的文件

按照文件类型搜索
选项:
    -type d:查找目录
    -type f:查找普通文件
    -type l:查找软链接文件
    
逻辑运算符
选项:
    -a:and逻辑与
    -o:or逻辑或
    -not:not逻辑非

    find . -size +2k -a -type f:在当前目录下搜索大于2kb并且文件类型是普通文件的文件
    find . -not -name cangls:在当前目录下搜索文件名不是cangls的文件
        注意-not的位置
其他选项:
    -exec:
        [root@localhost ~]#find 搜索路径 [选项] 搜索内容 -exec 命令2 {} \\;
        "{}"和"\\;"是标注格式,-exec调用命令2来处理find命令的结果"{}"这个就是find命令的查找结果
            find . -perm 444 -exec ls -l {} \\;:使用-exec选项把find命令结果交给"ls -l"命令处理
            
    -ok:
        基本与-exec相同,但是-ok会进行询问用户是否这样处理,而-exec不会询问而是直接处理

压缩和解压命令

.

zip格式的压缩命令

英文原意:package and compress(archive) files

用途:
    压缩文件或目录

命令格式:
[root@localhost ~]#zip [选项] 压缩包名 源文件或源目录
选项:
    -r:压缩目录
    
常用格式:
    zip test.zip xxx1 xxx2:同时压缩多个文件到test.zip中
    zip -r test.zip xxx1:压缩目录

zip解压:

英文原意:list,test and extract compressed files in a ZIP archive

用途:
    列表、测试、和提取压缩文件中的文件

命令格式:
[root@localhost ~]#unzip [选项] 压缩包名
选项:
    -d:指定解压的位置
    unzip -d /tmp/ test.zip:把zip解压到指定目录

.gz格式压缩命令

英文原意:compress or expand files

用途:
    压缩文件或目录

命令格式:
[root@localhost ~]#gzip [选项] 源文件
选项:
    -c:将压缩数据输出到标准输出中,可以用于保留源文件
    -d:解压缩
    -r:压缩目录
    -v:显示压缩文件的信息
    -数字:用于指定压缩等级,-1压缩等级最低,压缩比最差;-9压缩比最高。默认压缩比是-6
    
常见用法:
    gzip -r test/:注意这个压缩目录是把目录下的文件分别压缩
    gzip -d xxx:解压缩
    
    zcat xxx:查看“.gz”格式压缩的文本文件

"gunzip压缩包"命令

英文原意:compress or expand files

用途:
    解压文件或目录

命令格式:
[root@localhost ~]#gunzip [选项] 名字
选项:
    -r:解压缩目录下的内容注意不是解“打包”

.bz2格式压缩命令

英文原意:a block-sorting files compressor

用途:
    .bz2格式的压缩命令,不支持目录压缩

命令格式:
[root@localhost ~]#bzip2 [选项] 源文件
选项:
    -d:解压缩
    -k:压缩式,保留源文件
    -v:显示压缩的详细信息
    -数字:同hzip
    
    bzcat xxx:查看格式压缩的文本文件
[root@localhost ~]#bzip2 -d xx:解压缩
解压缩:
命令格式:
[root@localhost ~]#bunzip2 [选项] 源文件
选项:
    -k:解压缩时,保留源文件

.tar格式的打包命令

英文原意:tar

用途:
    打包与解打包命令
    
命令格式:
[root@localhost ~]#tar [选项] [-f 压缩包名] 源文件或目录
选项:
    -c:打包
    -f:指定压缩包的文件名。压缩包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名
    -v:显示打包文件的过程
    
解打包:
    -x:解打包
    -t:测试,就是不解打包,知识查看包中有哪些文件
    -C 目录:指定解打包位置
常见用法:
    tar -cvf xxx.tar xxx:-cvf一般是习惯用法
    tar -cvf ana.tar anaconda-ks.cfg /tmp :把anaconda-ks.cfg文件和/tmp目录打包成ana.tar(多文件同时打包)
解打包:
    tar -xvf anaconda-ks.cfg.tar 解打包到当前目录下
    tar -xvf anaconda-ks.cfg.tar -C /tmp:指定解打包目录,把压缩包解打包到/tmp目录下
    tar -tvf test.tar 查看文件包中有哪些文件

.tar.gz和.tar.bz2格式命令

命令格式:
[root@localhost ~]#tar [选项] 压缩包 源文件或目录
选项:
    -z:压缩和解压缩“.tar.gz”格式
    -j:压缩和解压缩“.tar.bz2”格式

常见用法:
    tar -zcvf tmp.tar.gz /tmp:把/tmp目录直接打包压缩为.tar.gz格式
    tar -zcvf tmp.tar.gz:解压缩.tar.gz格式
    同理z换成j即可符合.tar.bz2格式

关机和重启命令

sync数据同步

英文原意:flush file system buffers

用途:
    把内存中的数据强制向硬盘中保存
    刷新文件系统缓冲区

命令格式:
[root@localhost ~]#sync   :最好多执行几次保险起见

shutdown命令

英文原意:bring the system down

用途:
    关机和重启

命令格式:
[root@localhost ~]#shutdown [选项] 时间 [警告信息]
选项:
    -c:取消已经执行的shutdown命令
    -h:关机
    -r:重启

常见用法:
    shutdown -r now:即刻重启
    shutdown -r 05:30 制定时间重启,但会占用前台终端
    shutdown -r 05:30 &:把定时重启命令放入后台,&是后台的意思
    shutdown -c:取消定时重启
    shutdown -r +10:十分钟后重启
    
    shutdown -h now:现在关机
    shutdown -h 05:30:指定时间关机
    shutdown -h +10:十分钟后关机

reboot命令

命令格式:
[root@localhost ~]#reboot:进行重启

halt和poweroff命令

用途:
    都是关机命令

命令格式:
[root@localhost ~]#halt
[root@localhost ~]#poweroff

init命令

用途:
    修改Linux运行级别的命令,也可以用于重启和关机
[root@localhost ~]#init 0:关机,也就是调用系统的0级别
[root@localhost ~]#init 6:重启,也就是调用系统的6级别

img

以上是关于Linux基础命令的主要内容,如果未能解决你的问题,请参考以下文章

linux中怎么查看mysql数据库版本

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

逆向及Bof基础实践

20155307刘浩《网络对抗》逆向及Bof基础