您的位置:时时app平台注册网站 > 时时app平台注册网站 > 常用Linux命令、文件操作解压缩相关、Linux命令大

常用Linux命令、文件操作解压缩相关、Linux命令大

2019-11-21 02:48

apt方式安装

​ 安装deb包,类似yum安装,适用于Debian, Ubuntu 以及类似系统;

  • apt-get install aptitude :安装aptitude工具,实现依赖自动安装,依赖版本自动降级或升级
  • aptitude install 软件 :安装软件(推荐这种方式安装)

  • apt-cache search 软件 :搜索软件

  • apt-get install 软件 :安装软件
  • apt-get purge 软件 :卸载软件(包括配置文件,只删除软件purge换成remove)
  • apt-get upgrade :更新所有已安装的软件包
  • apt-get update :升级列表中的软件包
  • apt-get clean :从下载的软件包中清理缓存

4. 重定向

系统信息

  • arch 显示机器的处理器架构
  • uname -m 显示机器的处理器架构
  • uname -r 显示正在使用的内核版本
  • dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
  • hdparm -i /dev/hda 罗列一个磁盘的架构特性
  • hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
  • cat /proc/cpuinfo 显示CPU info的信息
  • cat /proc/interrupts 显示中断
  • cat /proc/meminfo 校验内存使用
  • cat /proc/swaps 显示哪些swap被使用
  • cat /proc/version 显示内核的版本
  • cat /proc/net/dev 显示网络适配器及统计
  • cat /proc/mounts 显示已加载的文件系统
  • lspci -tv 罗列 PCI 设备
  • lsusb -tv 显示 USB 设备
  • date 显示系统日期
  • cal 2007 显示2007年的日历表
  • date 041217002007.00 设置日期和时间 - 月日时分年.秒
  • clock -w 将时间修改保存到 BIOS-

创建时间:2018.7.3
编辑时间:2018.9.5

指定解析器

#! /usr/bin/env bash指定解析器为bash

系统操作

  • shutdown -h now 关闭系统
  • init 0 关闭系统
  • telinit 0 关闭系统
  • shutdown -h hours:minutes & 按预定时间关闭系统
  • shutdown -c 取消按预定时间关闭系统
  • shutdown -r now 重启
  • reboot 重启
  • logout 注销-

软件安装

  • 尽量用yum源(apt-get)安装,不行就rpm、deb包安装,能不手动编译的就不要手动编译;
  • dpkg只能安装已经下载到本地机器上的deb包. apt-get能在线下载并安装deb包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是dpkg工具所不具备的;
  • rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的;
  • yum、rpm安装文件分布在/usr的bin、lib、share不同目录,不用配置PATH,直接用命令,但可用命令卸载更新;
  • 手动编译软件,默认位置为/usr/local下不同子目录下,不用配置PATH直接用命令(手动指定安装路径需要加PATH),使得软件更新和删除变得很麻烦。编译安装的软件没有卸载命令,卸载就是把所有这个软件的文件删除。

6. linux进程

linux zip命令参数列表:

-a 将文件转成ASCII模式

-F 尝试修复损坏的压缩文件

-h 显示帮助界面

-m 将文件压缩之后,删除源文件

-n 特定字符串 不压缩具有特定字尾字符串的文件

-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间

-q 安静模式,在压缩的时候不显示指令的执行过程

-r 将指定的目录下的所有子目录以及文件一起处理

-S 包含系统文件和隐含文件

-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy

deb包安装

​ 适用于Debian, Ubuntu 以及类似系统;

  • dpkg -i package.deb :安装一个 deb 包
  • dpkg -r package_name :从系统删除一个 deb 包
  • dpkg -l |grep chrome :查询系统中所有已经安装的 deb 包
  • dpkg -L 软件名称 :查软件安装的文件

手动安装

文件系统分析

  • badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块
  • fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性
  • fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
  • e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
  • e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
  • fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
  • fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性
  • fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性
  • dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性-

文本处理

  • ls -l>file :输出重定向>(改变原来系统命令的默认执行方式):ls -l命令结果输出到file文件中,若存在,则覆盖

  • cat file1 >>file :输出重定向之cat命令结果输出追加到file文件

  • ls fileno 2>file : 2>表示重定向标准错误输出(文件不存在,报错信息保存至file文件);

  • cowsay <a.txt :重定向标准输入’命令<文件’表示将文件做为命令的输入(为从文件读数据作为输入)

  • sed -i '4,$d' a.txt :删除第四行到最后一行($表示最后一行)(sed可以增删改查文件内容)

  • sed -i '$a 增加的字符串' a.txt :在最后一行的下一行增加字符串
  • sed -i 's/old/new/g' a.txt :替换字符串;格式为sed 's/要替换的字符串/新的字符串/g' 修改的文件

  • vim 文件:编辑查看文件(同vi)

软件卸载

sudo apt-get remove 软件名删除软件
sudo apt-get purge 软件名 连配置文件一起删除

YUM 软件包升级器 - (Fedora, RedHat及类似系统)

  • yum install package_name 下载并安装一个rpm包

  • yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系

  • yum update package_name.rpm 更新当前系统中所有安装的rpm包

  • yum update package_name 更新一个rpm包

  • yum remove package_name 删除一个rpm包

  • yum list 列出当前系统中安装的所有包

  • yum search package_name 在rpm仓库中搜寻软件包

  • yum clean packages 清理rpm缓存删除下载的包

  • yum clean headers 删除所有头文件

  • yum clean all 删除所有缓存的包和头文件-

  • 返回顶部索引 ^-

  • DEB 包 (Debian, Ubuntu 以及类似系统)

  • dpkg -i package.deb 安装/更新一个 deb 包

  • dpkg -r package_name 从系统删除一个 deb 包

  • dpkg -l 显示系统中所有已经安装的 deb 包

  • dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包

  • dpkg -s package_name 获得已经安装在系统中一个特殊包的信息

  • dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表

  • dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表

  • dpkg -S /bin/ping 确认所给的文件由哪个deb包提供-

