linux的基础使用笔记(CentOS版本)

本文基于linux的CentOS版本

文件和目录操作命令

  • b查看当前路径

    pwd
  • 查看当前目录文件

    ls
  • 新建文件夹

    mkdir [文件夹名]
  • 合并文件功能(把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里)

    cat -n textfile1 > textfile2
  • 查看文件

    more [文件名]
    less [文件名]
    ? 搜索
    q 退出
  • 修改文件

    vi [文件名]
    ecs + :wq 保存文件
  • 搜索文件

    find / -name [文件名]
  • 复制文件;

    cp [文件名] [文件路径]
  • 回退上次访问目录

    cd -
  • 复制文件夹

    cp -rv [源文件夹] [目标文件夹]

    -r 递归目录下的子目录 -v是返回每个复制文件的细节

  • 移动文件

    mv [文件名] [文件路径]
  • 交互式的删除,每删一个的时候询问

    rm -ri [文件夹名]
  • 强制删除 加-f

    rm -rif [文件名]
  • 删除文件夹,但是rm 不能删除非空文件夹

    rm [文件夹名]
  • 创建文件

    touch 文件名
  • 新建文件夹

    mkdir 文件夹的名称
  • 删除文件

    rm -rf [文件名]
  • 删除文件夹且目录下面的文件

    rm -r [文件夹名]
  • 切换到要删除的目录,删除目录下的所有文件

    rm -f *
  • 删除logs文件夹下的所有文件,而不删除文件夹本身

    rm -rf log/

