linux常见命令等总结-v1

这篇博客详细总结了Linux常用命令,包括文件查找、进程查看、权限管理、网络配置、软件安装卸载、Docker操作、Git使用、通配符、系统问题排查及解决、时间同步等,旨在帮助用户提升Linux操作技能。
摘要由CSDN通过智能技术生成

文章目录

  • 一、linux常见命令

1、统计
命令命令解释
ls -l | grep “^-” | wc -l# 统计当前目录下文件的个数(不包括目录)
ls -lR | grep “^-” | wc -l# 统计当前目录下文件的个数(包括子目录)
  • 2、查看
2.1 find查找文件
命令命令解释
find# 实际搜寻硬盘查询文件名称
find ./ -name “*.txt”# 查询当前文件夹后缀为.txt的文件
find / -type f -size +2G# 查询服务器上大于2G以上的文件
find / -name passwd# 查找文件名为passwd的文件
find . -perm 0755# 查找当前目录中文件权限的0755的文件
find . -size +12k# 查找当前目录中大于12KB的文件,注意c表示byte
2.2 字符串查找
find / -type f -name "*.sh" | xargs grep "1234567890"
find ./ -name "*.*" | xargs grep  "hello123456789"
grep -rn "hello123456789" ./
2.3 查看文件文本
命令命令解释
tail -n #‘tail -n’ 命令选项显示文件最后指定行数的内容。
cat file1# 从第一字节开始正向查看
tac file1# 从最后一个字节开始反向查看
more file1# 正向查看长文件
less file1# 反向查看长文件
head -2 file1# 查看文件前2行
tail -100f test.log#实时监控100行日志
cat -n test.log |grep “debug”# 查询关键字的日志
cat file_name.txt | more# 一页一页地查看一个大文件的内容
2.4 查看目录
ls -lts # 查看当前文件夹详细信息,并按照最新更新排序
ls -al  # 显示所有的文件属性
2.5 查看端口号等
命令命令解释备注
lsof -i:3306#查看3306端口使用情况lsof能看到pid和用户,可以找到哪个进程占用了这个端口
netstat -ntlp#查看当前所有tcp端口
netstat -atunlp |grep 80#查看所有80端口使用情况netstat无权限控制,lsof有权限控制,只能看到本用户
netstat -an | grep 3306#查看所有3306端口使用情况
netstat -anp | grep 8080 | grep LISTEN#显示监听
2.6 查看linux版本等
命令命令解释
uname -a#查看内核版本
cat /etc/issue#Ubuntu 18.04.1 LTS \n \l
cat /proc/version# 更详细信息
lsb_release -r | awk ‘{print $2}’# 获取linux系统版本 18.04
lsb_release -d | awk ‘{print $3}’# 获取linux系统版本 18.04.1
ulimit -u# 查看系统中的进程上限,属于软限制,是可以改变的
ulimit -u 5120# 将软限制改到5120
cat /proc/sys/kernel/pid_max# 最大进程的pid序号
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
2.7 查看服务器资源环境等相关信息
命令命令解释
du -h --max-depth=1 /opt# 查看文件大小
which# 查看可执行文件的位置
whereis app# 查看文件的位置
dpkg -s firefox# 检查一个软件包是否安装
cd /etc/init.d/# 查看服务器存在的服务
df –h# 查看磁盘情况
ps -A# 显示所有进程
ps -a# 显示终端中包括其它用户的所有进程
ps –aux
ps -ef | grep pid# 指定pid
top# 命令提供了运行中系统的动态实时视图
free# 命令 (显示系统内存),物理内存、交互区内存(swap)和内核缓冲区内存。
env# 查看环境变量
env $HOME# 查看某个环境变量
compgen -c# 打印出所有支持的命令列表
who am i# 查找自己所在的终端信息
who# 查看当前谁在使用该主机
history# 输出输入过的历史命令
ifconfig# 查看 ip 地址及接口信息
whatis cp# 查看一个 linux 命令的概要与用法
cal 2017# 显示日历
bc# 计算器模式
man & info# 帮助手册
locale# 显示当前字体
locale -a# 所有可用字体
LANG = en# 使用英文字体
locate          # 配合数据库查看文件位置 其实是“find             -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
3、切换路径
命令命令解释
cd -# 切换到上次访问路径
pwd# 打印当前目录
cd …# 上层目录
cd /# 根目录
cd ~# 跳到自己的 home 目录
4、查看进程等
ps -ef | grep uwsgi
ps -aux|grep ef95e87f82b9  查看容器进程
eg: 清理Monitor
    ps -ef | grep Monitor
    kill -9 ${PID}
