Linux常用命令总结

文章目录

Liinux命令

  • 查看当前用户的uid, gid, 所属group : id

  • 查看帮助 : man cmd / cmd --help / info cmd

  • ls : 列出指定目录下的所有文件

    • -a, 所有的, 包括隐藏文件
    • `-l``, 列出每个文件的具体信息, 读写权限, 字节大小, 更新日期, 所属用户等等
  • 建立软链接 : ln -s slink source

    • 建立硬链接 : ln link source
  • 创建文件夹 : mkdir directory_name

    • 递归创建文件夹 : mkdir -p directory_name1/directory_name2/directory_name3
    • 创建目录时显示信息 : mkdir -v directory_name
    • 创建目录时设置权限 : mkdir -m 777 directory_name
  • 创建文件 : touch file_name

    • 创建多个文件 : touch file_name{1,2,3} (创建文件夹同理)
    • 向一个不存在的文件输出都会创建文件, vi / vim /echo “ad” >> a
  • 复制文件 : cp source_file new_file

    • 递归复制 : cp -r directory1 directory2 把文件夹1中的所有文件全部复制到文件夹2
    • -i : 覆盖之前提示, 是否覆盖, 默认也是这个
    • -f: 直接覆盖不提示
  • 权限修改 : chmod

    • 三种所属(user, group, others), 三种权限(read, write, execute), a (all表示所有, +增加, -删除, 之间用逗号分隔, 逗号两边不能有空格)
      • chmod 751 file
      • chmod u=rwx, g=rx, o=x file
      • chmod =r file
      • chmod a-wx, a+r file
      • chmod u+x, g-r file
      • chmod -R u+r directory 递归该文件夹所有文件改变相同的权限
  • 分页查看文件内容 : less file_name

    • j : 向下移动一行
    • k : 向上移动一行
    • f : 向下滚动一页
    • b : 向上滚动动一页
    • 到末尾不会自动退出
  • 百分比分页查看文件内容 : more file_name

    • ctrl + f : 向下滚动一页
    • ctrl + b : 向上滚动一页
    • 到末尾自动推出
  • 查阅正在改变的日志 : tail -f file_name

    • 循环输出末尾更新的内容
  • 输出末尾指定行数 : tail -n num file_name (默认10行)

  • 输出开头指定行数 : head -n num file_name (默认10行)

  • 终端是哪个文件夹下的哪个文件 : /dev/tty

  • 黑洞是哪个文件夹下哪个文件 : dev/null

  • 改名, 移动 : mv old_file new_file

  • 删除操作 : rm

    • 直接删除, 无需确定 : rm -f file_name
    • 递归删除文件夹, 需要逐一确认 : rm -r directory
    • 递归删除, 无需确认 : rm -rf directory
  • 对文件内容进行统计 : wc (从小到大输出, 分别是行数, 字数, 字节数)

    • 统计字节数 : wc -c file
    • 统计字数 : wc -w file (空格分隔)
    • 统计行数 : wc- l file
  • 查看使用过的命令列表 : history

  • grep : 一种强大的文本搜索工具

    • grep -ni "string" file_name 不区分大小写,输出包含string的行, -n是在行首显示行号
    • grep -c "string" file_name 统计匹配的行数
    • grep -v "string" file_name 查找没有string的行
    • word\> 匹配单词结尾 ( \将后面特殊字符转变为普通含义 )
      在这里插入图片描述
      在这里插入图片描述
  • Linux中进程的五种状态

    • 运行 : 正在运行或在运行队列中等待
    • 中断 : 休眠中, 受阻, 在等待某个条件的形成或接受某个信号
    • 不可中断 : 收到信号也不被不唤醒和不可运行, 进程必须等待直到有中断发生
    • 僵死 : 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放
    • 停止 : 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行
  • ps工具标标识进程的状态码

  • R 运行 runnable (on run queue)

  • S 中断 sleeping

  • D 不可中断 uninterruptible sleep (usually IO)

  • Z 僵死 a defunct (”zombie”) process

  • T 停止 traced or stopped

  • 使一个命令在后台执行 : &

    • 输出重定向 : command > out.file 2>&1 &
    • 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:nohup command &
    • ctrl + z : 将一个正在前台执行的任务, 放在后台并暂停
    • jobs : 查看当前有多少在后台运行的命令
      • jobs -l : 显示对应的pid
    • fg : 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出
    • bg : 将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出
    • kill : 杀死进程
      • 法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
      • 法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
    • 前台杀死进程 : ctrl + c
  • ps -aux : -a 显示同一终端下所有进程, -x 不以终端来区分, -u 显示用户信息.

  • ps -ef : 显示所有进程, 包括进程进的关系 (父子, pid, ppid)

  • 杀死进程 : kill

    • kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。, 高速进程要“安全、干净的退出", 但是有可能进程推出过程中遇到其他问题, 无法正常退出, 就会忽略该信号.

    • kill -l 列出所有信号
      在这里插入图片描述

    • kill -9 pid; 强制杀死进程, 不可被忽视, 可能造成数据丢失, 或者状态无法恢复.

    • init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 其它所有进程都是init进程的子孙。init进程是不可杀的!

  • 搜索文件 : find directory -name "string"

    • -i : 忽略大小写
    • -type f/d/c: 类型参数 , f 文件, d 文件夹, c字符文件, b块设备, l 符号链接, s 套接字
  • last : 显示特定用户登陆系统的历史

  • whoami (id -un);显示的是当前用户下的用户名 (可能由su切换过来)

  • who am i (who -m):显示的是登录时的用户信息和终端信息

  • who:显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者)

  • 文件系统磁盘空间的占用情况 : df (disk free)

    • 显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示
    • `-l``, 只显示本地的文件系统
    • `-h`` , 方便阅读的方式显示
    • -H : 1k = 1000字节, 而不是1024
    • -m : 区块为1048576字节
    • k : 区块为1024字节 (默认显示)
  • du : 查看每一个文件占用空间的情况

  • 查看 ip 地址及接口信息 : ifconfig

  • 查看所有环境变量 : env

    • 查看某个环境变量具体什么值 : echo $HOME / echo $PATH / echo $PWD
  • 查看网络连接状况 : netstat

    • -t : 查看tcp连接
    • -u : 查看udp连接
    • -n : 禁用反向域名解析, 加快查询速度
    • l : 只列出正在监听的 (不和a同用)
    • p : 查看进程信息
  • 命令提示符环境变量 : PS1

    • \u : 显示当前用户
    • \h : 显示当前主机名
    • \W : 显示当前路径最后一个目录
    • $PWD : 显示当前全路径
    • `\d : 显示当前日期
    • \t : 显示24小时时间 HH:MM:SS
    • \T : 显示12小时时间
    • \A : 显示24小时时间 HH:MM
    • \v : 显示当前bash版本
  • 取别名 : alias la='ls -a'

  • 查找命令 : which cmd 在PATH指定的搜索路径中, 查找某个命令的位置, 返回第一个

  • whereis : 只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息

    • 和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过 遍历硬盘来查找,效率自然会很高。
  • awk 用于文本分析, 文本有一条条记录构成, 每一条记录由域构成, 默认域分隔符是空白符, 可以使用-F 指定

    • awk : tail -n 5 /etc/passwd | awk -F: 'BEGIN{print "name \t shell"} {print $1,"\t",$7} END{print "end of file"}'

    • awk 'BEGIN{print "FNR \t NR \t NF"} {print FNR,"\t", NR, "\t" , NF, $1, $2} END{print "end of file";print "byebye"}' awk1 awk2

    • FS : file separator 域分隔符

    • NF : number field 正在处理的记录中域的个数

      • NR : number row 已处理的记录数, 新文件也会继续延续
  • FNR: file number row 一个文件中已处理的记录数, 新文件中会置0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值