linux 基本操作回顾
linux 常用操作命令(默认超级用户下) 创建用户 useradd eric id 用户名 查看用户所属详细信息 用户切换 sudo - root 普通用户切换到管理员用户 exit 退出当前用户 修改密码 passwd echo 123 | passwd --stdin root #直接修改 回写命令 echo 管道 | 左边命令执行的结果交给下一个命令作为输入。 删除用户 userdel 用户名 部分删除;仅是删除用户信息,家目录和邮箱文件删不掉 userdel -r 用户名 全部删除 查看帮助信息 man passwd passwd --help 查看历史操作信息 history !命令序号 执行某条历史命令 !163 histoty -c 清除所有历史操作命令 linux机器操作 init 0 关机 shutdown -h now 立即关机 init 6 重启 切换(开启)终端 ctrl +Alt +F.. 查看用户 who 查看当前都登陆了哪些用户和终端 tty 查看当前用户所在终端 pts/0 代表当前用户终端 whoami 查看当前登录的用户 日期操作: date 查看当前时间 date 月日时分年 修改时间 例子:date 031511112017 cal 查看日历 cal 月 年 查看某年某月的日历 例子:cal 3 1990 清屏 clear 查看本机主机名: hostname 修改主机名: hostnamectl set-hostname 新名字 目录结构文件操作 单根模式 / 树形结构 ls 默认查看当前目录下的所有信息 ls 参数 查看指定目录下的所有文件信息 ls /etc/ pwd 查看当前所在目录 cd 路径 切换目录 各文件作用 bin 常用命令 boot 启动盘 etc 配置文件 dev sbin 系统命令 media或mnt 挂载目录 tmp 临时目录 目录操作 增: mkdir /a 创建目录 mkdir -p /b/p 递归创建目录 查: ls 查 ls --help | less 分页查看 ls -d 只查看目录 改: mv /a/f /a/f1 改目录名 mv /a/e /b/ 移动文件 移动之后,原路径下文件不再存在 mv /a/e /b/e1 移动文件并重命名 删: rm /a 删除某个文件 rm -rf /a/b/c.txt 强制递归删除整个目录 文件操作: 创建: touch a.txt 在当前目录下创建文件 touch /a/b/a.txt 在指定路径下创建文件 删改查操作与目录一致 查看文件内容 cat aaa.txt 查看文件内容 读一行显示一行 less aaa.txt 分页查看文件内容 more aaa.txt 百分比查看文件内容 head /tmp/a.txt 默认查看前10行内容 head -n 1 /tmp/a.txt 查看第一行内容 tail /tmp/a.txt 查看后10行内容 tail -f /tmp/a.txt 动态查看文件内容,有新内容写入就会显示 echo aaaaaaasssdf > /tmp/a.txt 覆盖形式向文件添加内容 echo bbbb >> /tmp/a.txt 往文件中追加写入内容 用途:用于日志监测 shift + g 跳到文件的最后一行 用户属组与属主关系 uid 用户id gid 组id(初始组,默认是用户id) 主组 组 = 所属组/附加组(某一组的组员) gpasswd 设置组密码 创建用户: useradd -u(自定用户的uid) -g(指定用户所属群组) -d(指定用户的家目录) -c(指定用户的备注信息) -s(指定用户所有shell) -G(指定用户的附加组) groupadd group1 创建组 groupdel group1 删除组 用户分组: usermod -G 组名 把用户加入某个组 拷贝 cp -r /etc/skel/ /home/rose 把文拷贝到rose文件下 查看目录详细信息 (有权限,属主,属组) 文件详细信息 ls -l /home/rose/ ls -l =========ll ls -dl /home/rose 例子:d rwx r-x r-x .3 root root 74 3月 15 10:47 /home/rose/ 主人 分组 其他 权限 属主 属组 补充:去除监控,修改 vim /etc/sysconfig/selinux 文件的信息 selinux=disabled d 代表目录,/代表普通文件 ll -a /home/rose 查看目录下的所有文件详细信息 修改 目录/文件 信息 chown -R 属主.数组 /home/rose/ (-R的意思是递归修改目录下所有文件详细信息) 权限:r=4,w=2,x=1 目录的权限对其下可操作文件权限是有影响的。root是超级用户,可以对所有文件进行操作 修改文件权限: chmod u=权限,g=权限,o=权限 文件 例子:chmod o=- a.txt u 代表用户,g代表组,o代表其他 权限的变更 增加权限做加法计算;例如:u+x ; 降低权限做减法计算;例如:u-x 也可以通过数字表示 u=7,g=4,o=4 执行文件方法(文件需要有读和可执行权限):./文件 例子:./a.txt tar归档命令 打包(压缩和解压缩) v 代表显示详细信息 打包某文件夹下所有文件 tar cf 打包后的文件名 处理的文件 例如:tar cf test.tar a.txt b.txt c.txt 查看归档文件信息:tar -tf test.tar 解包(默认解压到当前路径):tar xf test.tar 解包到指定目录下:tar xvf tar文件 -C 要解包到的目录; 例子:mkdir /bsk tar xvf test.tar -C /bsk 压缩工具 gzip,bzip2 压缩 gzip a.txt 得到gz格式的压缩文件 a.txt.gz 解压缩 gunzip a.txt.gz 解压之后文件 a.txt 压缩:bzip2 e.txt 得到bz2格式的压缩文件 e.txt.bz2 压包 tar cvzf test1.tar.gz a.txt b.txt c.txt 打包并压缩文件 格式:gz tar cvjf test2.tar.bz2 a.txt b.txt c.txt 打包并压缩文件 格式:bz2 解包 tar xf 包名 解包的过程中不区分包的格式 vim编辑器 i 插入模式 a 追加模式 o 下一行 O 上一行 p 粘贴 dd 剪切(删除)一行,仅删除有内容的行,不能删除空行! D 删除空行 ndd 一下删除n行 撤销操作:U gg 跳到文件的头部 set nu 设置行号 ls -i 文件名 查看文件的innode号 软连接 可以理解为是 快捷方式 创建可以跨分区(与innode号无关) ln -s 原文件 快捷方式 ln -s /a.txt /boot/aa.txt 源文件丢失,对快捷方式会造成影响 硬链接 指向的是文件的innode号 创建不能跨分区 ln 源文件 连接文件 ln b.txt c.txt 源文件丢失,对硬连接文件不会造成影响 查看内存信息 free 默认单位是字节 free -m 以M为单位显示 uname -a 查看内核版本号 cat/etc/redhat-release 查看红帽的版本信息 swapon -s 查看swap分区 解决硬盘与内存间的速度差 buffer 代表还未写入硬盘中的数据 cache 代表从硬盘读取的数据 echo 3 > /porc/sys/vm/drop_caches 释放内存,清除cache的信息 cat /proc/meminfo #查看内存信息 cat /proc/cpuinfo #查看cpu信息 top 动态查看系统状态(如果机子太卡,想看都在运行哪些软件) ps aux 静态查看系统内运行状态 进程管理 定义: 进程是程序的一次动态执行 守护进程实在后台运行并提供系统服务的一些进程 当一个进程创建另一个进程时,第一个进程被称为新进程的父进程,而新进程被称为子进程 僵尸进程:系统不再调用而还在占用内存空间;常见情况:父进程死了,子进程还在执行 查看系统中的进程(每执行一条命令都会生成一条进程) ps aux 查看所有的进程信息 ps aux | grep gname 查看带有gname关键字的进程 pgrep 仅查看某个进程的pid,例如:pgrep init pstree 查看全部树状结构的进程信息;pstree tom 查看某个用户下的所有进程 杀死进程 kill -9 进程pid 例如:kill -9 3489 pkill -9 进程名 例如:pkill -9 firefox 后台执行应用程序不占用终端:执行命令+& ;例如:firefox& 查看后台执行的工作命令:jobs 软件包管理: dd 命令 用于测试硬盘的写速度;例如:dd if=/dev/zero of=/a.txt bs=1G count=1 如何在linux系统中安装软件包 1、二进制类型的;光盘中就有 查看 df cd /Packages 查看光盘内信息 cd/run/media/root/CentOS 2、源码包:需要解压,编译再安装 安装二进制包 rpm -ivh 包名 安装包 rpm -qi 包名 查看软件包的详细信息 rpm -ql 包名 查看与软件包相关文件的路径 rpm -qa 查看系统中安装了多少rpm包,用于:验证系统中有没装某个包 rpm -qa | grep vsf;rpm -q 完全的软件包名 rpm -qf 文件路径 用于查看关联的软件包 rpm -e ·rpm -qa |grep vsf· 删除软件包 which ls 用于查看命令对应的文件位置 echo $PATH 查看某个变量对应的值 alias 用于自定义命令 例如:alias gst = "kill -9" alias cys = 'pgrep firefox' 应用:终端上先敲入: cys 查看进程号;然后 gst 进程号 杀死这个进程 yum 安装 (同一时刻,只能运行一个) yum clean all 先将存在于缓存中的安装依赖清除 yum install 包名 安装包,有提示信息 yum -y install 包名 默认全部安装,不再提示 yum uninstall 包名 卸载包 yum -y erase 包名 卸载某个包,依赖性关系没删,本体被删除 yum reinstall 包名 重新安装包 yum -y update 升级所有(包括内核,系统,软件包) yum -y upgrade 升级软件包 安装扩展包 epel yum -y install epel yum makecache -y 建立缓存,提高软件包下载速度 把软件包保留在本地 修改 /etc/yum.conf文件 vim /etc/yum.conf cachedir = 指定存储路径 keepcache = 1 自定义yum源 0、修改yum配置文件,下载到指定的文件夹内,例如:cangku_http 1、yum -y install createrepo 先安装用于创建的工具包 2、createrepo /cangku_http 建立依赖关系 3、自定义repo文件 [httpd] name = http_server 自定义r baseurl = file:///cangku_http 创建的安装源文件路径 enabled=1 gpgcheck=0 4、yum install 包名 在本地安装 自定义网络yum源 1、在 yum.repos.d目录下创建centos-7.0.repo vim centos-7.0.repo [centos] name=centos baseurl=http://mirror.centos.org/centos/7/os/x86_64/ enabled=1 gpgcheck=0 将yum自动更新关掉: 1、打开文件目录:cd /etc/yum 2、修改文件 vim yum-cron.conf 3、文件内参数:download_updates = no 源码安装: 1、先安装工具包 yum -y groupinstall "开发工具" yum install gcc-* glibc-* make cmake -y 2、解压源码包 tar xvf xxx.tar.gz -C /test 3、切到解压到的文件 cd /xxx 4、编译./configure --help 5、make && make install 查询系统其他命令 vmstat 硬件使用情况 iostat 读写速读 netstat 查看网络状态 netstat -tunalp 查看网络监听的所有信息 配置网卡 临时修改 ifconfig 网卡名 IP地址 DNS:vim /etc/resolv.conf 网关: (填加)route add default gw 网关 netmask 255.255.255.0 (删除)route del default gw 网关 netmask 255.255.255.0 查看配置:route -n 重启网卡:systemctl restart network 永久配置 cd /etc/sysconfig/network-scripts/ vim ifcfg-en033(网卡) BOOTPROTO="static" IPADDR= NETMASK= GATEWAY= DNS1= DNS2= 保存退出 重启网卡。 查看和更改DNS配置:cat /etc/resolv.conf DNS 配置本地解析地址 设置主机名和解析地址 计划任务 crontab 计划时间内要完成的任务,包已自动安装,并开机自启动 首先需要知道的是,无论是系统级还是用户级的cron计划都是文本文件,系 统的计划文件存放在/etc/crontab路径下。 用户的计划文件放在/var/spool/cron/用户名,不管是哪一种,都可以满足我们定制计划任务的需求。 root用户可以直接对文件进行修改来编写计划任务也可以使用 crontab -e命令,而普通用户只能使用后者。 除此之外,系统crontab文件中任务的定义也有所不同,在前五个部分之后插入了一个“用户”部分。 语法 :crontab -e -u 用户名(权限) crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr] crontab任务配置基本格式: * * * * * command 分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 参 数: -e 编辑该用户的计时器设置。 -l 列出该用户的计时器设置。 -r 删除该用户的计时器设置。 -u<用户名称> 指定要设定计时器的用户名称。 查看计划任务配置 crontab -l date +%F_%T 时间格式 实例:* * * * * echo ' date +%F_%T ' >> /tmp/test.log 每分钟将数据打印到log文件中 查看cron服务是否起作用: 如果我们要查看定时任务是否准时调用了可以/var/log/cron中的运行信息cat /var/log/cron 也可以用tail -f /var/spool/mail/用户名,来查看普通用户的计划任务执行情况 此处需要记住两点: 第一:cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。 这样,当某个 crontab 文件改变后就不必重新启动守护进程了。 第二:crontab的用户手册中推荐每一个命令使用绝对路径,例如调用rm命令时写作:/bin/rm,这是为了防止由于每一个用户的PATH环境变量不同而导致命令无法找到的错误。