文章目录
- 命令行工具
- 重定向(>、>>)
- 链接(ln)
- 搜索(文本)(grep)
- 文本大小(wc)
- 搜索(文件)(find)
- 拷贝(cp)
- 文件类型(file)
- 归档/解档
- 压缩/解压(gzip)
- 压缩/解压(bzip2)
- 压缩/解压(zip、unzip)
- 查看命令位置(which)
- 查看用户角色(whoami)
- 查看登录用户(who、w)
- 退出登录用户(exit)
- 切换用户(su)
- 添加、删除组帐号(groupadd、groupdel)
- 修改用户所在的组(usermod)
- 添加用户帐号(useradd)
- 删除用户(userdel)
- 查询用户登录情况(last)
- 修改文件权限(chmod)
- 修改文件所有者(chown)
- 修改文件所属组(chgrp)
- 查看日历(cal)
- 显示或设置时间(date)
- 查看进程信息(ps)
- 查看进程信息(动态)(top)
- 终止进程(kill)
- 程序后台(&、ctrl+z、jobs、fg)
- 关机重启(reboot、shutdown、init)
- 字符界面和图形界面切换(init 3、init 5、 Ctrl+Alt+F2、Ctrl+Alt+F7)
- 检测磁盘空间(df)
- 检测目录所占磁盘空间(du)
- 应用软件安装和卸载(rpm、apt)
- 查看或配置网卡信息(ifconfig)
- 测试远程主机连通性(ping)
- 网络路由设置(route)
- 监控网络状态(netstat)
- linux命令行快捷键
- 远程操作
命令行工具
重定向(>、>>)
> 覆盖
>> 在后面添加
链接(ln)
ln 硬链接
ln -s 软链接
搜索(文本)(grep)
grep [查询条件] [查询文件]
-v 求反
-n 显示匹配以及行号
-i 忽略大小写
文本大小(wc)
搜索(文件)(find)
find
find ./ -name test.sh 查找当前目录下所有名为test.sh的文件
find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件
find ./ -name "[A-Z]*" 查找当前目录下所有以下写字母开头的文件
find /tmp -size 2M 查找在/tmp目录下等于2M的文件
find /tmp -size +2M 查找在/tmp目录下大于2M的文件
find /tmp -size -2M 查找在/tmp目录下小于2M的文件
find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
find ./ -perm 0777 查找当前目录下权限为777的文件或目录
拷贝(cp)
cp
-a 复制目录时使用,它保留链接、文件屬性,并递归复制目录。(简而言之,保留文件原有属性)
-f 删除已存在的目标文件且不提示
-i 交互式
-r 递归复制该目录下所有子目录和文件(目标文件必须为一个目录名)
-v 显示拷贝进度
文件类型(file)
归档/解档
文章:zip gzip bzip2 & tar 压缩/打包 四大金刚
tar时Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar 使用格式:
tar [参数] 打包文件名 文件
(tar命令很特殊,其参数前面可以使用“-”,也可以不使用。)
-c 生成档案文件,创建打包文件
-v 列出归档/解档的详细过程,显示进度
-f 指定档案文件名称,f后面一定时.tar文件,所以必须放选项最后
-t 列出档案中包含的文件
-x 解开档案文件
-z 压缩/解压(参考gzip)
-j 压缩/解压(参考bzip2)
-C 接解压缩的目录
压缩/解压(gzip)
tar与gzip命令结合使用实现文件打包、压缩。
tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz
在tar命令中增加一个选项(-z)可以调用gzip实现一个压缩的功能,实行一个先打包后压缩的过程。
gzip使用格式如下:
gzip [选项] 被压缩文件
-d 解压
-r 压缩所有子目录
压缩/解压(bzip2)
tar与bzip2命令结合使用实现文件打包/压缩(用法和gzip一样)
tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2
在tar命令中增加一个选项(-j)可以调用bzip2实现一个压缩的功能,实行一个先打包后压缩的过程。
压缩用法:tar jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解压用法:tar jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
压缩/解压(zip、unzip)
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
查看命令位置(which)
查看用户角色(whoami)
查看登录用户(who、w)
who命令用于查看当前所有登录系统的用户信息
-m/am 只显示运行who命令的用户名、登录终端和登录时间
-q/--count 只显示用户的登录帐号和登录用户的数量
-u 在登录时间后显示该用户最后一次操作到当前的时间间隔
-u/--heading 显示列标题
w命令也可以查看登录当前系统的用户信息。与who命令相比,w命令的功能更强大,它不但可以显示当前有那些用户登录到系统,还可以显示这些用户正在进行的操作,并给出更加详细和科学的统计数据。
w命令的格式如下:
w [选项] [用户名]
如果w命令携带用户名,则只显示指定用户的信息,否则显示当前所有登录用户的信息。
-h 只显示运行who命令的用户名、登录终端和登录时间
-l 显示详细信息列表,此为预设值
-s 使用短列表,不显示用户登录时间、JCPU和PCPU时间
-u 忽略执行程序的名称,以及该程序的PCPU时间
退出登录用户(exit)
切换用户(su)
su后面可以家“-”。 su - 命令可以在切换到对应的用户时将当前的工作目录自动转换到切换后的用户主目录
添加、删除组帐号(groupadd、groupdel)
cat /etc/group 查看用户组
修改用户所在的组(usermod)
使用方法:usermod -g 用户组 用户名
添加用户帐号(useradd)
在Unix/Linux中添加用户帐号可以使用adduser或useradd命令,因为adduser命令时指向useradd命令的一个链接
useradd命令的使用格式如下:
useradd [参数] 新建用户帐号
-d <dirname> 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名为主目录
-m 自动建立目录
-g 指定组名称
删除用户(userdel)
userdel abc 删除abc用户,但不会自动删除用户的主目录
user -r abc 删除用户,同时删除用户的主目录
查询用户登录情况(last)
不管时哪位用户从哪里登录,管理员都可以通过last命令查出,以及是否有人非法登录
修改文件权限(chmod)
chmod u/g/o/a +/-/= rwx 文件
[u/g/o/a]
u user 表示该文件的所有者
g grou 表示该文件的所有属于同一组(group)者
o other 表示其他意外的人
a all 表示三者都是
[+/-/=]
+ 增加权限
- 撤销权限
= 设定权限
[r/w/x/-]
r 读取权限,数字代号为“4”
w 写入权限,数字代号为“2”
x 执行权限,数字代号为“1”
- 不具有任何权限,数字代号为“0”
修改文件所有者(chown)
chown 所有者 文件
chown 所有者:所属组 文件
修改文件所属组(chgrp)
查看日历(cal)
-y 显示整年日历
显示或设置时间(date)
查看进程信息(ps)
进程时一个具有一定独立功能的程序,他是操作系统动态执行的基本单元。
ps命令可以查看进程的详细状况,常用选项如下:(选项可以不加“-”)
-a 显示终端上的所有进程,包括其他用户的进程
-u 显示进程的详细状态
-x 显示没有控制终端的进程
-w 显示加宽,以便显示更多的信息
-r 只显示正在运行的进程
查看进程信息(动态)(top)
终止进程(kill)
kill命令指定进程号的进程,需要配合ps使用
使用格式
kill [-signal] pid
程序后台(&、ctrl+z、jobs、fg)
信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。
后台程序(&、jobs、fg)
- 用户可以将一个前台执行的程序调入后台执行,方法为:命令&
- 如果程序已经在执行,ctrl+z可以将程序调入后台
- jobs查看后台运行程序
- fg编号(编号为通过jobs查看的编号),将后台运行程序调出到前台
关机重启(reboot、shutdown、init)
reboot
shutdown -r now
shutdown -h now
shutdown -h 20:25
shutdown -h +10 十分钟后自动关机
init 0 关机
init 6 重启
字符界面和图形界面切换(init 3、init 5、 Ctrl+Alt+F2、Ctrl+Alt+F7)
在redhat平台下,可通过命令进行切换:
init 3 切换到字符界面
init 5 切换到图形界面
通过快捷键切换(适用大部分平台)
Ctrl+Alt+F2 切换到字符界面
Ctrl+Alt+F7 切换到图形界面
检测磁盘空间(df)
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁块的使用情况
-a 显示所有文件系统的磁盘使用情况
-m 以1024字节为单位显示
-t <fs> 显示各指定文件系统的磁盘空间使用情况
-T 显示文件系统
检测目录所占磁盘空间(du)
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du命令的使用格式如下:
du [选项] 目录或文件名
-a 递归显示指定目录中各文件和子目录中文件占用的数据块
-s 显示指定文件或目录占用情况
-b 以字节为单位显示磁盘占用情况
-l 计算所有文件大小,对硬链接文件计算多次
应用软件安装和卸载(rpm、apt)
在Linux操作系统下,几乎所有的软件均通过RPM进行安装、卸载及管理等操作。RPM的全称为Redhat Package Manager,是由Redhat公司提出的,用于管理Linux下软件包的软件。它是一种软件打包发行并且实现自动安装的程序,需要用rpm程序安装的软件包,其后缀时.rpm,并可以对这种程序包进行安装、卸载和维护。
rpm命令的使用格式如下:
rpm [选项] [软件包名]
-i 指定安装的软件包
-h 使用“#”显示详细的安装过程及进度
-v 显示安装的详细信息
-q 查询系统是否已经安装指定的软件包
-a 查看系统已安装的所有软件包
-e 卸载软件包
--nodeps 配合-e参数使用,强制卸载不检查依赖项
--force 强制操作,如强制安装删除等
如果时在ubuntu平台,软件的安装可以通过互联网在线安装,更加方便快捷:
sudo apt-get update
sudo apt-get install xxx
sudo apt-get remove xxx
查看或配置网卡信息(ifconfig)
eth0 网络接口名称
Link encap 链路封装协议
Hwaddr 往来接口的MAC地址
Inet addr IP地址
Bcast 广播地址
Mask 子网掩码
UP 往来接口状态标识,UP已经启用,DOWN已经停用
BROADCAST 广播标识,标识网络接口是否支持广播
RUNNING 传输标识,标识网络接口是否已经开始传输分组数据
MULTICAST 多播标识,标识网络接口是否支持多播
MTU,Metric MTU:最大传输单位,单位:字节。Metric:度量值,用于RIP建立网络路由用
RX bytes 接收数据字节统计
TX bytes 发送数据字节统计
我们可以通过ifconfig配置网络参数
只有root才能用ifconfig配置参数,其他用户只能查看网络配置
ifconfig网络接口名称 [地址协议类型] [address] [参数]
地址协议类型如:inet(IPv4),inet6(IPv6)等
如:ifconfig eth0 inet 192.168.10.254 netmask 255.255.255.0 up
常用参数:
-a 显示所有往来接口状态
inet [IP地址] 设置IP地址
netmask [子网掩码] 设置子网掩码
up 启用网络接口
down 关闭网络接口
ifconfig配置的往来参数在内存中,计算机重新启动之后就失效了,如果需要持久有效,就需要修改网络接口的配置文件:
redhat修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
IPADDR=IP地址
GATEWAY=默认网关
ubuntu修改/etc/NetworkManager/system-connections/Wired connection1文件
[ipv4]
method=manual
addresses1=IP地址;24;默认网关
测试远程主机连通性(ping)
ping通过ICMP协议向远程主机发送ECHO_REQUEST请求,期望主机回复ECHO_REPLY消息
通过ping命令可以检查是否与远程主机建立了TCP/IP连接
使用方法:ping [参数] 远程主机IP地址
-a 每次响应时都发出声音提示
-A 表示实际往返响应时间为间隔,连续发送消息
-f 连续不断发送消息,不管是否收到响应
-n 只显示主机IP,不需要把IP解析成主机名
-c 发送指定次数数据信息后停止,ping -c 5 102.168.10.254
-i 每次发送消息时间间隔,默认1s,ping -i 2 192.168.10.254
-s 分组数据大小,默认56字节
-w 以秒为单的超时值,一旦超时,就立即停止
网络路由设置(route)
route可以增加,修改,显示路由信息,使用格式如下:
route [-V] [-A family] add default [gw 默认网关地址] [[dev interface]]
add 增加路由信息
del 删除路由信息
-v 显示路由信息
-A 指定网络协议inet(IPv4)、inet6(IPv6)
gw 指定默认网关地址
dev 指定网络接口
监控网络状态(netstat)
netstat命令监控网络状态,包括接口设置,IP路由,各种网络协议的统计,netstat输出信息说明如下:
Proto 协议,如:tcp、udp
Recv-Q 尚未读取的数据字节数
Local_address 本地主机地址与端口号
Foreign_address 远程主机与端口号
State 网络链接状态
RefCnt 引用计数,表示加接到相应套接字的进程数量
Flags 标志字段
Type 套接字类型,如:(SOCK_DGRAM、SOCK_STERAM、SOCK_RAW)
State 套接字状态
Path 套接字路径名
netstat常用命令参数:
-a 列出所有端口
-i 显示网络接口列表
-at 所有tcp端口
-au 所有udp端口
-r 当前路由状态
-p 输出中显示PID和进程名称,可以与其他开关一起使用,如:-pt
linux命令行快捷键
- 光标、最前、最后
ctrl+a
ctrl+e - 删除光标行
ctrl+u
ctrl+w
ctrl+y - 删除光标位
ctrl+h
ctrl+d - 光标移动
ctrl+b
ctrl+f - 历史命令行
ctrl+p
ctrl+n
远程操作
SSH介绍
SSH(Secure Shell)由IETF的网络工作小组(Network Working Group)所制定;
SSH为建立在应用层和传输层基础上的安全协议。
SSH是目前比较可靠,专为远程登录回话和其他网络服务提供安全的协议。常用于远程登录,以及用户之间进行资料拷贝。
利用SSH协议可以有效防止远程管理过程种的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在使用时可你不网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台(包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台)都可运行SSH。
SSH服务端
sudo apt-get install openssh-server
查看是否安装ssh服务
dpkg -l | grep ssh
查看是否运行
systemctl status ssh
或者ps -e | grep ssh
SSH客户端
操作命令:ssh -l username hostip
-l username 被远程登录的用户名
hostip 被远程登录的ip地址
像上面控制台打印 “System restart required” 一般重启就好。
参考:解决 Ubuntu 每次登录都提示 System Restart Required 问题
FTP介绍
FTP(File Transfer Protocol)文件传输协议用于Internet上的控制文件的双向传输。
Ubuntu上的FTP是vsftpd(very secure FTP daemon),安全性是它的一个最大的特点。vsftpd是一个UNIX类操作系统上运行的服务器的名字,它可以在诸如Linux、BSD、Solaris、HP-UNIX等系统上面运行,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的FTP服务器所不支持的特征。
安装VSFTPD
sudo apt autoremove vsftpd # 卸载应用
sudo apt install vsftpd # 重新安装
配置ftp用户
sudo mkdir /home/uftp # 创建用户目录
sudo useradd -d /home/uftp -s /bin/bash uftp # 创建爱你用户
sudo passwd uftp # 修改密码
或者
sudo adduser uftp
配置VSFTPD
修改配置文件
sudo vim /etc/vsftpd.conf #修改配置文件
增加如下代码:
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
local_root=/home/uftp/
local_enable=YES
write_enable=YES
utf8_filesystem=YES
创建允许访问的用户列表
创建/etc/allowed_users文件,并写入用户名
sudo vim /etc/allowed_users
检查禁止访问名单
sudo vim /etc/ftpusers
重启服务器
sudo /etc/init.d/vsftpd restart # 重启
或
sudo /etc/init.d/vsftpd start # 启动
sudo /etc/init.d/vsftpd stop # 停止
FTP浏览器客户端
浏览器访问
ftp://uftp:123321@192.168.1.193:21
协议://用户名:用户密码@IP:端口号
FTPwindows客户端
WinSCP、XFTP等。。。
FTPubuntu客户端(cli)
sudo apt install ftp
命令行(cli)下操作命令:
dir 列出服务端文件目录
ls 列出服务端文件目录
cd 文件夹 进入服务端文件夹
!dir 列出客户端目录
!ls 列出客户端目录
lcd 显示当前客户端目录
lcd 目录 进入当前客户端目录
send 上传
get 下载
mput 批量上传
mget 批量下载
上传时候出现:
200 PORT command successful. Consider using PASV. 550 Permission denied.
是因为vsftp默认配置不允许上传文件。
解决:修改/etc/vsftpd.conf
将“write_enable=YES”
前面的#
取消
重启vsftp的服务器
FTPubuntu客户端(UI)
sudo apt install gftp
gftp(gnome下ftp客户端)