操作系统(二)Linux常用命令行与shell脚本


layout: post
title: 操作系统(二)Linux常用命令行
description: 操作系统(二)Linux常用命令行
tag: 操作系统


一、关机、重启、登出

关闭系统

  • 立即关机:
    shutdown -h now
    init 0
    telinit 0
  • 按预定时间关机
    shutdown -h huors:minutes
  • 取消按预定时间关机
    shutdown -c
  • 重启
    shutdown -r now
    reboot
  • 注销
    logout

二、文件和目录

路径访问

进入home目录
cd /home
返回上级
cd …
返回上上级
cd …/…/
返回用户所在主目录
cd ~user1
返回上次所在目录
cd -

列出当前目录文件选项及信息

显示工作路径
pwd
列出当前目录中所有项
ls
列出当前目录中文件项
ls -F
显示文件和目录的详细资料
ls -l
显示隐藏文件
ls -a
显示文件和目录由根目录开始的树形结构
tree
lstree

文件夹创建

创建名为‘dir1’的文件夹
mkdir dir1
同时创建两个
mkdir dir1 dir2
带-p参数(parent,如果父级目录不存在,则创建父级目录)
mkdir -p /tmp/dir1/dir2

文件或文件夹删除

删除名为’file1’的文件
rm -f file1
删除文件夹名为’dir1’的文件夹
rmdir dir1
删除文件夹名为’dir1’的文件夹同时删除文件夹内的内容 (-r 递归)
rm -rf dir1

文件拷贝、移动、链接

重命名或移动一个目录
mv dir1 new_dir
复制一个文件
cp file1 file2
复制一个目录下的所有文件到当前工作目录
cp dir/* .
复制一个目录到当前目录
cp -a /tmp/dir1 .
创建一个指向文件或目录的软链接(软链接类似快捷方式,是一种文件重定向)
ln -s file1 link1
创建一个指向文件或目录的硬链接(硬链接是物理链接,相等于引用,给文件或目录起别名)
ln file1 link2

文件搜索

从‘/’开始进入根文件系统搜索文件和目录
find / -name file1
在目录’/home/user1’中搜索带有’.bin’结尾的文件
find /home/user1 -name *.bin
搜索在过去100天内未被使用过的文件
find /user/bin -type f -atime +100
搜索在10天内被创建或修改过的文件
find /user/bin -type f -mtime -10

打包和压缩文件

bunzip2 file1.bz2 解压一个叫做 'file1.bz2’的文件
bzip2 file1 压缩一个叫做 ‘file1’ 的文件
gunzip file1.gz 解压一个叫做 'file1.gz’的文件
gzip file1 压缩一个叫做 'file1’的文件
gzip -9 file1 最大程度压缩
rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’
unrar x file1.rar 解压rar包 #如果无unrar命令,参考:Linux CentOS 7.0 下 rar unrar的安装
tar -cvf archive.tar file1 创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 ‘file1’, ‘file2’ 以及 'dir1’的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -jxvf archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -zxvf archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包

文件权限设置-用"+"设置权限,“-”取消权限

ls -lh 显示权限
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chown user1:group1 file1 改变一个文件的所有人和群组属性
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
chmod g-s /home/public 禁用一个目录的 SGID 位
chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位

chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性

三、网络与防火墙

网络相关

显示或设置网络设备
ifconfig
ip address
持续监控网络设置状态
ip monitor
查看数据报到主机的路由线路
tracerouter www.baidu.com
查看网络层是否可达目的地址
ping www.baidu.com
查看域名相关信息
dig www.baidu.com
获取特定主机的ip地址
host www.baidu.com
也可以通过ip获取主机名
host 8.8.4.4
列出所有监听和非监听的TCP连接
ss -at
列出所有监听和非监听的UDP连接
ss- au
netstat列出端口
netstat -a
列出所有TCP端口
netstat -at
列出所有UDP端口
netstat -au
列出所有Unix端口
netstae -ax
端口占用查看
netstat -lnpt

防火墙

Ubuntu

查看防火墙当前状态
sudo ufw status
开启防火墙
sudo ufw enable
关闭防火墙
sudo ufw disable
查看防火墙版本
sudo ufw version
默认允许外部访问本机
sudo ufw allow
默认拒绝外部访问本机
sudo ufw deny
允许|拒绝外部访问端口53
sudo ufw allow|deny 53
允许某个ip地址访问本机所有端口
sudo ufw allow from 192.168.0.1

iptables系列

查看防火墙状态
service iptables status
启动|停止|重启防火墙
service iptables statrt|stop|restart
防火墙开发指定端口(以80为例)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
设置指定ip访问指定端口

禁止所有IP访问指定PORT:iptables -I INPUT -p tcp --dport PORT -j DROP
允许指定IP访问该PORT:iptables -I INPUT -s IP -p tcp --dport PORT -j ACCEPT
保存配置:service iptables save

四、进程管理

查看进程状态ps

ps(process status)查看进程状态
– 查看进程状态,默认列出当前用户的进程
– 选项 a:列出带有终端的所有用户进程
– 选项 x:列出当前用户的所有进程,包括没有终端的进程
– 选项 u:面向用户友好的显示风格
– 选项 -e:列出所有进程
– 选项 -u:列出某个用户关联的所有进程
– 选项 -f:显示完整格式的进程列表
ps [选项]

– 常用命令
– 查看系统中的所有进程
ps aux

– 查看子父进程之间的关系
ps -ef

杀死进程kill

  • kill终止进程
    – 通过进程ID终止进程
    – 选项 -9:强迫进程立即停止
    kill [选项] 进程ID

– 通过进程名称终止所有相关进程,支持通配符
killall 进程名称

端口号查询进程号(PID)netstat 或 lsof

  • 根据端口号查看进程号
    1.使用lsof命令
    lsof 是“list open files”的缩写,在linux系统中,一切可是为文件,网络连接也可视为文件,因此,我们可以通过lsof命令查看占用某个端口号的进程。

    示例:
    lsof -i :8080
    或者
    lsof -i | grep 8080
    参数解释:-i 是Internet的缩写,它表示选择网络地址与[i]表示的内容匹配的所有文件(网络连接)。
    2. 使用netstat命令
    netstat是用于打印网络连接、路由表、接口统计信息等。目前官方文档是这是一个过时的命令,因此推荐使用其他命令,如netstat大部分的功能都可以通过ip命令实现。在这里,我们仍给出使用netstat命令实现通过端口号查找进程号的示例。
    示例:

    netstat -nlp | grep 8080
    参数解释:
    -n --numeric的缩写,即通过数值展示ip地址
    -l --listening的缩写,只打印正在监听中的网络连接
    -p --program,打印相应端口号对应进程的进程号

进程监控TOP

将进程号为1303的系统赋值每20s刷新一次
top -d 20 -p 1303

每隔20s,一共执行3次,统计结果写入test.txt

top -d 20 -n 3 -b -> test.txt

实际问题应对

Ubuntu系统没有网络

虚拟机异常开启/关闭导致网络不通的状态在开机时被记录,导致没有网络。
解决步骤:
1、先停止网络服务
2、删掉状态记录
3、重启网络服务

sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值