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环境变量不同而导致命令无法找到的错误。