5、重启、关机
命令命令解释
shutdown -h now &half & poweroff# 关机
reboot# 重启
clear# 清屏
6、新建、删除文件和文件夹
命令命令解释
mkdir dir1 dir# 创建文件夹
ln -s file1 link1# 创建一个指向文件或目录的软链接
rm 1.txt# 删除一个文件
rmdir drr1# 删除一个目录
rm -rf dir1# 强制删除文件夹
vim xx.txt# 编辑好后通过输入:wq保存
touch xx.txt# 创建一个文件
7、修改文件/文件夹权限、所属组、所有者
7.1 改变文件权限
chmod 777 gpu-update-xx.bin
chmod -R 777 dir1 
若要 rwx 属性则 4+2+1=7;# 读写执行
若要 rw- 属性则 4+2=6;  # 读写
若要 r-x 属性则 4+1=5。  # 读 执行
7.2 改变文件所属组
语法:chgrp [用户组] [文件或目录]
7.3 改变文件所有者
语法:chown [用户] [文件或目录]
chown "$USER":"$USER" /home/"$USER"/.docker -R
8、复制、移动
8.1 本地cp 复制文件/文件夹命令
命令命令解释
cp -r dir1 dir2# 复制目录的所有文件到另一个目录
cp -a file1 file2# 连同文件的所有特性把文件file1复制成文件file2
cp file1 file1 file3 dir# 将文件file1,file2,file3复制到目录dir中
cpio /home /dst# 拷贝/home的目录结构到另一个目录
8.2 远程scp复制文件/文件夹命令
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
scp -r local_folder remote_username@remote_ip:remote_folder
eg: scp -r test intellif@192.168.11.57:/home/intellif #本地文件夹上传到远程服务器
    scp -r intellif@192.168.11.57:/data/test /home/intellif #拉取远程服务器文件夹
