Linux基础命令

Table of Contents

目录相关

  • 系统目录结构

    /bin 这个目录存放着最经常使用的命令


    /boot 这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件


    /dev 这里存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的


    /etc 这个目录是用来存放所有的系统管理所需要的配置文件和子目录。


    /home 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的


    /lib 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都会用到这些共享库


    /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。


    /media Linux系统会自动识别一些设备,例如光驱、u盘等等,等识别后,linux会把识别的设备挂载到这个目录下。


    /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载/mnt上,然后进入该目录就可以查看光驱的内容了


    /opt 这是给主机额外安装软件所拜访的目录。比如安装数据库则可以放在这个目录下,默认是空


    /proc 这个目录是一个虚拟的目录,他是系统内存的映射,我们可以用过直接访问这个目录来获取系统信息。这个目录不是在硬盘上而是在内存里


    /root 该目录为系统管理员,也称作超级权限者的用户主目录


    /sbin 这里存放着的是系统管理员使用的系统管理程序。


    /selinux 这个目录是Redhat/CentOS 所特有的目录,Selinux是一个安全机制,类似于windows防火墙


    /srv 这个目录存放一些服务启动之后需要提取的数据


    /sys 该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。


    /tmp 这个目录是用来存放一些临时文件的。


    /usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。


    /usr/bin 系统用户使用的应用程序。


    /usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序。


    /usr/src 内核源代码默认的放置目录


    /var 这个目录中放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放到这个目录下,包括各种日志文件


    /run 这是一个临时文件系统,存储系统启动以来的信息.当系统重启市,这个目录下的文件应该被删掉或者清除。如果你的系统上有/var/run目录,应该让它指向run


    👉 重要目录:

    /etc 系统配置文件,更改可能导致系统无法启动。

    /bin /sbin /usr/bin /usr/sbin 这是系统预设的执行文件的放置目录。

    • /bin /usr/bin是给系统用户使用的指令
    • /sbin /sur/sbin 是给root用户使用的指令

    /var 这是一个重要的目录,系统上跑了很多程序,每个程序运行的日志都保存在这个目录( /var/log )下面。

  • pwd 查看当前工作的位置

  • ls 查看目录的内容

  • mkdir 创建目录

  • cd 从当前位置跳转到指定目录

  • rmdir *删除目录*

文件管理

  • touch 新建文件
  • cat 查看文本
  • cp 复制文件
  • file 查看文件类型
  • rm 删除文件
  • mv 移动文件,给文件命名
  • **find 查找文件**

查看、统计文件

  • more 按屏显示文本文件

    • 常用参数
      • Enter 向下n行,需要定义。默认为1行
      • Ctrl+F 向下滚动一屏
      • 空格键 向下滚动一屏
      • Ctrl+B 返回上一屏
      • = 输出当前行的行号
      • :f 输出文件名和当前行的行号
      • V 调用vi编辑器
      • !命令 调用Shell,并执行命令
      • q 退出more
  • less 与more类似,区别在于可以使用Pageup向上查看

    • 常用参数

      -b <缓冲区大小> 设置缓冲区的大小 -e 当文件显示结束后,自动离开 -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -g 只标志最后搜索的关键词 -i 忽略搜索时的大小写 -m 显示类似more命令的百分比 -N 显示每行的行号 -o <文件名> 将less 输出的内容在指定文件中保存起来 -Q 不使用警告音 -s 显示连续空行为一行 -S 行过长时间将超出部分舍弃 -x <数字> 将"tab"键显示为规定的数字空格 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b 向上翻一页 d 向后翻半页 h 显示帮助界面 Q 退出less 命令 u 向前滚动半页 y 向前滚动一行 空格键 滚动一页 回车键 滚动一行 [pagedown]: 向下翻动一页 [pageup]: 向上翻动一页

  • head、tail 局部显示文件,head 显示文件头部,tail显示文件尾部

  • wc 文件内容统计

  • grep 查找文本文件中与指定模式匹配的行

用户相关

  • adduser 添加
  • passwd 设置或更改用户密码
  • userdel 删除用户
  • usermod 修改用户属性,常用于启用、禁用账号
  • su 改变用户身份
  • who 查看当前登录到系统的用户是谁

用户组相关

  • group
  • groupadd 添加用户组
  • groupdel 删除组, 删除之前组内不能有用户
  • usermod 更改组账号

权限相关

👇 -rw-rw-r–

