Linux常用命令

什么是linux

linux 就是一种操作系统,通俗的讲就是一种能够管理计算机硬件,并且提供操作这些硬件的软件接口的软件。相较于windows, 功能虽然相似,但底层的实现机制完全不同;对上层软件提供的访问接口完全不同;它的构造更简单,更稳定,因此主要用在服务器领域。

常见的发行版本有
RedHat(红帽): 红帽企业版 RHEL (red hat enterprise linux)
Fedora: 免费桌面版
Centos: 基于红帽企业版的一个社区免费开源版本,主要应用于服务器
Ubuntu: 有桌面版、服务器版、手机版

linux文件系统

在这里插入图片描述
root: 当前登录的用户
centos: 机器的主机名(机器在网络中的一个标识)
~ :当前所处的目录(root用户的主目录, /root 普通用户的主目录在 /home 下)

linux的文件系统目录结构

目录含义
/顶层目录
/bin存放一些系统可执行程序(文件)
/sbin存放一些超级用户root才能运行的程序(文件)
/etc存放系统配置文件(环境变量配置文件/etc/profile, ip的配置文件/etc/sysconfig/network-script/ifcfg-eth0)
/home存放普通用户的主目录的父路径 类似window的用户目录
/root超级用户root的主目录 或者 ~ 超级用户和普通用户不一样
/opt用于安装额外软件的目录(类似于c:/program files)
/usrunix shared resources 软件的资源(库、配置文件)共享目录
/dev存放设备文件(linux中,访问一个设备(光驱、显卡等硬件),也用访问文件的形式)的目录
/tmp系统临时目录(linux重启后,可能会清除tmp中的文件)
/var存放一些软件运行过程中易变的内容(日志文件)

目录操作命令:

  1. 切换目录
    cd 你要去的目录
    注意:路径的标识方法有两种:绝对路径 和 相对路径
    绝对路径:路径从 / 开始写起的
    相对路径:相对于当前所在的路径开始写起的: …/ 代表上一级 ./ 代表当前目录 (通常可以省略)
    cd后面什么也不跟,就是进入的主目录
    举例:由install目录,进入根目录下的tmp(相对路径写法)
    在这里插入图片描述

  2. 查看目录
    ls 你要查看的目录

    d: 表示这是一个文件夹
    -: 表示这是一个文件
    l:表示软连接文件(link)
    rwxr-xr-x:是这个文件的访问权限信息 r 读 w 写 x 执行
    root root : 表示这个文件的属主:所有者,所属组
    1256:大小(文件夹的这个值并不是文件夹的内容大小)
    12月 15 19:34 :这个文件的最后修改时间
    ls --help 查看详细用法
    ls ./ 查看当前目录,可以省略 ./
    ls -l 路径 显示详细信息,在centos中 可以写成 ll
    ls -a 路径 显示隐藏文件
    ls -al 路径 显示详细信息和隐藏文件
    ll –h 路径 就会把文件的大小加上单位
    ls ./ > ./test.txt 这个命令会产生什么效果?
    先创建文件,再把ls后的内容加到test.txt文件中

  3. 显示路径
    pwd 显示当前所在的目录的全路径

  4. 创建文件夹
    mkdir 路径
    mkdir /test 在根目录下创建文件夹test
    mkdir ./test 在当前目录下创建文件夹test
    mkdir -p ./aa/bb 一次性创建多级目录

  5. 移动(改名)文件或文件夹
    mv 源路径 目标路径
    mv ./aa ../ 将当前目录下的aa移动到上级目录
    mv /root/aa/bb /root/将/root/aa下的bb移动到/root下
    mv ./install.log ./a.log 改名
    mv ./haha.txt ./aaa/ 表示将haha.txt移动到aaa目录下去
    mv ./haha.txt ./aaa 如果aaa是一个已经存在的目录,则是移动到这个目录中去,如果aaa不存在,则是将haha.txt改名成aaa,所以移动的话,最后面最好加上“/”

  6. 删除文件或文件夹
    rm 路径
    rm a.log 删除当前目录下的a.log文件,它会提示你要删除文件吗?
    rm -f b.log c.log 加上-f 强制删除,没有提示
    rm -r 路径 递归处理,将指定目录下的所有文件与子目录一并处理
    rm -rf ./oo -r 递归删除 -f 强制不用提示
    rm –rf * 删除当前目录下的所有文件