8.3 mv 移动文件、目录或更名
mv file1 file2 file3 dir  # 把文件file1、file2、file3移动到目录dir中  
mv file1 file2  # 把文件file1重命名为file2  
9、解压缩
9.1 解压文件
命令命令解释
tar -xvf file.tar# 解压tar包
tar -xzvf file.tar.gz# 解压tar.gz
tar -xjvf file.tar.bz2# 解压tar.bz2
tar -xZvf file.tar.Z# 解压tar.Z
unrar e file.rar# 解压rar
unzip file.zip# 解压zip
9.2 压缩
tar -czf test.tar.gz ./* 压缩 
10、网络相关
10.1 重启网卡
service network restart        #root账户
/etc/init.d/networking restart #root账户
10.2 联网配置
(1) vi /etc/resolv.conf 添加 nameserver 114.114.114.114 
(2) 重启网络即可  /etc/init.d/networking restart
11、安装/卸载软件、库包
11.1 apt-get安装软件
apt-get clern
apt-get update 
apt-get install -y build-essential
apt-get install lsb-core -y
#软件源地址:/etc/apt/sources.list
11.2 apt-get卸载软件
apt-get --purge remove app-name
eg: 卸载旧版docker
    apt-get --purge remove docker-ce
    dpkg --list | grep docker #检查有没有卸载干净
11.3 pip安装python库包
命令命令解释
pip show pip#查看版本是否最新
python -m pip install --upgrade pip#升级pip
python -m pip install -U --force-reinstall pip#升级pip失败时尝试
python -m pip install --upgrade pip#升级pip失败时尝试
pip3 install numpy -i https://pypi.doubanio.com/simple#指定豆瓣源
12、其它常见命令
命令命令解释
dos2unix pack.sh ntp.sh#将dos格式转换成liunx格式
  • 二、docker和docker-compose相关命令

1、docker常见命令表格
命令名称docker命令
登录docker login -uadmin -p123456 192.168.11.135:5002
拉取镜像docker pull 192.168.11.135:5002/ic/ifaas-data:1.1
上传镜像docker push 192.168.11.135:5002/ic/ifaas-data:1.1
查看镜像docker images
删除镜像docker rmi 192.168.11.135:5002/ic/ifaas-data:1.1
镜像生成docker build -t 192.168.11.135:5002/ic/ifaas-data:1.1 .
镜像保存docker save 192.168.11.135:5002/ic/ifaas-data:1.1 > ifaas-data1.1.tar
镜像导入docker load -i < ifaas-data1.1.tar
修改tagdocker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
加载镜像docker load -i ***.tar
容器启动/停止/重启docker start/stop/restart ifaas-data
容器状态docker ps / docker ps –a
容器详情docker inspect ifaas-data
容器进程docker top ifaas-data
进入容器docker exec -it ifaas-data bash
复制文件docker cp ifaas-data:/opt/ifaas-data
创建镜像dockerfile #包含安装运行所需的环境、程序代码等
2、通过容器提交镜像以及推送镜像笔记
docker images #查看镜像已存在 docker.io/ubuntu 镜像
docker run -ti --name myubuntu -d docker.io/ubuntu #创建一个名为myubuntu的容器
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 从容器创建一个新的镜像。
# -a :提交的镜像作者;
# -c :使用Dockerfile指令来创建镜像;
# -m :提交时的说明文字;
# -p :在commit时,将容器暂停。
docker commit -a "wangshibo" -m "this is test" 651a8541a47d myubuntu:v1 #根据myubuntu容器提交镜像
docker images |grep myubuntu # 发现myubuntu:v1镜像已在本地服务器,对应IMAGE ID 为:6ce4aedd12cd 
docker tag 6ce4aedd12cd username/myubuntu:v1 # 需要将ubuntu:v1镜像改名,在名称前加上自己的docker hub的Docker ID,即username
docker push username/myubuntu:v1 #推送到镜像仓库里(需先登录镜像仓库地址 docker login)
3、dockerfile 制作镜像
#常用命令
FROM:指定基础镜像
LABEL:功能是为镜像指定标签
RUN:运行指定的命令
CMD:容器启动时要运行的命令
COPY:
ADD:
docker build  -t ${reg}/${image}:${tag} ${basepath} #编写dockerfile配置文件构建image
###################################### dockerfile 实例 ############################################
FROM 192.168.11.135:5002/middleware/arangodb:3.4.5
MAINTAINER wyt
ENV ARANGO_VERSION 3.4.5-1

# 健康检查
HEALTHCHECK --interval=10s --timeout=2s --retries=6 --start-period=60s CMD curl --silent --fail localhost:8529 || exit 1 

EXPOSE 8529

RUN mkdir -p /opt/conf
COPY conf /opt/conf
COPY start.sh /opt/
RUN chmod 777 /opt/start.sh && \
    chmod -R 777 /opt/conf

CMD ["arangod"]
ENTRYPOINT ["/opt/start.sh"]

4、docker-compose常见命令表格
命令名称docker-compose命令
构建应用并启动docker-compose up –d -f xxx.yml
重构应用并启动docker-compose up --build –d -f xxx.yml # 当前文件夹加的dockerfile
查看容器运行状态docker-compose ps
启动全部容器docker-compose start
重启全部容器docker-compose restart
重启指定容器docker-compose restart xxx
启动指定容器docker-compose start xxxx
停止容器docker-compose stop xxx
移除所有容器docker-compose rm
移除指定容器docker-compose rm xxx
查看日志docker-compose log
查看某容器100行日志docker-compose logs --tail 100 ifaas-data
  • 三、git相关常用命令

1. 拉取代码库
git clone http://用户名:密码@192.168.90.8/software/ifaas-platform.git
#eg:git clone git@192.168.90.8:software/ifaas-update.git
2、更新代码库
# 情况1,无冲突无修改情况:git pull
# 情况2:有冲突有修改情况: 
#(1)如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
   git stash
   git pull
   git stash pop
#(2)反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
   git clean -d -fx  表示:删除 一些 没有 git add 的 文件;
   git reset --hard
   git pull
3、删除远程分支
git push origin --delete <branchName>
git branch -D <BranchName>
4、Git以一个远程分支为基础新建一个远程分支
git checkout -b new_branch_name origin/old_remote_branch
eg: git checkout -b v1.5.0-stdemo800-1.4.0 origin/v1.5.0-stdemo800-1.3.0
# 修改代码后,再 提交到远程分支
git add  filename
git commit -m "add features"
git push origin new_branch_name
5、提交修改
step1: git add  .   或者 git add  -A
step2: git commit -m "add features"
step3: git push origin new_branch_name
6、回退命令
git reset --hard HEAD^     # 回退到上个版本
git reset --hard HEAD~3    # 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id # 退到/进到 指定commit的sha码
git push origin HEAD --force # 强推到远程 

image

  • 四、通配符

1、Linux 下命令有哪几种常使用的通配符
“?”可替代单个字符。
“*”可替代任意多个字符。
方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]
  • 五、job前端后台前后

1、常用命令
命令命令解释
&# eg: watch -n 10 sh test.sh & 表示每10s在后台执行一次test.sh脚本
nohup# 如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到)
ctrl + z# 将一个正在前台执行的命令放到后台,并且处于暂停状态。
jobs -l# 可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。
fg jobnumber# 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber
bg# 将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。
screen# 管理远程会话 https://www.ibm.com/developerworks/cn/linux/l-cn-screen/
2、kill进程
#法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
#法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
eg: ps -aux | grep "test.sh"  #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
kill pid 
kill-9 pid
Ctrl+c    # 前台进程的终止
disown -r # 将所有正在运行的进程移除。

https://www.cnblogs.com/kaituorensheng/p/3980334.html
  • 六、常遇问题和解决

1、如何选择 Linux 操作系统版本?
一般来讲,桌面用户首选 Ubuntu ;服务器首选 RHEL 或 CentOS ,两者中首选 CentOS 。
根据具体要求:
(1)安全性要求较高,则选择 Debian 或者 FreeBSD;
(2)需要使用数据库高级服务和电子邮件网络应用的用户可以选择 SUSE;
(3)想要新技术新功能可以选择 Feddora ,Feddora 是 RHEL 和 CentOS 的一个测试版和预发布版本。
【重点】根据现有状况,绝大多数互联网公司选择 CentOS 。现在比较常用的是 6 系列,现在市场占有大概一半左右。另外的原因是 CentOS 更侧重服务器领域,并且无版权约束。
CentOS 7 系列,也慢慢使用的会比较多了。
2、如何规划一台 Linux 主机,步骤是怎样?
确定机器是做什么用的,比如是做 WEB 、DB、还是游戏服务器。
总之,不同的用途,机器的配置会有所不同。
确定好之后,就要定系统需要怎么安装,默认安装哪些系统、分区怎么做。
需要优化系统的哪些参数,需要创建哪些用户等等的。
3、请问当用户反馈网站访问慢,你会如何处理?
3.1 有哪些方面的因素会导致网站网站访问慢?
(1)服务器出口带宽不够用
    本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。
    跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
(2)服务器负载过大,导致响应不过来
    可以从两个方面入手分析:
    分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
    如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
(3)数据库瓶颈
    如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
    如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
(4)网站开发代码没有优化好
    例如 SQL 语句没有优化,导致数据库读写相当耗时。
3.2 针对网站访问慢,怎么去排查?
(1)首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
    不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
(2)如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
(3)针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。  如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
(4)如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
3.3 怎么去解决?
(1)如果是出口带宽问题,那么可以申请加大出口带宽。
(2)如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
(3)如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
(4)申请购买 CDN 服务,加载用户的访问。
(5)如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务。

链接:https://juejin.im/post/6844904127059738637

4、安装软件出现报错
(1)E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
    # 出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。
# 解决方法:输入以下命令
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
# 之后再安装想装的包,即可解决
5、Linux系统如何设置开机自动运行脚本?
# 方法1:修改/etc/rc.d/rc.local文件,加权限:chmod +x /etc/rc.d/rc.local 
# 方法2:使用定时器crontab -e 
输入:reboot /home/alvin/auto_run_script.sh #保存退出 ctrl+x y 
# 方法3:使用systemd服务 创建一个 systemd 启动服务,并把它放置在 /etc/systemd/system/ 目录下。
$ vim gp.service
[Unit]
Description= Greenplum Database Cluster
[Service]
WorkingDirectory=/opt/gpdb
Environment="GP_PID_FILE_PATH=/bigdata/greenplum/master/gpseg-1/postmaster.pid"
ExecStart=/bin/bash -c "source /home/gpadmin/.bash_profile && /opt/gpdb/bin/gpstart -a"
ExecStop=/bin/echo y | gpstop -M fast
User=gpadmin
PIDFile=/bigdata/greenplum/master/gpseg-1/postmaster.pid
# TODO: wait for others server start
ExecStartPre=/bin/sleep 10
# restart when failure
Restart=on-failure
RestartSec=60s
[Install]
WantedBy=multi-user.target
  • 七、安装软件常用离线源(18.04.1)

1、docker升级到18.09.6
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
apt-cache madison docker-ce
apt-get install docker-ce=5:18.09.6~3-0~ubuntu-xenial (16ubuntu)
apt-get install docker-ce=5:18.09.6~3-0~ubuntu-bionic(18ubuntu)
2、获取新的nvidia-docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
apt-get update
apt-get install -d nvidia-docker2
3、指定获取ansible的最新版本源
curl -sL "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x93C4A3FD7BB9C367" | sudo apt-key add
deb https://launchpad.proxy.ustclug.org/ansible/ansible-2.7/ubuntu bionic main
apt-get update
apt-get install -d ansible
4、获取cuda10.0和驱动
卸载cuda10.1:  apt autoremove nvidia-container-runtime cuda-10-1
获取cuda源
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
add-apt-repository "deb https://mirrors.aliyun.com/nvidia-cuda/ubuntu1804/x86_64/ /"
apt-get install -d  cuda-10-0
5、18.04.1 离线源
cat > /etc/apt/sources.list <<EOF
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
EOF
  • 八、将安装压缩包转成二进制bin安装包(适用于ubuntu)

1、打包安装包脚本
#使用方法:package.sh {{ 包名 }}(如expect,多个包一起打包用空格分开)
#!/bin/bash

##############package.sh #########

set -xe
sudo apt clean all
sudo apt update
sudo apt install -y -d $*  #拉取deb包
[ ! -d /var/debs ] && sudo mkdir /var/debs
sudo rm -rf /var/debs/*
if [ "$(ls -A /var/cache/apt/archives)" ]; then
    sudo cp /var/cache/apt/archives/*.deb /var/debs/
else
    echo -e "\033[31mMake sure the package $* is or were not been installed \033[0m"
    exit 1
fi
sudo chmod 777 -R /var/debs
sudo sudo apt-get install dpkg-dev -y
cd /var
sudo dpkg-scanpackages debs/ /dev/null |gzip > /var/debs/Packages.gz
sudo tar -zcf packages.tgz debs/
2、将安装压缩包转成二进制安装包
使用方法:cat install.sh 压缩包路径 > package.bin
压缩包路径(如使用上述打包脚本,压缩包路径即为/var/package.tgz)
#!/bin/bash
###########install.sh############

#!/bin/bash
[ -d /var/debs ] && sudo mv /var/debs /var/debs.bak
# 将原始脚本截去,保留包内容
sed -n -e '1,/^exit 0$/!p' $0 > packages.tgz 2>/dev/null
sudo tar -zxf packages.tgz -C /var
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo chmod 777 /etc/apt/sources.list
sudo echo "deb file:/var debs/" > /etc/apt/sources.list
sudo apt update --allow-insecure-repositories
sudo DEBIAN_FRONTEND=noninteractive apt install -y 组件名称 --allow-unauthenticated
[ -f /etc/apt/sources.list.bak ] && sudo mv /etc/apt/sources.list.bak /etc/apt/sources.list
[ -d /var/debs.bak ] && sudo rm -rf /var/debs && sudo mv /var/debs.bak /var/debs
# 清理生成的包
sudo rm -rf packages.tgz
exit 0
  • 九、ubuntu修改时区和时间

1、常用命令
1.1 修改时区
date -R         # 查看时区
sudo tzselect   # 修改时区,根据提示操作
sudo cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime # 复制文件到/etc目录下
sudo ntpdate time.windows.com # 更新时间
1.2 修改时间
udo date -s MM/DD/YY    # 修改日期
sudo date -s hh:mm:ss   # 修改时间
sudo hwclock --systohc  # 在修改时间以后,修改硬件CMOS的时间,非常重要,如果没有这一步的话,后面时间还是不准
2、linux配置多台服务器系统时间一致
2.1 设置服务器A为时间服务器
sudo apt-get install --allow-unauthenticated -y ntp #安装ntp.bin
vi  /etc/ntp.conf
#最后一行加入下面一行,保存退出
server 127.127.1.0
#重启时间服务器
service ntpd restart
2.2 B服务器同步A服务器的时间
[root@bak-thinkee ~]# service ntpd stop
Shutting down ntpd:                                        [  OK  ]
#同步A服务器的时间
[root@bak-thinkee ~]# ntpdate  <A服务器IP>
24 Nov 17:19:01 ntpdate[17960]: step time server <A服务器IP> offset 25372.353604 sec
#查看B机器系统时间
[root@bak-thinkee ~]# date
Thu Nov 24 17:19:06 CST 2016
#查看B机器BIOS硬件时钟时间
[root@bak-thinkee ~]# clock  --show
Thu 24 Nov 2016 10:16:38 AM CST  -1.001796 seconds
#用下面命令也可以查看B机器BIOS硬件时钟时间
[root@bak-thinkee ~]# hwclock  --show 
Thu 24 Nov 2016 10:16:47 AM CST  -1.001800 seconds
#将系统时间刷入到BIOS时钟里面去
[root@bak-thinkee ~]# hwclock --systohc
#重新查看下硬件时钟时间
[root@bak-thinkee ~]# hwclock  --show 
Thu 24 Nov 2016 05:20:19 PM CST  -1.001660 seconds
[root@bak-thinkee ~]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值