第一个位置指定了文件类型。-表示非目录的文件,d表示目录文件。

2-4位表示属主权限,5-7位表示属主同组的用户权限,8-10表示其他用户权限

数值设定发: 0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限。

644 (属主可读可写,同组和其他用户可读权限)

  • chmod 用于改变文件或目录的访问权限
  • chown 更改文件或目录的所有者

重定向与管道

  • > 将结果重定向到某个位置 >> 表示输出追加到文件末尾
  • grep 'am'< filename 输入重定向(grep是在filename文件中搜索“am”字符串)

进程管理

  • ps 显示进程
  • top 动态显示进程
  • kill 中断进程

文件压缩

  • zip 打包和压缩文件
  • unzip 对压缩包进行解压缩
  • gzip 压缩文件,不能压缩多个
  • tar 打包文件,gzip不能压缩多个文件,先打包再压缩。.tgz 后缀
  • gunzip 对压缩包解压缩

常用命令

系统常用

ssh root@0.0.0.0               # ssh登录linux
cd                             #  切换命令
cp                             #  拷贝
mv                             #  移动
mkdir                          #  创建文件夹
touch                          #  创建文件
rm                             #  删除文件
rm -rf                         #  强行删除
rmdir                          #  删除文件夹
ll                             #  查看文件列表
cat                            #  查看文件全部内容
find                           #  查找文件
ps -elf|grep tomcat            #  查看tomcat进程
ps -ef | grep     
ps -aux | grep                 查看后台进程
sudo su                        # 切换到root用户
clear reset                    # 清除命令行屏幕 (快捷键: ctrl + l)
xxx xxx &                      # 后台运行命令
jobs -l                        # 显示所有任务的pid
kill pid                       # 杀掉对应的pid
top -c                         # 查看cpu资源占用
history                        # 查看历史命令
su user                        # 表示切换用户,
sudo                           # 表示获取临时的root权限命令

vim

Esc                     # 进入命令模式
:set nonu               # 关闭行号
:set num                # 开启行号
: wq                    # 保存并退出
: q                     # 不保存退出
: q!                    # 强制退出
i                       # 进入编辑模式

添加用户

#    urseadd 选项 用户名
useradd -d /usr/sam -m sam             #-d和-m选项用来为登录名sam产生一个主目录/usr/sam
passwd  username                     # 设置密码
groupadd test                         # 增加工作组
gpasswd -a username groupname         # 将用户添加到工作组

用户列表文件:/etc/passwd
用户组列表文件:/etc/group

💡 添加用户到某一个组 可以使用 usermod -G groupname username这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉。

source命令

source filename 与 sh filename 及./filename执行脚本的区别

  1. 当shell脚本具有可执行权限时,用sh filename./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。
  2. sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。
  3. source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

nohup

nohup xxxx & 将程序以忽略挂起信号的方式运行起来

  • jobs -l 查看后台进程,只能查看当前终端,关闭终端后不能查看。

  • ps -aux |gerp xxxx
    

    查看后台程序

    1. a : 显示所有程序
    2. u: 以用户为主的格式来显示
    3. x: 显示所有程序,不以终端机来区分
  • nohup 默认输出到附加到当前目录的nohup.out文件中 如果当前的nohup.out 文件不可写,则输出重定向到 $HOME/nohup.out文件 如果没有文件能创建或者打开用于追加,则需要的运行的命令不可调用

  • 执行shell命令时,默认打开3个文件。标准输入 标准输出 错误输出

    Untitled

  • >/dev/null /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失

  • nohup xxx >/dev/null 2>&1 & 什么信息也不输出

  • nohup xxx >/dev/null 2>log & 只输出错误输出到log文件中

&&和&|和||

  • & 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &
  • && 表示前一条命令执行成功时,才执行后一条命令 ,如 echo ‘1‘ && echo ‘2’
  • | 表示管道,上一条命令的输出,作为下一条命令参数,如 echo ‘yes’ | wc -l
  • || 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo “fail”

软链接

ln -s xxx.sh /usr/local/bin 把shell脚本添加软链接全局执行

Linux脚本开头#!/bin/bash #!/bin/sh

#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径

释放缓存

echo 1 > /proc/sys/vm/drop_caches # 仅清除页面缓存` `echo 2 > /proc/sys/vm/drop_caches # 清除目录项和inode` `echo 3 > /proc/sys/vm/drop_caches # 清除页面缓存、目录项以及inode