文件内容操作命令

  1. 创建文件
    touch 路径/文件名
    touch ./test.txt 当前目录下生成一个名叫test.txt的空文件
    使用echo输出信息重定向到一个指定文件中,文件不存在则创建
    echo “hello world” > /root/test.txt 输出hello world到 /root/test.txt ,内容结尾会自动加一个回车符,若原文件存在且存在内容>会覆盖内容
    >> 追加 echo “hello linux” >> /root/xx.txt
    在这里插入图片描述
    利用文件编辑器,编辑内容后,保存为文件

  2. 编辑文件内容
    vi 路径
    打开后,vi 程序处于接收命令的状态,需要按一个命令键 i 进入编辑模式
    编辑完内容后,按ESC键退出编辑模型,回到命令模式
    在命令行模式下:
    :wq保存退出
    :w 保存
    :q退出
    :wq! 强制保存且退出
    :q! 强制不保存,并退出
    dd删除光标所在的1行
    3dd 删除光标所在行开始的3行
    yy复制光标所在的行
    p 粘贴
    u(undo)撤销
    ctrl+l 清屏(小写的L)或者clear

  3. 显示文件内容
    cat/more/less/tail/head 路径
    cat /root/xx.txt 一次性将文件全部显示出来
    cat ./xx.txt >> ./yy.txt 这个命令产生什么效果?
    将cat出来的内容追加到yy.txt中
    cat ./xx.txt > ./yy.txt 这个命令产生什么效果?
    将cat出来的内容加到yy.txt中,会将yy.txt中的内容覆盖掉
    more /root/test.txt 可以分页查看文件内容,空格:向下翻页 ; 退出: q
    less /root/test.txt 可以分页查看文件内容;
    向下翻页: 空格
    向上翻页: b (back)
    向下一行: ↓
    向上一行: ↑
    跳到文件头:gg
    跳到文件末: shift+g
    搜索关键字:
    按 /,输入关键字,然后回车
    往后匹配: n
    往前匹配: N
    退出: q
    tail -20 /root/a.log 查看文件尾部的20行(不带行数的话,默认看10行)
    tail –f /root/a.log ## 实时刷新显示a.log文件中尾部新增的内容
    head -20 /root/a.log 查看文件头部的n行

  4. 文件查找
    find 搜索文件系统节点 文件夹/链接/文件
    find ./ -name "*.txt" 查找当前目录下所有.txt结尾的文件
    find ./ -type d -name "abc"查找当前目录下叫abc的文件夹
    find ./ -type f -name "abc" 查找当前目录下叫abc的文件(type表示要搜索的对象的类型 f:文件)
    find ./ -maxdepth 1 -name "H*" maxdepth表示要搜索的层数(默认会递归查到最里层)
    find xxx -exec xxx搜索到文件后,执行一个操作
    find ./ -name "*.txt.dat" -exec rm -rf {} \; 搜出文件并删除
    find ./ -name "*.txt.dat" -exec mv {} /databackup \; 搜出文件并移动
    grep 搜索文本内容
    grep "public" HelloWorld.java a.txt “public”要搜的关键词 HelloWorld.java a.txt 表示要搜索的目标文件
    which 搜索命令
    which java

压缩解压缩操作