文件和目录

​ cd:是Change Directory的缩写,用来切换工作目录,语法:cd [相对或绝对路径或特殊符号]

  • cd :进入该用户的主目录 ~(root用户为/root,其他用户为/home/用户名)
  • cd .. :返回上一级目录(注意要空格)
  • cd - :返回上次所在目录
  • cd / :返回根目录 (绝对路径)
  • cd ./目录1/目录2 :进入当前目录下的子目录(相对路径)
  • pwd :显示工作路径(Print Working Directory 的缩写)

    ​ls:是List的缩写,用于列出目录下的文件,语法:ls [选项][目录或文件名]

  • ls -a :列出文件下所有的文件,包括以“.“开头的隐藏文件

  • **ls -lh *.log** :列出文件的详细信息(.log结尾,*为通配符代表任意多个字符)
  • file 文件或目录 :显示文件的类型(目录、text、zip、shell脚本等)

  • mkdir dir1 :创建目录(dir1)(mkdir为make directory的缩写)

  • mkdir -p ./dir1/dir2 :递归创建目录(-p:父目录不存在时,同时建立)
  • touch a.txt :创建文件a.txt

    ​rm:可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉; 语法:rm (选项)(参数)(注:如果参数中含有目录,则必须加上-r选项);

  • rm 文件 :删除文件

  • rm -r 目录或文件 :删除目录(及目录下所有文件)(非空也可以)
  • rm -rf 目录或文件 :强制删除,如:rm -rf * 为删除当前目录下所有文件

    ​mv:是move的缩写,可以用来剪切移动文件、目录或者将文件改名;
    语法:mv 源文件 目标文件(改名)或目录(移动);

  • mv a b :移动或者重命名一个文件或者目录(存在即移动目录或覆盖文件,不存在即改名)

  • mv /opt/git/g /opt/a :移动g到opt目录下并改名为a(a目录不存在,若存在则为移动g到a目录下)
  • mv -t ./test a.txt b.txt :移动多个文件到某目录下

    ​cp:复制文件或目录;cp命令可以将单个或多个文件复制到一个已经存在的目录下;
    常用:cp -ai 文件或目录 目标目录;

  • cp -ai /opt/abc /opt/git/ :复制abc目录(或文件)到git目录下(选项a表示文件的属性也复制、目录下所有文件都复制;i表示覆盖前询问)

    ​ln:link的缩写,用于建立硬(软)链接,常用于软件安装时建软链接(类似快捷方式)到PATH;
    语法:ln [-s] 源文件 目标文件

  • ln -s /opt/a.txt /opt/git/ :对文件创建软链接(快捷方式不改名还是a.txt)

  • ln -s /opt/a.txt /opt/git/b :(快捷方式改名为b)(下面的一样可以改名)
  • ln -s /opt/mulu /opt/git/ :对目录创建软链接
  • ln /opt/a.txt /opt/git/ :对文件创建硬链接

后台执行

执行命令 &(回车)后台执行程序
Ctrl Z暂停进程 bg后台运行
‘fg’回到前台

文本处理

  • cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT

  • cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中

  • cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中

  • grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"

  • grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇

  • grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行

  • grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"

  • sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"

  • sed '/^$/d' example.txt 从example.txt文件中删除所有空白行

  • sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行

  • echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容

  • sed -e '1d' result.txt 从文件example.txt 中排除第一行

  • sed -n '/stringa1/p' 查看只包含词汇 "string1"的行

  • sed -e 's/ *$//' example.txt 删除每一行最后的空白字符

  • sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部

  • sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容

  • sed -n '5p;5q' example.txt 查看第5行

  • sed -e 's/00*/0/g' example.txt 用单个零替换多个零

  • cat -n file1 标示文件的行数

  • cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行

  • echo a b c | awk '{print $1}' 查看一行第一栏

  • echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏

  • paste file1 file2 合并两个文件或两栏的内容

  • paste -d ' ' file1 file2 合并两个文件或两栏的内容,中间用" "区分

  • sort file1 file2 排序两个文件的内容

  • sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)

  • sort file1 file2 | uniq -u 删除交集,留下其他的行

  • sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)

  • comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容

  • comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容

  • comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分-

压缩、解压和打包备份