系统操作命令

  • 编译命令

    make
  • 查看进程命令

    ps aux | grep [redis]
  • 查看当前终端后台运行的任务

    jobs
  • 重启命令

    sudo shutdown -r now
  • 查看linux的版本

    sudo uname --m
  • 杀进程

    kill  -9 [进程号]
  • 查看ip地址

    ifconfig
  • 查看所有进程情况;

    top

    PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小越优先被执行 NInice:值 VIRT:进程占用的虚拟内存 RES:进程占用的物理内存 SHR:进程使用的共享内存 S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 %CPU:进程占用CPU的使用率 %MEM:进程使用的物理内存和总内存的百分比 TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 COMMAND:进程启动命令名称

  • 查看进程占用内存情况

    pmap -d 5647
    rpm -q sam和rpm -qa|grep sam 一个完全匹配软件名,一个不完全匹配
  • 查看系统中文件的使用情况

    df -h

    Size 分割区总容量 Used 已使用的大小 Avail 剩下的大小 Use% 使用的百分比 Mounted on 路径地址 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

  • 查看当前目录下各个文件及目录占用空间大小

    du -sh
    du -h --max-depth=1 /root/*  #查看目录下的说有文件大小
    du -h --max-depth=1 /root    #列出root目录下面所有的一级目录文件大小

    大小 文件名 4.0K test.txt

  • 清屏命令

    clear:这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息
    Ctrl+l:这是一个清屏的快捷键,清屏效果同clear命令一样
    reset:这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少。值得一提的是reset命令在你的终端控制错乱时非常有用。如输入字符不出现在光标的位置的情况。还有当你敲击回车键时,新提示符并没有出现在新行上而是出现在老提示符的前面。此时reset命令就能用来修正这些问题
    printf "\033c":这个命令它才是真正的清空了终端屏幕,它的功能跟DOS里CMD.EXE提供的CLS效果很相似。

压缩解压命令

  • 解包.tar

    tar xvf [文件名].tar
  • 打包.tar

    tar cvf [文件名].tar [文件夹名]

    注:tar是打包,不是压缩!

  • 安装.zip

    yum install zip unzip
  • 解压.zip

    unzip  [文件名称].zip
  • 压缩.zip

    zip -r [文件名称].zip [文件夹名]

Linux设置虚拟内存

交换文件

  • 查看内存:free -m , -m是显示单位为MB,-g单位GB

  • 创建一个文件:touch /root/swapfile

  • 使用dd命令,来创建大小为6G的文件swapfile:

  • dd if=/dev/zero of=/root/swapfile bs=1M count=6144 //命令执行完需要等待一段时间

    if表示input_file输入文件 of表示output_file输出文件 bs表示block_size块大小 count表示计数。 这里,我采用了数据块大小为1M,数据块数目为2048,这样分配的空间就是2G大小。

  • 格式化交换文件:mkswap /root/swapfile

  • 启用交换文件:swapon /root/swapfile

  • 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:

  • /root/swapfile swap swap defaults 0 0

  • 重启后生效reboot

如果要删除交换分区和交换文件,逆着上面的顺序操作

  • 先删除/etc/fstab文件中添加的交换文件行
  • 停用交换文件swapoff /root/swapfile
  • 删除交换文件rm -fr /root/swapfile

交换分区

采用交换分区的办法其实就是新建一个分区,然后将该分区挂载作为交换空间,方法步骤与传统的新建分区一样。只不过格式化分区和挂载分区分别采用mkswap和swapon命令。在创建分区之前,我们常常要用过fdisk -l和df -Th命令来查看硬盘信息和挂载信息,来确定分区的大小。

  • 在shell下以root身份创建分区 hdb1fdisk /dev/hdb1 然后 w 保存退出
  • 设置交换分区,大小视情况自己设置。mkswap /dev/hdb1
  • 启用交换分区swapon /dev/hdb1
  • 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:
  • /dev/hdb1 swap swap defaults 0 0

设置启动执行sh文件

注意:环境变量配置实在执行了rc.local后才执行的,不能使用环境变量配置的命令自接启动 java 就是个坑,建议直接使用安装jdk的路径直接启动

  • 创建sh文件
    vi home/run.sh #你启动脚本的命令
    sh restart.sh
    :wq
  • 修改/etc/rc.d/rc.local在最后添加;
    bash /home/run.sh
  • 在centos7中rc.local的权限被降低了,需要执行如下命令赋予其可执行权限
    chmod +x /etc/rc.d/rc.local
  • 测试是否成功 在run.sh中添加下面代码重启后查看home目录下是否有start-up.log文件 打开start-up.log 查看日志
    time=$(date "+%Y-%m-%d %H:%M:%S")
    cd /home
    echo 自动启动成功,时间: $time  >> start-up.log
  • 关机重启
    shutdown -r now

tomcat自启配置脚本

熟悉shell脚本,可以使用第一种方式配置

  • 创建脚本tomcat(没有sh后缀)放在/etc/rc.d/init.d目录下(创建命令上面有)
  • 添加如下代码(里面的路径自己修改,jdk路径,tomcat路径及版本)
#!/bin/bash
#
# tomcat startup script for the Tomcat server
#
# chkconfig: 345 80 20
# description: start the tomcat deamon
#
# Source function library
. /etc/rc.d/init.d/functions

prog=tomcat8
JAVA_HOME=/home/jdk1.8.0_161
export JAVA_HOME
CATALANA_HOME=/home/apache-tomcat-8.0.48
export CATALINA_HOME

case "$1" in
start)
    echo "Starting Tomcat..."
    $CATALANA_HOME/bin/startup.sh
    ;;

stop)
    echo "Stopping Tomcat..."
    $CATALANA_HOME/bin/shutdown.sh
    ;;

restart)
    echo "Stopping Tomcat..."
    $CATALANA_HOME/bin/shutdown.sh
    sleep 2
    echo
    echo "Starting Tomcat..."
    $CATALANA_HOME/bin/startup.sh
    ;;

*)
    echo "Usage: $prog {start|stop|restart}"
    ;;
esac
exit 0
  • 给tomcat 文件配置权限
    chmod 755 tomcat
  • 启动一下看脚本是否写对
    service tomcat start
  • 加入自启
    chkconfig tomcat on
  • 重启
    shutdown -r now

linux扩展磁盘空间

  • 查看磁盘信息
    fdisk -l
  • 磁盘分区
  • 输入fdisk /dev/sdb开始分区
  • 输入m查看查看操作命令
  • 输入n新建分区
  • 然后输入p新建主分区
  • 输入分区编号(输入没创建的编号)
  • 之后一直按enter键,设置新建分区默认大小
  • 最后输入w 保存
  • 同步分区 输入partprobe命令同步分区

  • 格式化

    mkfs.xfs /dev/sdb1 #/dev/sdb1是创建的挂载点地址
  • 挂载目录

  • mkdir /sdb1创建目
  • mount /dev/sdb1 /sdb1前面是挂载点地址,后面是目录

设置开机自动挂载

  • 运行blkid /dev/sdb1查看UUID
  • 编辑/etc/fstab文件添加
    UUID=818f6627-a91a-459c-aacb-220929178ba5 /sdb1 xfs defaults 0 0
    818f6627-a91a-459c-aacb-220929178ba5换成刚刚查出的UUID,/sdb1设置成要挂在的目录
  • 重启df -Th看见你的挂在点和目录表示设置成功
  • centos重启命令
  • reboot普通重启
  • shutdown -r now 立刻重启(root用户使用)
  • shutdown -r 10 过10分钟自动重启(root用户使用)
  • shutdown -r 20:35 在时间为20:35时候重启(root用户使用)

账户组管理

  • 创建用户组
    groupadd [组名]
  • 查看所有用户组
    cat /etc/group
  • 查找某个用户组
    cat /etc/group|grep [组名]
  • 删除组
    groupdel [组名]
  • 将用户添加到组
    usermod -a -G [组名] [用户名]
  • 查看指定用户所在组
    groups [用户名]
  • 查看当前用户所在的组
    groups
  • 从组中删除用户(编辑/etc/group 找到[组名]那一行,删除 [用户名])
    gpasswd [组名] -d [用户名]

账户管理

  • 创建用户
    useradd [用户名]
  • 删除用户及目录
    userdel -r [用户名]
  • 彻底删除用户及目录,-r用户及目录,-f强制删除
    userdel -rf [用户名]
  • 删除用户
    userdel [用户名]
  • 查看所有用户信息
    cat /etc/passwd
  • 查看某个用户
    cat /etc/passwd|grep [用户名]
  • 设置密码/修改密码(设置密码运行后输入两次密码)
    passwd [用户名]
  • 查看当前登录用户名
    whoami

账户权限

运行ls -l显示的内容如下,10个字符确定不同用户能对文件干什么

drwxr-xr-x 4 root root 4096 Mar 27 13:48 service

  1. 第一个字符代表:文件(-)、目录(d),链接(l)
  2. 其余字符每3个一组(rwx),读(r)、写(w)、执行(x),也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7,二进制计算结果
  3. 第一组rwx:文件所有者的权限
  4. 第二组r-x:与文件所有者同一组用户的权限
  5. 第三组r-x:不与文件所有者同组的其他用户的权限
  6. 4 表示文件的硬连接数
  7. root 表示用户
  8. root 表示用户所在的组
  9. 4096 表示文件大小(字节)
  10. Mar 27 13:48 表示最后修改日期
  11. service 表示文件名

硬链接和软连接

什么是硬链接?

一个inode号(文件唯一标识)对应多个文件名,数据块的别名, 硬链接为Linux系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处

什么是软连接?

有自己的个inode(索引)号(文件唯一标识)及文件数据,文件数据块中存的是源文件的地址

创建硬链接

ln [源文件名] [硬链接名]

创建软连接

ln -s [源文件名] [硬链接名]

脚本执行错误解决方案

错误信息

syntax error near unexpected token 'fi'

错误原因

原因很可能是你在windows下编写的脚本文件,放到Linux中无法识别格式

解决方案

  • 打开sh脚本
    vi [脚本名称].sh
  • 输入
    :set ff

    查看当前文本的模式类型,一般为dos,unix

  • 输入设置为unix类型
    :set ff=unix
  • 保存
    :wq

查询磁盘信息显示的磁盘大小不一致原因及解决办法

df -hdu -sh显示的磁盘大小不一致原因及解决办法 问题表现 df -hT显示132G空间全部占用,du -sh显示只占用30G

问题原因

使用rm命令删除文件时,只有当该文件不存在任何link才会被删除 当有进程访问这个文件时,这个文件的实际占用空间就不会释放 du是根据文件名进行的空间统计,使用rm时该文件对系统来说已经不可见,所以不会统计这个文件。 df则是磁盘实际占用的数量

解决方法

使用lsof|grep delete命令查看正在使用的已删除的文件,发现存在多个这样的文件,kill掉进程,文件删除成功

很赞哦! (0)

文章评论