打包tar:将多个文件打入一个包文件(tar文件; tar ball)
打包:tar -cf doc.tar ./a.txt ./b.txt ./*.dat(路径) 将a.txt,b.txt *.dat打入doc.tar包
解包:tar -xf doc.tar
压缩:
gzip a.txt b.txt 分别压缩成a.txt.gz, b.txt.gz
gzip doc.tar 得到 doc.tar.gz
解压:
gzip -d doc.tar.gz 得到doc.tar
打包和压缩一次性完成(通常记住此命令即可):
tar -zcf doc.tar.gz(也可以写成*.gz) ./a.txt ./b.txt ./c.txt 将abc三个文件打包,然后压缩
解包和解压缩可以一次性完成:
tar -zxf doc.tar.gz 将doc.tar.gz解压,然后解包
tar -zxf doc.tar.gz -C /home/ 将doc.tar.gz解压到/home目录下去

linux的网络配置

ip地址配置:修改配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改 ONBOOT=yes
然后,重启网络服务service network restart,让配置文件生效:
网络服务重启完成后,用ifconfig查看动态获取的ip地址
在这里插入图片描述

修改主机名

查看主机名:hostname
修改主机名:vi /etc/sysconfig/network添加 HOSTNAME=centos
改完配置文件后,主机名不会立即生效,需要重启linux
不重启的话可以利用 hostname centos 立即生效;
但是,登录会话的提示符还是没有刷新,可以退出登录exit,重连(连按两次回车);
Centos7 中也可以使用hostnamectl set-hostname xxx

进程管理

查看进程
ps -ef 显示系统中当前所有的进程
jps jps不是linux的内置命令,它是jdk中的程序,用于显示当前的java进程
杀进程
杀死进程 kill
kill -9 4733(进程号)
top 实时监控系统中的进程及资源使用情况,按q退出

进程挂起
Ctrl+z :挂起一个进程,该进程就暂停运行了,并放入后台
如果需要恢复,jobs看被挂起的进程,然后fg 1(job ID)
在这里插入图片描述

进程后台运行
command & 放入后台运行,但是如果这个command会往控制台(标准输出)输出信息,它还是会继续输出的,会干扰我们的其他工作。可以对command的输出做重定向command > ./xx.log & 将程序的所有输出重定向到xx.log,并放入后台运行

java Hello 1>./std.out 2>./err.out & 将程序的标准输出重定向到std.out,错误输出重定向到err.out, 并放入后台运行
1表示标准输出2表示错误输出
java Hello 1>/dev/null 2>/dev/null &
java Hello 1>/dev/null 2>&1 &
将程序的标准输出重定向到/dev/null(黑洞),写入这里内容都会丢失。错误输出重定向到标准输出, 并放入后台运行

管道|:把管道左边的命令的输出结果内容,作为右边的命令的输入流
ps -ef | grep "tomcat" 在ps -ef 输出的结果中查找 ”tomcat“
ls *.txt | less 将ls *.txt的结果用less查看,这样数据多的时候可以翻页
ll | cat将 ll 的结果用cat查看
在这里插入图片描述
管道转输入参数
ls 1.txt 2.txt | xargs cat 产生效果: cat 1.txt 2.txt
在这里插入图片描述
ls *.txt | xargs rm -rf 产生效果: rm -rf 1.txt 2.txt
find ./ -name *.txt -exec rm -rf {} \;产生效果: rm -rf 1.txt rm -rf 2.txt

用户管理

useradd lee添加用户lee 该用户主目录在/home/lee下
passwd lee 修改用户lee的密码
输密码:123
确认密码:123
groupadd 创建一个新的用户组
groupadd good创建一个名为good的用户组
userdel lee 删除用户lee,保留用户的主目录
userdel -r lee 删除用户lee,且删除用户的主目录
usermod -g root lee 将lee改到root组,小g指定的组,是用户的主组
usermod -G good lee 给lee用户添加到一个额外的组good
groups lee 查看lee用户属于哪个组

服务管理

系统中运行的一些常驻后台的程序;
network服务:是linux的网络功能服务
service network restart 重启名为network的服务
iptables服务:是linux的防火墙服务
service iptables start 启动名为iptables的服务
service iptables stop 停止名为iptables的服务
chkconfig iptables off 关闭iptables服务的开机自启
chkconfig iptables on 开启iptables服务的开机自启
service iptables status 查看名为iptables的服务的状态
firewall-cmd --state centos7查看防火墙状态
systemctl stop firewalld.service 停止firewall
systemctl disable firewalld.service 禁止firewall开机启动

文件权限管理

linux中不同用户对不同文件可以拥有不同的访问权限
linux中的文件的访问权限描述形式:
r:表示可读(对文件:能否读取内容; 对文件夹:能否ls)
w:可写(对文件:能否修改内容;对文件夹:能够在文件夹里面创建或删除文件)
x:可执行(对文件:能否运行;对文件夹:能否cd进去)
r w x (拥有者 )r - x( 所属组)r - x(其他人)
在这里插入图片描述
install这个文件夹,所有者是root,所属组是root
root用户对install的权限是:rwx 可读可写可执行
root组对install的权限是:r-x 可读可执行,不可写
其他人对install的权限是:r-x 可读可执行,不可写
chmod 修改文件权限
增加/取消权限:
chmod u+rwx aaa 对aaa文件夹添加所有者对它的rwx权限
chmod g+r aaa 对aaa文件夹添加所属组对它的r权限
chmod o-rw aaa 对aaa文件夹取消其他人对它的rw权限
chmod +x aaa 对aaa文件夹添加所有人对它的x权限
更简洁的办法:
比如,我想把aaa文件夹的权限改成 rw-rw-rw-
上面的3组权限可以用二进制表示:110 110 110
进而,上面的二进制,可以看成3个十进制数:6 6 6
那么,就可以用chmod命令一次性修改成目标权限:chmod 666 aaa
chown 修改文件的属主(所有者,所属组)
chown lee:good ./a.txt ## 将a.txt文件改成lee用户,good组来拥有
但这个修改属组的操作,只能是root才能进行

域名映射配置

vi /etc/hosts 192.168.137.10   centos 可以将IP映射到centos上

RPM包管理yum安装

redhat(红帽)制定了一个软件包发布的标准:RPM(redhat package managment)
安装rpm -ivh xx.rpm
卸载rpm -e xx.rpm
rpm在安装软件时,需要我们自己去解决依赖,非常麻烦!!!
yumrpm的自动化依赖管理工具,可以从中央仓库获取依赖软件包(类似于java中用maven)
yum从哪里知道哪里有软件包仓库: /etc/yum.repo.d/*.repo

yum search xxx 从仓库中搜索软件包
yum install xxx 安装软件包
yum repolist xxx 查看当前所配置的所有库
yum list 查看*.repo中配置的仓库中的所有软件包
yum list | grep tomcat 看仓库中有没有tomcat (yum search tomcat)
在这里插入图片描述
yum update 更新系统上的所有rpm包安装的软件
yum clean all 清除yum在本地缓存的库索引
yum erase xxx 卸载一个软件

本地yum库配置

  1. 局域网内部的一个web服务器,里面放了很多rpm软件包
  2. 本地文件夹,里面放了很多的rpm软件包
    centos的安装光盘其实就是一个yum仓库
    具体实现步骤:
    i) 在linux系统中挂载一个dvd安装光盘到/mnt/dvd
    补充: linux系统对外部存储的访问
    linux系统中所有的存储设备,都需要“挂载”到文件系统中,才能访问存储设备中的文件
    mount 设备 /文件系统目录
    mkdir /mnt/dvd
    mount -t iso9660 -o loop /dev/cdrom /mnt/dvd
    (前提是,这台linux的光驱中已经插了光盘(iso镜像文件),并连接)
    在这里插入图片描述
    ii) 进入yum工具的配置文件目录
    cd /etc/yum.repo.d/
    将内置的仓库配置文件全部改名
    rename .repo .repo.bak ./*
    然后,拷贝一个配置文件做样本
    cp CentOS-Base.repo.bak CentOS-localDvd.repo
    然后修改vi dvd.repo
    在这里插入图片描述
    在这里插入图片描述
    改完后,用yum去安装软件时,它都会从/mnt/dvd中获取软件包

修改yum源为国内源

  1. 首先备份系统自带yum源配置文件
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. 查看CentOS系统版本
    lsb_release -a
  3. 下载163或者ailiyun的yum源配置文件到/etc/yum.repos.d/
    CentOS7
    网易wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
    阿里云wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    CentOS6
    网易wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
    阿里云wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
  4. 运行yum makecache生成缓存
    yum makecache这时候再更新系统就会看到以下mirrors.aliyun.com信息

时间管理

查看时间 date
date -d "1 day ago" +%Y-%m-%d 获取前一日的日期(两天 、三年、分钟小时秒等依此类推)
date -d "+1 day" +%Y-%m-%d 获取后一日的日期
设置时间 date -s
date -s "2017-12-25 09:38:40" 修改时间
网络时间同步ntpdate 0.asia.pool.ntp.org
ntpdate在系统中默认没有安装,需要先安装:
yum search ntpdate 搜索出软件包,再yun install xxx...安装

其他

ctrl+alt+ F1 ctrl+alt+ F2 开启多窗口
如果要使用 netstat 或者 iptables发现命令不存在 yum install net-tools

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值