Linux基础知识
常用操作命令
1.什么是Linux
1.1.Linux概述
Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。
1.2.Linux历史
Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统, 所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统。
1.3.Linux系统应用
服务器系统 Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等; 嵌入式系统 路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等, 高性能运算、计算密集型应用 Linux有强大的运算能力。 桌面应用系统 移动手持系统
1.4.Linux版本
Linux的版本分为两种:内核版本和发行版本; 内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号 ; 发行版本是一些组织和公司根据自己发行版的不同而自定的 ;
1.5.Linux主流版本
2.Linux安装
2.1.虚拟机安装
2.1.1.什么是虚拟机
虚拟机:一台虚拟的电脑,虚拟软件是一个可以使你在一台机器上同时运行二个或更多Windows、LINUX等系统。它可以模拟一个标准PC环境。这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器等。 虚拟机软件:
- VmWare :收费的.
- VirtualBox :免费的.【orale】
2.1.2.安装VMWare
2.1.2.1.下载VMWare
首先我们访问官网地址https://www.vmware.com/cn.html
注意:没有账号必须先注册才能下载。注册页面 https://my.vmware.com/cn/web/vmware/registration 注册完账号后进行以下步骤: 如图,选择下载专区,进入下面页面 选择Workstation Pro,进入新的页面 选择版本,然后根据自己的操作系统选择相应选项。 同样,选择需要的版本后点击立即下载。(这里默认选择的是最新版本)。
2.1.2.2.安装步骤
打开下载好的exe文件,弹出安装界面。 点击下一步,阅读协议并决定是否接受后再次点击下一步按钮。 选择安装路径,默认C盘,这个可自己选择(注:安装路径用英文) 这个看个人喜好选择。 下面几个页面直接点下一步直到进入安装
2.1.3.CentOS安装
2.1.3.1.CentOS镜像下载地址
centos7.6镜像下载地址:4.XG注意文件大小---->点击链接即可下载 https://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/
2.1.3.2.安装虚拟机
分区目录准备: / 14G /data 3G /boot 1G swap 2G 虚拟机硬件准备: CPU:2核 内存:2G 硬盘:20G 网卡:NAT模式 磁盘类型为SCSI 打开新建虚拟机向导,选择典型安装
设置ISO文件位置,同时还可以删除打印机硬件 设置完成,开启新建的虚拟机,用方向键选择Install CentOS7回车进入安装流程 选择语言English 设置时区DATE & TIME
选择Asia/Shanghai点击Done完成 选择SOFTWARE SELECTION设置安装类型,选择GNOME Desktop 选择INTALLATION DESTINATION设置硬盘分区,选择I will configure partitioning 选择Standard Partition点击Click here to create them automaticlly完成分区 点击Accept Change 选择NETWORK & HOSTNAME 设置Host name打开ON开关,点击Configure
选择Automatically connect to this network when it is available
点击Bengin installaction 设置root密码,创建普通用户 点击Reboot 点击LICENSE INFORMATION 选择I accept this license agrenment 点击右下角完成设置 登录系统
2.2.Linux目录结构
root管理员的home目录root 其他用户的home目录home目录中
3.Linux常用命令
3.1.切换目录
使用:
cd app 切换到app目录
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录
Pwd 查看当前目录
3.2.列出文件列表
ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。 格式:ls[参数] [路径或文件名] 常用: 在linux中以 . 开头的文件都是隐藏的文件
* ls
* ls -a 显示所有文件或目录(包含隐藏的文件)
* ls -l 缩写成ll
3.3.创建目录与移动目录
mkdir(make directory)命令可用来创建子目录。
mkdir app 在当前目录下创建app目录
mkdir –p app2/test 级联创建aap2以及test目
rmdir(remove directory)命令可用来删除“空”的子目录:
rmdir app 删除app目录
3.4.浏览文件
【cat、more、less】
cat
用于显示文件的内容。
格式:cat[参数]<文件名>
* cat yum.conf
more
一般用于要显示的内容会超过一个画面长度的情况。按空格键显示下一个画面。
回车显示下一行内容。
按 q 键退出查看。
* more yum.conf
* 空格显示下一页数据 回车显示下一行的数据
less
用法和more类似,不同的是less可以通过PgUp、PgDn键来控制。
* less yum.conf
* PgUp 和 PgDn 进行上下翻页.
【tail】
tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于ou显示文件后几行的内容。
用法:
tail -10 /etc/passwd ? 查看后10行数据
tail -f catalina.log ? 动态查看日志(*****)
ctrl+c 结束查看
3.5.文件操作
这时使用工具来连接linux进行操作 首先要获取虚拟机的IP地址,使用ifconfig命令,如果没有IP地址,则是没有设置开机时启动网上,设置操作如下
vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=DHCP
NAME=eth0
ONBOOT=yes
:wq
Reboot [重启]
使用putty.exe连接linux
修改文件内容: 如修改 data目录下的a.json
第一种:
vim /data/a.json
第二种:
Vi data/a.json
进入文件后按i键——修改文件
修改后按Esc键进行退出修改,再输入:wq!进行保存退出。
【rm】
touch a.txt 创建一个文件
rm 删除文件
用法:rm [选项]... 文件...
rm a.txt ? 删除a.txt文件
删除需要用户确认,y/n
rm 删除不询问
rm -f a.txt ? 不询问,直接删除
rm 删除目录
rm -r a ? 递归删除
不询问递归删除(慎用)
rm -rf a ? 不询问递归删除
rm -rf * ? 删除当前目录所有文件
【cp、mv】
cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
cp a.txt b.txt ? 将a.txt复制为b.txt文件
cp a.txt ../ ? 将a.txt文件复制到上一层目录中
mv 移动或者重命名
mv a.txt ../ ? 将a.txt文件移动到上一层目录中
mv a.txt b.txt ? 将a.txt文件重命名为b.txt
【tar】命令:(***** 打包或解压)
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。
下载7-ZIP软件进行打包压缩、解压
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
打包:
tar –cvf xxx.tar ./*
打包并且压缩:
tar –zcvf xxx.tar.gz ./*
解压
tar –xvf xxx.tar [解压当前目录]
tar -zxvf xxx.tar.gz -C /usr/aaa 【解压到指定目录】
上传文件:
上传a.tar文件命令rz -be
上传a.tar.gz压缩文件采用 rz
下载文件命令 sz a.tar
【grep】命令
查找符合条件的字符串。
用法: grep [选项]... PATTERN [FILE]...
示例:
grep lang anaconda-ks.cfg 在文件中查找lang
grep lang anaconda-ks.cfg –color 高亮显示
3.6.其它常用命令
【pwd】
显示当前所在目录
【touch】
创建一个空文件
* touch a.txt
【ll -h】
友好显示文件大小
【wget】
下载资料
* wget http://nginx.org/download/nginx-1.9.12.tar.gz
【查询进程命令】
查看后台进程
top
查看dotnet进程
ps -ef|grep dotnet
【杀死进程命令(PID是进程号)】
方式1:
Kill -9 PID
方式2:
Kill -s 9 PID
【查看目录大小命令】
如查询data目录
df -h /data
【赋予文件权限,如赋予a.server文件744权限】
ls -lh 显示权限
chomd -R 744 a.server
【在usr/bin/dotnet目录下,建立一个同步的环境文件链接】
如dotne文件,将dotnet环境文件复制到usr/share/dotnet目录
cp -rf /opt/ganwei/dotnet /usr/share/dotnet
在usr/bin/dotnet目录下,建立一个同步的环境文件链接
ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
【启动.dll文件进程的三种方式】
方式1:但是该操作会阻塞当前窗口,一旦窗口关闭,程序亦会被关闭,要将程序挂载后台运行;该命令一般用于调试时使用;(打印执行日志)
sudo dotnet GWHost1.dll
方式2:nohup 是一个托管运行程序的命令。上面命令将敢为网关后台运行,并且将网关的输出打印到 nohup.out 文件中(执行完毕会提示文件存放位置)。使用该命令会一直将敢为网关程序输出记录写入nohup.out,使nohup.out文件越来越大,导致存储空间不足;
sudo nohup dotnet GWHost1.dll &
方式3:该命令不需要保存敢为网关的程序输出记录。(无日志打印,推荐使用)
udo nohup dotnet GWHost1.dll >/dev/null 2>&1 &
4.vim编辑器
4.1.重定向输出>和>>
> 重定向输出,覆盖原有内容;
>> 重定向输出,又追加功能;
示例:
cat /etc/passwd > a.txt 将输出定向到a.txt中
cat /etc/passwd >> a.txt 输出并且追加
ifconfig > ifconfig.txt
4.2.管道
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
示例
ls --help | more 分页查询帮助信息
ps –ef | grep java 查询名称中包含java的进程
ifconfig | more
cat index.html | more
ps –ef | grep aio
4.3.&&执行命令
命令之间使用 && 连接,实现逻辑与的功能。
只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。
只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。
mkdir test && cd test
4.4.网络通讯命令
ifconfig 显示或设置网络设备。
ifconfig 显示网络设备
ifconfig eth0 up 启用eth0网卡
ifconfig eth0 down 停用eth0网卡
ping 探测网络是否通畅。
ping -c 4 192.168.0.1
netstat 查看网络端口。
netstat -an | grep 3306 查询3306端口占用情况
4.5.系统管理命令
date 显示或设置系统时间
date 显示当前系统时间
date -s “2014-01-01 10:10:10“ 设置系统时间
df 显示磁盘信息
df –h 友好显示大小
free 显示内存状态
free –m 以mb单位显示内存组昂头
top 显示,管理执行中的程序
clear 清屏幕
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
kill 杀掉某一进程【杀死tomcat,后面讲】
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
du 显示目录或文件的大小。
du –h 显示当前目录的大小
who 显示目前登入系统的用户信息。
hostname 查看当前主机名
修改:vi /etc/sysconfig/network
uname 显示系统信息。
uname -a 显示本机详细信息。
依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称
5.磁盘挂载
5.1.查看硬盘分区信息
使用使用 fdisk -l 查看分区信息(需注意硬盘名称)
5.2.硬盘分区
/dev/vdb 为新硬盘,使用 fdisk /dev/vdb 新建分区(只新建一个主分区) ·m- 帮助; n- 新建分区; p- 选择主分区; 1-设定一个分区; w- 保存并退出; ·t 更改分区类型; q 退出而不保存更改; d 删除分区
Command (m for help): m
Command (m for help): n
Select (default p): p
Partition number (1-4,default 1): 1
First sector (2048-1048575999,default 2048):
Last sector, +sector or +size{K,M,G} (2018-1048575999. default 104857599):
Command (m for help): w
查看分区
待完成后进行下一步操作。
5.3.硬盘格式化分区
使用 mkfs.ext4 /dev/sdb1 将新分区格式化为ext4的格式
查看格式化后的分区
5.4.挂载分区
使用分区的 UUID 永久挂载分区,查看 /dev/disk/by-uuid 目录, 找到 sdb1 的 UUID,然后将UUID复制。
输入vim /etc/fstab 命令进进行文件编辑。
在文件中添加:(直接复制上一个UUID,再将其进行修改,放置出错)
UUID=8f1ff112-df5b-4956-abce-080f5cf45a10 /data ext4 defaults 0 0
5.5.重启系统
5.6.查看硬盘分区系统
使用 fdisk -l 或进入根目录data 执行df -h 查看硬盘信息。
或
6.端口及防火墙知识
6.1.网络防火墙
防火墙需要先向客户了解需求,由对方技术人员决定是否部署防火墙以及部署方式。 如果客户使用了公有云或者私有云、集群,有可能在主机外存在网络防火墙/安全组,则不需要再在主机配置防火墙。
Linux 有两种 iptables 、 firewall 常用的防火墙,如果主机没有防火墙软件,则需要安装,只需要使用其中一种即可。
高版本的 Linux 系统使用了 firewall 取缔 iptables 作为防火墙软件,所以敢为网关应当使用 firewall 配置防火墙。
防火墙需要使用 root 权限配置。
Linux 端口说明:
类型 | 端口 | 说明 |
---|
公认端口 | 0 到 1023 | 一些常见的服务,FTP:21,http:80,https:443等 | 注册端口 | 1024 到 49151 | 一般的服务绑定端口 | 动态或私有端口 | 49152 到 65535 | 用于任意软件与任何其他的软件通信的端口数 |
6.2.安装防火墙 输入 firewalld 命令,如果服务器没有安装,会出现以下内容 root@ubuntu:/tmp/tmp# firewalld Command ‘firewalld’ not found, but can be installed with: 如果没任何提示或报错,则说明已经安装。 安装防火墙过程中需要联网。
ubuntu
apt install firewalld
# centos
yum install firewalld
# 其它 Linux 系统请自行查找方法
6.3.Firewalld
查看 firewall 服务状态
systemctl status firewalld
出现 Active: active (running)切高亮显示则表示是启动状态。
出现 Active: inactive (dead)灰色表示停止。
查看 firewall 的状态
firewall-cmd --state
开启、重启、关闭、firewalld.service 服务
service firewalld start
service firewalld restart
service firewalld stop
firewall-cmd --reload
查看防火墙规则
firewall-cmd --list-all
查询、开放、关闭端口
firewall-cmd --query-port=8080/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --permanent --remove-port=1000-2000/tcp
修改完毕需要重启防火墙。
一般来说,没使用防火墙禁用的端口无需开放即可访问,因此配置防火墙应当先将某些范围端口禁止。
如果你此时正在使用 ssh 连接到服务器,使用防火墙时请勿禁止 22 端口。
参数解释
firwall-cmd:是 Linux 提供的操作 firewall 的一个工具;
--permanent:表示设置为持久;
--add-port:标识添加的端口;
6.4.Iptables
高版本系统不应该再使用 iptables 作为防火墙,如果实际需要,以下命令会有帮助。
iptables 防火墙的基本操作
查看防火墙状态
service iptables status
停止防火墙
service iptables stop
启动防火墙
service iptables start
重启防火墙
service iptables restart
永久关闭防火墙
chkconfig iptables off
永久关闭后重启
chkconfig iptables on
6.5.Linux防火墙端口开通
查询是否已开
sudo firewall-cmd --query-port=44380/tcp
开启端口
sudo firewall-cmd --zone=public --add-port=44380/tcp --permanent
重启防火墙
sudo systemctl restart firewalld.service
重新载入配置
sudo firewall-cmd --reload
7.关机命令
shutdown 关机
reboot 重启
init 0~6
init 0:停机
init 1:单用户形式,只root进行维护
test用户不能使用init系统维护命令
init 2:多用户,不能使用net file system
init 3:完全多用户
init 5:图形化
init 4:安全模式
init 6:重启
关机
shutdown -h now 立刻关机
shutdown -h 5 5分钟后关机
poweroff 立刻关机
重启
shutdown -r now 立刻重启
shutdown -r 5 5分钟后重启
reboot 立刻重启
8.Linux用户与组
8.1.用户管理
useradd 添加一个用户
useradd test 添加test用户
useradd test2 -d /home/t2 指定用户home目录
passwd 设置、修改密码
passwd test 为test用户设置密码【mm20170706】
切换登录:
ssh -l test -p 22 192.168.19.128
su – 用户名
userdel 删除一个用户
userdel test 删除test用户(不会删除home目录)
userdel –r test 删除用户以及home目录
8.2.组管理
当在创建一个新用户user时,若没有指定他所属于的组,就建立一个和该用户同名的私有组
创建用户时也可以指定所在组
groupadd 创建组
groupadd public 创建一个名为public的组
useradd u1 –g public 创建用户指定组
groupdel 删除组,如果该组有用户成员,必须先删除用户才能删除组。
groupdel public
8.3.id、su命令
【id命令】
功能:查看一个用户的UID和GID
用法:id [选项]... [用户名]
直接使用id
直接使用id 用户名
【su命令】
功能:切换用户。
用法:su [选项]... [-] [用户 [参数]... ]
示例:
su - u1 切换到u1用户,并且将环境也切换到u1用户的环境(推荐使用)
【账户文件】
/etc/passwd 用户文件
/etc/shadow 密码文件
/etc/group 组信息文件
【用户文件】
root:x:0:0:root:/root:/bin/bash
账号名称: 在系统中是唯一的
用户密码: 此字段存放加密口令
用户标识码(User ID): 系统内部用它来标示用户
组标识码(Group ID): 系统内部用它来标识用户属性
用户相关信息: 例如用户全名等
用户目录: 用户登录系统后所进入的目录
用户环境: 用户工作的环境
【密码文件】
shadow文件中每条记录用冒号间隔的9个字段组成.
用户名:用户登录到系统时使用的名字,而且是惟一的
口令: 存放加密的口令
最后一次修改时间: 标识从某一时刻起到用户最后一次修改时间
最大时间间隔: 口令保持有效的最大天数,即多少天后必须修改口令
最小时间间隔: 再次修改口令之间的最小天数
警告时间:从系统开始警告到口令正式失效的天数
不活动时间: 口令过期少天后,该账号被禁用
失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
标志:未使用
【组文件】
root:x:0:
组名:用户所属组
组口令:一般不用
GID:组ID
用户列表:属于该组的所有用户
9.Linux权限命令
9.1.文件权限
9.2.Linux三种权限命令
普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每一个设备都看成是一个文件
9.3.文件类型标识
普通文件(-)
目录(d)
符号链接(l)
* 进入etc可以查看,相当于快捷方式
字符设备文件(c)
块设备文件(s)
套接字(s)
命名管道(p)
9.4.文件权限管理
chmod 变更文件或目录的权限。
chmod 755 a.txt
chmod -R 744 dll
chmod u=rwx,g=rx,o=rx a.txt
chmod 000 a.txt / chmod 777 a.txt
chown 变更文件或目录改文件所属用户和组
chown u1:public a.txt :变更当前的目录或文件的所属用户和组
chown -R u1:public dir :变更目录中的所有的子目录及文件的所属用户和组
10.Linux安装JDK
10.1.卸载OpenJDK
RPM 是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
执行命令查看:
rpm -qa 是查看所有安装的软件
--nodeps 不验证软件包的依赖关系
-e 删除软件
rpm –qa | grep java 查看和java相关的包
卸载OPENJDK
10.2.创建jdk安装路径
在/usr/local/ 创建文件夹java
mkdir java
10.3.上传安装文件到linux
可以采用Xshell、MobaXterm、FileZilla-3.7.3软件进行上传
安装软件后连接Linux
使用FileZilla-3.7.3上传
(1)先连接到linux
(2)把下面的几个文件,拖到root目录下
cd ~
ll
10.4.解压tar.gz
首先需要安装依赖:
yum install glibc.i686 【前提得能上网】
tar –xvf xxx.tar.gz –C /usr/local/java
10.5.配置环境变量
src记得去除
vim /etc/profile
JAVA_HOME=/usr/local/java/jdk1.7.0_72
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
重新加载配置文件:
source /etc/profile
11.Linux安装MySQL
11.1.卸载自带mysql
先查看有没有安装mysql
rpm -qa | grep mysql
删除
rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686
11.2.创建mysql安装路径
11.3.解压mysql
tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /usr/local/mysql
11.4.安装依赖(可选)
yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
yum update libstdc++-4.4.7-4.el6.x86_64
11.5.安装mysql服务端
rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
11.6.安装mysql客户端
rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
11.7.启动mysql的服务
service mysql status
service mysql start
11.8.登录mysql
msyql –u root -p
修改密码:
set password = password('123456');
11.9.设置mysql开机自启
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on
11.10.开启远程服务
登录mysql授权可以远程访问:
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
11.11.设置防火墙
3306端口放行 且将该设置添加到防火墙的规则中
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
12.Linux安装Tomcat
12.1.创建Tomcat
在/usr/local 下mkdir tomcat
12.2.Tomcat
tar –xvf xxx.tar.gz –C /usr/local/tomcat
12.3.设置防火墙
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save
12.4.启动Tomcat
进入到tomcat/bin
执行 ./startup.sh
关闭tomcat
执行 ./shutdown.sh
13.项目部署War包至Tomcat
使用eclipse把bos web项目打包成war
上传到linux的tomcat的webapps中
导入windows的mysql数据和数据
window导出mysqldump -uroot -p123456 bos > C:/Users/guoyongfeng/Desktop/bos.sql
linux导入mysql> source /root/bos.sql
查看tomcat的进程id
ps -ef | grep java
杀死tomcat
kill 3355
14.find基本语法参数
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
-newer file : 列出比file还要新的文件名
find /root -mtime 0
-user name : 列出文件所有者为name的文件;
-group name : 列出文件所属用户组为name的文件;
-uid n : 列出文件所有者为用户ID为n的文件;
-gid n : 列出文件所属用户组为用户组ID为n的文件
find /home/hadoop -user hadoop
-name filename :找出文件名为filename的文件
-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、 目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
find / -name passwd
find . -perm 0755
find . -size +12k
15.top命令
top是linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似与Windows的任务管理器
top [参数]
-b 批处理
-c 显示完整的治命令
-I 忽略失效过程
-s 保密模式
-S 累积模式
-i<时间> 设置间隔时间
-u<用户名> 指定用户名
-p<进程号> 指定进程
-n<次数> 循环显示的次数
16.网络管理
16.1.主机名配置
# vi /etc/sysconfig/network/
16.2.域名映射
/etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用。所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的ip地址。
16.3.网络通信命令
ifconfig:查看网卡信息
命令:ifconfig 或 ifconfig | more
ping:查看与某台机器的连接情况
命令:ping ip
netstat -an:查看当前系统端口
命令:netstat -an
搜索指定端口
命令:netstat -an | grep 8080
配置网络
命令:setup
重启网络
命令:service network restart
17.Linux系统信息命令
显示机器的处理器架构
显示机器的处理器架构
显示正在使用的内核版本
显示硬件系统部件 - (SMBIOS / DMI)
罗列一个磁盘的架构特性
磁盘上执行测试性读取操作
显示CPU info的信息
显示中断
校验内存使用
显示哪些swap被使用
显示内核的版本
显示网络适配器及统计
显示已加载的文件系统
罗列 PCI 设备
显示 USB 设备
显示系统日期
显示2007年的日历表
设置日期和时间 - 月日时分年.秒
将时间修改保存到 BIOS
18.打包与压缩文件
打包和压缩文件
解压一个叫做 'file1.bz2'的文件
压缩一个叫做 'file1' 的文件
解压一个叫做 'file1.gz'的文件
压缩一个叫做 'file1'的文件
最大程度压缩
创建一个叫做 'file1.rar' 的包
同时压缩 'file1', 'file2' 以及目录 'dir1'
解压rar包
解压rar包
创建一个非压缩的 tarball
创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
显示一个包中的内容
释放一个包
将压缩包释放到 /tmp目录下
创建一个bzip2格式的压缩包
解压一个bzip2格式的压缩包
创建一个gzip格式的压缩包
解压一个gzip格式的压缩包
创建一个zip格式的压缩包
将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包
RPM 包 - (Fedora, Redhat及类似系统)
安装一个rpm包
安装一个rpm包而忽略依赖关系警告
更新一个rpm包但不改变其配置文件
更新一个确定已经安装的rpm包
删除一个rpm包
显示系统中所有已经安装的rpm包
显示所有名称中包含 "httpd" 字样的rpm包
获取一个已安装包的特殊信息
显示一个组件的rpm包
显示一个已经安装的rpm包提供的文件列表
显示一个已经安装的rpm包提供的配置文件列表
显示与一个rpm包存在依赖关系的列表
显示一个rpm包所占的体积
显示在安装/删除期间所执行的脚本l
显示一个rpm包的修改历史
确认所给的文件由哪个rpm包所提供
显示由一个尚未安装的rpm包提供的文件列表
导入公钥数字证书
确认一个rpm包的完整性
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
检查系统中所有已安装的rpm包- 小心使用
确认一个rpm包还未安装
从一个rpm包运行可执行文件
从一个rpm源码安装一个构建好的包
从一个rpm源码构建一个 rpm 包
19.文件权限
文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消
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 显示特殊的属性
20.查看文件内容及处理文件
查看文件内容
cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文件的内容
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
head -2 file1 查看一个文件的前两行
tail -2 file1 查看一个文件的最后两行
tail -f /var/log/messages 实时查看被添加到一个文件中的内容
文本处理
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 比较两个文件的内容只删除两个文件共有的部分
字符设置和文件格式转换
dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX
unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS
recode ..HTML < page.txt > page.html 将一个文本文件转换成html
recode -l | more 显示所有允许的转换格式
文件系统分析
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文件系统的完整性
初始化一个文件系统
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文件系统
SWAP文件系统
mkswap /dev/hda3 创建一个swap文件系统
swapon /dev/hda3 启用一个新的swap文件系统
swapon /dev/hda2 /dev/hdb3 启用两个swap分区
备份
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内容
|