​ 单纯tar仅为打包(多个文件包成一个大文件),加上参数-j(bzip2格式.bz2)、-z(gzip格式.gz)可以备份、压缩(-c)、解压(-x),备份一般比压缩多加参数-p(保留原本文件的权限与属性),-C可以指定解压到特定目录;bzip2、gzip只能对单一文件压缩;

  • file 文件名 :查文件类型(可看是用哪一种方式压缩的)

  • tar -zxvf a.tar.gz -C ./test :解压tar.gz到当前目录下的test目录

  • tar -zcvf /opt/c.tar.gz ./a/ :压缩tar.gz(把当前目录下的a目录及目录下所有文件压缩为 /opt/目录下的c.tar.gz)

  • tar -jxvf a.tar.bz2 :解压tar.bz2(到当前目录)

  • tar -jcvf c.tar.bz2 ./a/ :压缩tar.bz2(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.tar.gz2)

  • unzip a.zip :解压zip(到当前目录)

  • zip -r c.zip ./a/ :压缩zip(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.zip

  • bzip2 -k file1 : 压缩一个 'file1' 的文件(-k表示保留源文件)(bzip2格式,比gzip好)

  • bzip2 -d -k file1.bz2 : 解压一个叫做 'file1.bz2'的文件

  • gzip file1 : 压缩一个叫做 'file1'的文件(gzip格式)(不能保留源文件)

  • gzip -9 file1 : 最大程度压缩
  • gzip -d file1.gz : 解压缩一个叫做 'file1'的文件

几个重定向的方式

字符设置和文件格式转换

  • dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX
  • unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS
  • recode ..HTML < page.txt > page.html 将一个文本文件转换成html
  • recode -l | more 显示所有允许的转换格式-

磁盘管理

  • df -h :显示磁盘的空间使用情况 及挂载点
  • df -h /var/log :(显示log所在分区(挂载点)、目录所在磁盘及可用的磁盘容量)

  • du -sm /var/log/* | sort -rn : 根据占用磁盘空间大小排序(MB)某目录下文件和目录大小

  • fdisk -l :查所有分区及总容量,加/dev/sda为查硬盘a的分区)

  • fdisk /dev/sdb :对硬盘sdb进行分区

  • mount /dev/sda1 /mnt :硬盘sda1挂载到/mnt目录(mount 装置文件名 挂载点)

  • mount -t cifs -o username=luolanguo,password=win用户账号密码,vers=3.0 //10.2.1.178/G /mnt/usb :远程linux 共享挂载windows的U盘,G为U盘共享名,需设置U盘共享
  • mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :挂载iso文件
  • umount /dev/sda1 :取消挂载(umount 装置文件名或挂载点)

cat files.txt|uniq
uniq是去除重复命令,上面语句的意思是将cat语句的输出结果去重之后输出。
cat files.txt|grep txt
grep代表查找,意思就是只输出txt的文件名。
cat file.txt|sort
将输出结果进行排序

RPM 包 - (Fedora, Redhat及类似系统)

  • rpm -ivh package.rpm 安装一个rpm包
  • rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
  • rpm -U package.rpm 更新一个rpm包但不改变其配置文件
  • rpm -F package.rpm 更新一个确定已经安装的rpm包
  • rpm -e package_name.rpm 删除一个rpm包
  • rpm -qa 显示系统中所有已经安装的rpm包
  • rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包
  • rpm -qi package_name 获取一个已安装包的特殊信息
  • rpm -qg "System Environment/Daemons" 显示一个组件的rpm包
  • rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
  • rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
  • rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表
  • rpm -q package_name --whatprovides 显示一个rpm包所占的体积
  • rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l
  • rpm -q package_name --changelog 显示一个rpm包的修改历史
  • rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
  • rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
  • rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
  • rpm --checksig package.rpm 确认一个rpm包的完整性
  • rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
  • rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
  • rpm -Va 检查系统中所有已安装的rpm包- 小心使用
  • rpm -Vp package.rpm 确认一个rpm包还未安装
  • rpm2cpio package.rpm | cpio --extract --make-directories bin 从一个rpm包运行可执行文件
  • rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm 从一个rpm源码安装一个构建好的包
  • rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包-

系统性能

  • top :动态实时显示cpu、内存、进程等使用情况(类似windows下的任务管理器)
  • top -d 2 -p 7427 :-d为画面更新的秒数,默认5秒,-p为指定进程pid的信息
  • vmstat 2 10 :每隔2秒采集一次服务器状态,采集10次(查看内存、io读写状态、cpu)
  • free -h :查看系统内存及虚拟内存使用情况
  • df -h :显示磁盘的空间使用情况
  • iostat :可查io读写、cpu使用情况
  • sar -u 3 5 :查看cpu使用情况(3秒一次,共5次)
  • sar -d 2 3 :评估磁盘性能
  • ps aux|grep firefox :获取火狐的进程号(PID)(可查看进程占用cpu、内存百分比及进程触发指令的路径)
  • kill -9 进程号 :强制杀死进程

deb包

dpkg -i ***.deb安装deb包
dpkg -l 列出系统上所有安装过的deb包

包括文件和文件夹

系统信息

  • who am i :查看当前使用的终端
  • whow : 查看所有终端
  • uname -m :显示机器的处理器架构(如x86_64)
  • cat /proc/version :查看linux版本信息
  • uname -r :显示正在使用的内核版本
  • rpm -qa | grep kernel-devel :查看kernel-devel版本(安装软件时编译内核用,故需要保持内核版本一致性)
  • yum install -y "kernel-devel-uname-r == $(uname -r)":安装和Linux内核版本匹配的kernel-devel
  • date :显示系统日期 (date %Y/%m/%d : 显示效果如2018/01/01)
  • date 070314592018.00 :设置时间(格式为月日时分年.秒 )
  • clock -w :将时间修改保存到 BIOS
  • cal 2018 :显示2018年的日历表
  • clear :清空命令行
  • ifconfig :显示或设置网卡(查ip等)(类似windows中ipconfig)
  • ping -c 3 www.baidu.com :测试百度与本机的连接情况( -c 3表示测试3次)
  • cat /proc/cpuinfo :显示CPU的信息
  • cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l :查看物理CPU个数
  • cat /proc/cpuinfo| grep "cpu cores"| uniq :查看每个物理CPU的核数
  • cat /proc/cpuinfo| grep "processor"| wc -l :查看逻辑CPU个数即线程数

打包

zip -r <文件名> <相应的目录>

备份

  • dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份
  • dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份
  • restore -if /tmp/home0.bak 还原一个交互式备份
  • rsync -rogpav --delete /home /tmp 同步两边的目录
  • rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync
  • rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录
  • rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录
  • dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作
  • dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件
  • tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作
  • ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容
  • ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录
  • tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接
  • find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录
  • find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包
  • dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作
  • dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容

本文特点

  • 授之以渔:了解命令学习方法、用途:不再死记硬背,拒绝漫无目的;

  • 准确无误:所有命令执行通过(环境为centos7),拒绝复制粘贴;

  • 实用性高:命令多为实际工作中用到的,实例讲解,拒绝纯理论;

  • 条理清晰:分类归纳,快速找到想要的命令,拒绝天马行空;

  • 总结性强:只列常用语法,易错情况强调,拒绝照搬照套。

kill命令

kill -9 PID强制退出进程

查看文件内容

  • cat file1 从第一个字节开始正向查看文件的内容
  • tac file1 从最后一行开始反向查看一个文件的内容
  • more file1 查看一个长文件的内容
  • less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
  • head -2 file1 查看一个文件的前两行
  • tail -2 file1 查看一个文件的最后两行
  • tail -f /var/log/messages 实时查看被添加到一个文件中的内容-

文件权限

  • chmod [-R] 777文件或目录 :设置权限(chmod a rwx a=chmod ugo rwx a=chmod 777 a)

    ​注: r(read)对应4,w(write)对应2,x(execute)执行对应1;
    -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改)

  • chmod [{ugoa}{ -=}{rwx}][文件或目录] :如chmod u-w,g x,o=r test.txt为user(拥有者)去掉写权限,group(所属组)加上执行权限,other(其他人)权限等于只读;

  • chown [-R] admin:root /opt/ :变更文件及目录的拥有者和所属组(-R递归处理所有文件和文件夹,admin为拥有者,root为所属者)

常用指令

在linux系统中,一切都是文件

拷贝copy:cp file dir

移动move:mv file1 file2

重命名:rename:mv(与移动相同)

删除:remove

参数-r表示对目录进行操作
例如:删除一个文件夹:rm -r <目录>

创建文件:touch a.txt

创建目录:mkdri dir

查看文件:cat file

查看文件类型:file a.txt

查看当前目录下的文件:ls
ls的参数-a:显示隐藏文件

mkdir和touch创建的文件或文件夹前加“.”表示创建隐藏的文件或文件夹。

less 分页查看文件

文件的权限 - 使用 " " 设置权限,使用 "-" 用于取消

  • ls -lh 显示权限
  • ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
  • chmod ugo rwx directory1 设置目录的所有人以及其他人、写的权限
  • chmod go-rwx directory1 删除群组对目录的读写执行权限
  • 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 位-

前言

tar.gz压缩

tar zcvf ***.tar.gz

磁盘空间

  • df -h 显示已经挂载的分区列表
  • ls -lSr |more 以尺寸大小排列文件和目录
  • du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
  • du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
  • rpm -q -a --qf '{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
  • dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)-

源代码(Source)包

9. 安装软件

打包和压缩文件

  • 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'
  • rar x file1.rar 解压rar包
  • unrar x file1.rar 解压rar包
  • 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 -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
  • tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
  • tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
  • zip file1.zip file1 创建一个zip格式的压缩包
  • zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
  • unzip file1.zip 解压一个zip格式压缩包-

学前理论

  • linux主要特征 :一切且文件(目录、硬盘等都是文件);硬件都在/dev 目录,如硬盘、U盘为/dev/sd[a-d]; /dev/sr0(/dev/cdrom)是光驱的设备名(df命令查看),为设备文件,代表的是光驱本身,得把这个设备挂载到目录下(一般为/mnt)(文件系统的临时挂载点),才能对设备上的文件进行读写等操作;

  • 不懂的命令 :man 命令(查用法、全称),只记得关键词,可用man -k 关键词;

  • Linux命令常用结构Command [-option] [argument]
    Command:即是要运行的命令的本身,说白了就是一个软件(程序);
    Option:是选项(可选),选项是控制命令运行状态和行为的(可多个选项一起,如df -hT);
    Argument:是参数(可选),是命令要操作对象如文件、路径、数据、目录等;
    在指令的第一部分按[tab]键一下为[命令补全],两下为所有命令选择,在非第一部分按[tab]键两下为[文件补全];

  • linux命令区分大小写

for循环

用脚本给文件加上.txt后缀
在rename.sh中

#! /usr/bin/bash
cd $1
for file in a b c
do
  mv $file $file.txt
done

执行

touch a b c
./rename.sh .

其中“.”是参数,表示当前目录
但是这样,要是文件名不是abc,那我们的脚本就失效了。
键盘左上角,esc键下方有一个“`”符,在脚本中用“ `”扩起来的语句执行的结果可以当作脚本语句使用
可以把rename.sh改成如下

#! /usr/bin/bash

cd $1
echo I am in `pwd`

for file in `ls`
do
  mv $file $file.txt
done

执行的时候参数也是一个目录
./rename.sh .

文件搜索

  • find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
  • find / -user user1 搜索属于用户 'user1' 的文件和目录
  • find /home/user1 -name *.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
  • find /usr/bin -type f -atime 100 搜索在过去100天内未被使用过的执行文件
  • find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
  • find / -name *.rpm -exec chmod 755 '{}' ; 搜索以 '.rpm' 结尾的文件并定义其权限
  • find / -xdev -name *.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
  • locate *.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
  • whereis halt 显示一个二进制文件、源码或man的位置
  • which halt 显示一个二进制文件或可执行文件的完整路径-

作者:蓝藻(罗蓝国度)

chmod

'chmod 110110110 a.txt'
每三位数以此代表用户 群组 游客的权限,三位数中的每位数代表读权限,写权限,执行权限。
chmod 666 a.txt
将每个三位数转化成对应的八进制
'chmod u x a.txt'

挂载一个文件系统

  • mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
  • umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
  • fuser -km /mnt/hda2 当设备繁忙时强制卸载
  • umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
  • mount /dev/fd0 /mnt/floppy 挂载一个软盘
  • mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
  • mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
  • mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
  • mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
  • mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
  • mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
  • mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享

编译安装

​ 源代码包(一般有install文件)如hello-2.2.tar.bz2,下载复制到/opt;

  • tar -jxvf hello-2.2.tar.bz2 :解压
  • ./configure --prefix=/opt/软件目录名称 :为编译做好准备,加上 prefix 手动指定安装路径
  • make :编译
  • make install :安装
  • make clean :删除安装时产生的临时文件
  • vim /etc/profile export PATH=$PATH:/opt/目录/bin :手动指定安装路径需要加path
  • hello :执行软件:看INSTALL和README文件(是否源码包、如何安装、执行都看这两个)
  • rm -rf 软件目录名称 :卸载软件

转载请注明出处:
持续更新,建议收藏

评论发邮箱可免费赠送带目录电子挡

管道符:“|”

  • 查找文件

    • find / -name filename.txt
    • 根据名称查找/目录下的filename.txt文件。
  • 查看一个程序是否运行

    • ps –ef|grep tomcat
    • 查看所有有关tomcat的进程
  • 终止线程

    • kill -9 19979
    • 终止线程号位19979的线程
  • 查看文件,包含隐藏文件

    • ls -al
  • 当前工作目录

    • pwd
  • 复制文件包括其子文件到自定目录

    • cp -r sourceFolder targetFolder
  • 创建目录

    • mkdir newfolder
  • 删除目录

    • rmdir deleteEmptyFolder
  • 删除文件包括其子文件

    • rm -rf deleteFile
  • 移动文件

    • mv /temp/movefile /targetFolder
    • 扩展重命名 mv oldNameFile newNameFile
  • 切换用户

    • su -username
  • 修改文件权限

    • chmod 777 file.java
    • file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行
  • 压缩文件

    • tar -czf test.tar.gz /test1 /test2
  • 列出压缩文件列表

    • tar -tzf test.tar.gz
  • 解压文件

    • tar -xvzf test.tar.gz
  • 查看文件头10行

    • head -n 10 example.txt
  • 查看文件尾10行

    • tail -n 10 example.txt
  • 查看日志文件

    • tail -f exmaple.log
    • 这个命令会自动显示新增内容,屏幕只显示10行内容的。
  • 启动Vi编辑器

    • vi

yum安装

​ 在线下载并安装rpm包,适用于CentOS、Fedora、RedHat及类似系统

  • yum install epel-releas :安装第三方yum源EPEL(企业版 Linux 附加软件包的简称)
  • yum repolist enabled :显示可用的源仓库(/etc/yum.repos.d/目录下配置)
  • yum install yum-fastestmirror :自动选择最快的yum源
  • yum list installed |grep java :列出已安装的软件(查看已安装的JDK)
  • yum remove java-1.8.0-openjdk.x86_64 :卸载软件(卸载JDK)
  • yum list java* :列出已安装和可安装的软件(查看yum库中的JDK包)
  • yum install [-y] java-1.8.0-openjdk :安装软件JDK(-y自动安装)(推荐这种方式安装)
  • yum check-update [kernel] :列出所有可更新的软件(检查更新kernel)
  • yum update tomcat :更新软件(可所有)
  • rpm -ql 软件名称 :查询yum安装路径(软件名称可通过rpm -qa|grep java)
  • yum info kernel :查看软件(kernel)的信息
  • yum clean all :(清除缓存,使最新的yum配置生效)

tar.bz2压缩

tar jcvf ***.tar.bz2

文件

  • .tar

    • 解包:tar xvf FileName.tar
    • 打包:tar cvf FileName.tar DirName
    • 注:tar是打包,不是压缩!
  • .gz

    • 解压1:gunzip FileName.gz
    • 解压2:gzip -d FileName.gz
    • 压缩:gzip FileName
  • .tar.gz 和 .tgz

    • 解压:tar -zxvf FileName.tar.gz
    • 压缩:tar -zcvf FileName.tar.gz DirName
  • .bz2

    • 解压1:bzip2 -d FileName.bz2
    • 解压2:bunzip2 FileName.bz2
    • 压缩: bzip2 -z FileName
  • .tar.bz2

    • 解压:tar jxvf FileName.tar.bz2
    • 压缩:tar jcvf FileName.tar.bz2 DirName
  • .bz

    • 解压1:bzip2 -d FileName.bz
    • 解压2:bunzip2 FileName.bz
    • 压缩:韬哥亲测没有
  • .tar.bz

    • 解压:tar jxvf FileName.tar.bz
    • 压缩:韬哥亲测没有
  • .Z

    • 解压:uncompress FileName.Z
    • 压缩:compress FileName
  • .tar.Z

    • 解压:tar Zxvf FileName.tar.Z
    • 压缩:tar Zcvf FileName.tar.Z DirName
  • .zip

    • 解压:unzip FileName.zip
    • 压缩:zip FileName.zip DirName
  • .rar

    • 解压:rar x FileName.rar
    • 压缩:rar a FileName.rar DirName
  • .lha

    • 解压:lha -e FileName.lha
    • 压缩:lha -a FileName.lha FileName
  • .rpm

    • 解包:rpm2cpio FileName.rpm | cpio -div
  • .deb

    • 解包:ar p FileName.deb data.tar.gz | tar zxf -
  • .tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea

    • 解压:sEx x FileName.*

    • 压缩:sEx a FileName.* FileName

    • sEx只是调用相关程序,本身并无压缩、解压功能,你想多了,不是万能的!

解压即用

​ 大多数非开源的商业软件都采取这种办法;

​ 二进制(Binaries)包如apache-jmeter-3.3.tgz,下载复制解压到/opt,然后然后将该软件的 bin 目录加入到 PATH 中即可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin);

2. 文件系统的树结构

  • linux有不同的分区sda1,sda2,但是只有一个文件系统树,在文件系统树的对应文件夹挂载分区。(挂载点)。

  • 根目录不是root目录。

绝对路径:以斜杠/开头,从根目录往下一级一级走。

相对路径:相对于当前工作目录而产生的路径。

以“.”开头,一个点表示当前目录,两个点表示上一级目录。
pwd打印当前目录
cd改变当前工作目录。
cd -:返回上一个当前目录
**cd **:去根目录
cd ..:到上级目录

文件夹

tar -zcvf /home/xahot.tar.gz /xahot

tar -zcvf 打包后生成的文件名全路径要打包的目录

例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。

zip 压缩方法

压缩当前的文件夹 zip -r ./xahot.zip ./*

-r表示递归

zip [参数] [打包后的文件名] [打包的目录路径]

解压 unzip xahot.zip 不解释linux zip命令的基本用法是:

学前须知

  • 适用人群:开发、测试、运维
  • 文档用途:linux入门学习、命令备忘录、面试复习
  • 学习途径:书籍(鸟哥的Linux私房菜)、视频:慕课网等、百度谷歌搜索、qq群等
  • 学习环境:虚拟机VirtualBox centos7
  • 学习记录:多动手,多联想,多记录,特别是遇到问题时
  • 遇到问题:百度谷歌搜索、系统日志(/var/log/)、qq群

作用

将一个命令的输出作为另一个命令的输入

SWAP文件系统

  • mkswap /dev/hda3 创建一个swap文件系统
  • swapon /dev/hda3 启用一个新的swap文件系统
  • swapon /dev/hda2 /dev/hdb3 启用两个swap分区-

软件自己的模块/包管理器

​ 如python:系统的源中不可能包含该软件的所有模块; 系统的源中该软件的模块的更新要远远滞后于最新版本;手动安装python,并用Python 自带的 pip 安装模块(类似yum);

  • pip install redis :安装python软件包redis
  • pip unstall redis :卸载
  • pip show --files redis :pip查看已安装的包
  • pip list --outdated :检查更新

打包和压缩

unzip语 法:

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目 录>][-x <文件>] 或 unzip [-Z]

补充说明:unzip为.zip压缩文件的解压缩程序。

unzip参数

  • -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
  • -f 更新现有的文件。
  • -l 显示压缩文件内所包含的文件。
  • -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
  • -t 检查压缩文件是否正确。
  • -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
  • -v 执行是时显示详细的信息。
  • -z 仅显示压缩文件的备注文字。
  • -a 对文本文件进行必要的字符转换。
  • -b 不要对文本文件进行字符转换。
  • -C 压缩文件中的文件名称区分大小写。
  • -j 不处理压缩文件中原有的目录路径。
  • -L 将压缩文件中的全部文件名改为小写。
  • -M 将输出结果送到more程序处理。
  • -n 解压缩时不要覆盖原有的文件。
  • -o 不必先询问用户,unzip执行后覆盖原有文件。
  • -P<密码> 使用zip的密码选项。
  • -q 执行时不显示任何信息。
  • -s 将文件名中的空白字符转换为底线字符。
  • -V 保留VMS的文件版本信息。
  • -X 解压缩时同时回存文件原来的UID/GID。
  • [.zip文件] 指定.zip压缩文件。
  • [文件] 指定要处理.zip压缩文件中的哪些文件。
  • -d<目录> 指定文件解压缩后所要存储的目录。
  • -x<文件> 指定不要处理.zip压缩文件中的哪些文件。
  • -Z unzip -Z等于执行zipinfo指令

如果出现这个提示:-bash: zip: command not found 不能执行ZIP压缩,是因为没有安装ZIP,运行下这条安装命令即可 yum install zip

yum操作在下面的命令大全有专栏。

文件查找

  • locate a.txt :在系统全局范围内查找文件名包含a.txt字样的文件(比find快);

​locate:原理是updatedb会把文件系统中的信息存放到数据库databases中(但一般一天才执行一次,所以locate找不到新创建的文件,需要先手动执行updatedb,再执行locate),locate从数据库中读数据;

​ find:在目录结构中搜索文件,并执行指定的操作
语法:find pathname -options [-print -exec ...]
pathname :为 find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录(find查找范围为目标目录及其子目录所有文件及目录);
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格;
-print: find命令将匹配的文件输出到标准输出;

  • find /home -mtime -2 :在/home下查最近2*24小时内改动过的文件
  • find . -size 100M :在当前目录及子目录下查找大于100M的文件
  • find . -type f :f表示文件类型为普通文件(b/d/c/p/l/f 分别为块设备、目录、字符设备、管道、符号链接、普通文件)
  • find . -mtime 2 -exec rm {} ; :查出更改时间在2*24小时以前的文件并删除它**
  • **find . -name '*.log' -exec grep -i hello {} ; -print** :在当前目录及子目录下查出文件名后缀为.log的文件并且该文件内容包含了hello字样并打印,-exec 命令 {} 表示对查出文件操作,-i表示不区分大小写;
  • **find . -name '*.log'|grep hello** :在当前目录及子目录下查出文件名后缀为.log的文件并且文件名包含了hello字样(grep用来处理字符串);

  • grep -i 'HELLO' . -r -n :在当前目录及子目录下查找文件内容中包含hello的文件并显示文件路径(-i表示忽略大小写)

  • which java :在环境变量$PATH设置的目录里查找符合条件的文件,并显示路径(查询运行文件所在路径)

  • whereis java :查看安装的软件的所有的文件路径

三个重要的文件

在linux中一切的东西都是文件:文件,目录,甚至硬件都是文件。

三个重要文件:文件描述

  • 0为标准输入文件stdin
  • 1为标准输出文件stdout
  • 2为标准错误输出文件stderr。后面两者不会输入到文件,而是在屏幕输出。

APT 软件工具 (Debian, Ubuntu 以及类似系统)

  • apt-get install package_name 安装/更新一个 deb 包
  • apt-cdrom install package_name 从光盘安装/更新一个 deb 包
  • apt-get update 升级列表中的软件包
  • apt-get upgrade 升级所有已安装的软件
  • apt-get remove package_name 从系统删除一个deb包
  • apt-get check 确认依赖的软件仓库正确
  • apt-get clean 从下载的软件包中清理缓存
  • apt-cache search searched-package 返回包含所要搜索字符串的软件包名称-

rpm包手动下载安装

​ yum中没有时用,适用于CentOS、Fedora、RedHat及类似系统;

  • wget -P /opt https://网址 :下载到/opt目录

  • rpm -ivh wps-office-版本.x86_64.rpm :安装rpm包(包要先下载)(要先装依赖包)

  • rpm -e wps-office :卸载软件(注意不要软件名不要版本号)
  • rpm -qa |grep wps :查看安装的rpm包
  • rpm -ql 软件名称 :查看rpm包安装路径(软件名称可通过rpm -qa|grep java)

位置参数

$0 $1 $2分别代表程序名和第1第2个参数
$#代表一共有多少个参数
例:

#! /usr/bin/bash
Number of arguments:$#
The program name is:$0
The first argument is:$1

脚本中的语句不在当前shell执行
如果要在当前shell执行,就
source **.sh

初学Linux,记录资料,以备留存,亲手测试了一部分,有的正确,不正确的也改了,没有全部测试,如有误,望大神们不吝赐教!

二进制(Binaries)包

tar.bz2解压

tar jxvf ***.tar.bz2

初始化一个文件系统

  • mkfs /dev/hda1 在hda1分区创建一个文件系统
  • mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统
  • mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3的文件系统
  • mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统
  • fdformat -n /dev/fd0 格式化一个软盘
  • mkswap /dev/hda3 创建一个swap文件系统-

开关机

  • sync :把内存中的数据写到磁盘中(关机、重启前都需先执行sync)
  • shutdown -r nowreboot :立刻重启
  • shutdown -h now :立刻关机
  • shutdown -h 20:00 :预定时间关闭系统(晚上8点关机,如果现在超过8点,则明晚8点)
  • shutdown -h 10 :预定时间关闭系统(10分钟后关机)
  • shutdown -c :取消按预定时间关闭系统

标准输入重定向

执行语句 < 文件名

文件的特殊属性 - 使用 " " 设置权限,使用 "-" 用于取消

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

查看文件的内容

  • cat [-n] 文件名 :显示文件内容,连行号一起显示

  • less 文件名 :一页一页的显示文件内容(搜索翻页同man命令)

  • head [-n] 文件名 :显示文件头n行内容,n指定显示多少行

  • tail [-nf] 文件名:显示文件尾几行内容,n指定显示多少行,f用于实时追踪文件的所有更新,常用于查阅正在改变的日志文件(如tail -f -n 3 a.log 表示开始显示最后3行,并在文件更新时实时追加显示,没有-n默认10行)

  • sed -n '2,$p' ab :显示第二行到最后一行;

  • sed -n '/搜索的关键词/p' a.txt :显示包括关键词所在行

  • less a.txt|grep git :显示关键词所在行,管道符”|”它只能处理由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后传递给下一个命令,作为标准的输入;

  • cat /etc/passwd |awk -F ':' '{print $1}' :显示第一列

把可执行文件链接到PATH中

ln -s 可执行文件目录 ~/bin/链接名字
以后只要输入链接名字就能执行文件了。

用户和群组

  • groupadd group_name 创建一个新用户组
  • groupdel group_name 删除一个用户组
  • groupmod -n new_group_name old_group_name 重命名一个用户组
  • useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
  • useradd user1 创建一个新用户
  • userdel -r user1 删除一个用户 ( '-r' 排除主目录)
  • usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
  • passwd 修改口令
  • passwd user1 修改一个用户的口令 (只允许root执行)
  • chage -E 2005-12-31 user1 设置用户口令的失效期限
  • pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
  • grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
  • newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组-

用户与权限

  • useradd 用户名 :创建用户
  • userdel -r 用户名 :删除用户:(-r表示把用户的主目录一起删除)
  • usermod -g 组名 用户名 :修改用户的组

  • passwd [ludf] 用户名 :用户改自己密码,不需要输入用户名,选项-d:指定空口令,-l:禁用某用户,-u解禁某用户,-f:强迫用户下次登录时修改口令

  • groupadd 组名 :创建用户组

  • groupdel 用户组 :删除组
  • groupmod -n 新组名 旧组名 :修改用户组名字

  • su - 用户名:完整的切换到一个用户环境(相当于登录)(建议用这个)(退出用户:exit)

  • su 用户名 :切换到用户的身份(环境变量等没变,导致很多命令要加上绝对路径才能执行)
  • sudo 命令 :以root的身份执行命令(输入用户自己的密码,而su为输入要切换用户的密码,普通用户需设置/etc/sudoers才可用sudo)

输出重定向符:

把输出打印到文件中
执行语句 > 文件名
重定向符默认是先清空后输出的,如果要文件在后面添加输出则用“>>“
执行语句 >> 文件名
另一种连接方式:
cat file1 file2会连续输file1和file2,所以只需要把结果给file就好了
cat file1 file2>file

文件和目录

  • cd /home 进入 '/ home' 目录'
  • cd .. 返回上一级目录
  • cd ../.. 返回上两级目录
  • cd 进入个人的主目录
  • cd ~user1 进入个人的主目录
  • cd - 返回上次所在的目录
  • pwd 显示工作路径
  • ls 查看目录中的文件
  • ls -F 查看目录中的文件
  • ls -l 显示文件和目录的详细资料
  • ls -a 显示隐藏文件
  • ls [0-9] 显示包含数字的文件名和目录名
  • tree 显示文件和目录由根目录开始的树形结构
  • lstree 显示文件和目录由根目录开始的树形结构
  • mkdir dir1 创建一个叫做 'dir1' 的目录'
  • mkdir dir1 dir2 同时创建两个目录
  • mkdir -p /tmp/dir1/dir2 创建一个目录树
  • rm -f file1 删除一个叫做 'file1' 的文件'
  • rmdir dir1 删除一个叫做 'dir1' 的目录'
  • rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
  • rm -rf dir1 dir2 同时删除两个目录及它们的内容
  • mv dir1 new_dir 重命名/移动 一个目录
  • cp file1 file2 复制一个文件
  • cp dir/* . 复制一个目录下的所有文件到当前工作目录
  • cp -a /tmp/dir1 . 复制一个目录到当前工作目录
  • cp -a dir1 dir2 复制一个目录
  • ln -s file1 lnk1 创建一个指向文件或目录的软链接
  • ln file1 lnk1 创建一个指向文件或目录的物理链接
  • touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
  • file file1 outputs the mime type of the file as text
  • iconv -l 列出已知的编码
  • iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
  • find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" ; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)-

5. 文件权限

r读权限,w写权限,x执行权限
ls -l 文件名查看文件的权限
对于目录来说,写权限代表我们能够创建删除重命名里面的文件。
对于目录回来说,执行权限代表能够cd它。

gzip 命令

gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

减少文件大小有两个明显的好处

1. 可以减少存储空间2. 二是通过网络传输文件时,可以减少传输的时间。

在终端输入gzip,会提示你:

gzip: compressed data not written to a terminal. Use -f to force compression.意思是:gzip:压缩数据写入一个终端。使用- f强制压缩。

语法:gzip -h,系统会告诉你

  • -c, --stdout write on standard output, keep original files unchanged
  • -d, --decompress decompress
  • -f, --force force overwrite of output file and compress links
  • -h, --help give this help
  • -l, --list list compressed file contents
  • -L, --license display software license
  • -n, --no-name do not save or restore the original name and time stamp
  • -N, --name save or restore the original name and time stamp
  • -q, --quiet suppress all warnings
  • -r, --recursive operate recursively on directories
  • -S, --suffix=SUF use suffix SUF on compressed files
  • -t, --test test compressed file integrity
  • -v, --verbose verbose mode
  • -V, --version display version number
  • -1, --fast compress faster
  • -9, --best compress better
  • --rsyncable Make rsync-friendly archive

各位看官,我就不翻译了,实在写的我蛋疼

指令实例:

gzip *% 把当前目录下的每个文件压缩成 .gz 文件。

gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。

gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。

gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。

软件仓库安装

sudo apt-get install 软件名安装仓库中的软件

8. 网络操作

ssh 用户名@网址连接服务器
在本地及其上运行ssh-keygen
在主目录上打开.ssh,cd ~/.ssh
执行ls就会看到id_rsa id_rsa.pub
有.pub后缀的是公钥,另一个是私钥。把.pub放到/home/peter/.ssh/authorized_keys
命令:ssh-copy-id 用户名@地址然后一路回车
这样子以后再ssh就不用输入密码啦。

解压

unzip <文件名>

获取进程号

PID=Process ID
'ps'查看进程
‘ps aux’查看当前所有进程情况

tar.gz解压

tar zxvf ***.tat.gz

3.文件系统的操作指令:

shell编程

find

find 目录显示对应目录下的所有文件
'find 目录 |grep ***'显示所有对应目录下包含****的文件
只想看到文件:后面加-type f
只想看到目录:后面加-type d

find . -type f -exec grep -ni hello '{}' ';' -print

错误输出重定向

默认情况错误输出不能重定向到文件中,如果非要加,则:
错误语句 2>文件名
2代表标准错误输出文件stderr

locate

locate 字符打印出所有含有输入字符的文件。并定位到目录

安装软件的三个步骤:

在源代码文件夹里执行
./confirm
make
sudo make install

通配符

<输入> *:自动补全对应的文件名

1. 命令组成:

命令本身 参数 执行位置

7. linux搜索

本文由时时app平台注册网站发布于时时app平台注册网站,转载请注明出处:常用Linux命令、文件操作解压缩相关、Linux命令大

关键词: