linux基础入门笔记
1.Linux的下载和安装
vm下载:https://www.vmware.com/cn/products/workstation-pro.html
vm安装:https://jingyan.baidu.com/article/08b6a591e505cb14a809220c.html
Linux下载: https://www.centos.org/download/
Linux安装:https://www.osyunwei.com/archives/5855.html
SecureCRT下载:https://www.vandyke.com/download/securecrt/
SecureCRT安装破解:https://jingyan.baidu.com/article/eae078275917861fec548592.html
SecureCRT 乱码 https://jingyan.baidu.com/article/e8cdb32b451ae837052badd6.html
SecureCRT连接不上,安装centos是没有配置网络,需要配置网络为自动获取
SecureCRT实现windows和linux上传文件的快捷键是alt+p
FileZilla Client的下载:https://filezilla-project.org/
FileZilla Client的安装:https://jingyan.baidu.com/article/e6c8503c6aa1a2e54f1a18a4.html (对开发人员来说基本上是必不可少的)
xshell连接linux...
对于文件的上传也可以使用yum install lrzsz 安装插件来实行文件的上传和下载, 命令rz 表示上传文件 sz表示下在文件 使用方法 sz 文件;
2. linux上常用的快捷键
向上箭头,前一条命令,向下箭头,后一条命令(假如该命令是最后一条,那么还是显示的最后一条命令),tab补全
3. linux的常用文件目录简述
/bin 存放linux命令和二进制(可执行)文件,包含shell解释器等。
/ 根目录
/dev 存放linux系统下的手动加载的外部设备文件
/lib 系统运行时使用的动态函数库
/mnt 主要用来临时挂载文件系统
/cdrom 该目录在linux刚刚安装的时候是空的,挂载光驱文件
/sbin 该目录用来存放系统管理员的系统管理程序
/boot 该目录中存放系统的内核文件和引导装载程序文件
/etc 系统配置文件存放的目录
/tmp 存放着各种临时文件,也用于存放不同程序执行时产生的临时文件,这个文件夹不要放东西,在关机后或者设置一定时间段后会被删除
/usr 用户应用程序存放目录
/home 家目录,可以在其下建立用户
/lost+found 该目录大多情况下是空的,在忽然断电或者非正常关机的情况下,有些文件将临时存放在这里,用户提供还原
/opt 挂载第三方的应用程序
/proc:虚拟目录,是内存的映射;
/var这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件
/sbin 这里存放的是系统管理员使用的系统管理程序
/media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
/srv 该目录存放一些服务启动之后需要提取的数据
4. 简单的文件操作常用命令
ll 查看列表,不包含隐藏部分,ll-a 查看列表,包含隐藏部分,ll -h 查看列表,友好的显示信息,不包含隐藏信息,ll -ah 查看列表,友好的显示信息,包含隐藏信息,ll -t 用文件和目录更改的时间排序 ll -th,ll-tah,ll 目录地址 显示目录下的内容(可以是相对也可以是绝对)
备注:-普通文件 d文件夹 l 符号链接 p管道 s套接字 c字符设备(例如键盘鼠标) b块设备(例如u盘 硬盘)
cd..上一级目录,cd/切换到/目录,cd- 切换到上一次访问的目录,cd~切换到当前用户的家目录,cd 目录名 指定到相应的目录(可以是相对也可以是绝对)
pwd 显示路径
tab可以补全内容
mkdir 文件夹名称 创建目录(父目录必须存在),mkdir -p 文件夹名称 创建目录(父目录不存在,就先创建父目录)
touch 如果文件不存在则创建文件,创建的是一个空文件,存在文件则更新文件的时间
rmdir 删除空的目录
rm 删除文件,rm -f 不询问强制删除文件,rm -r 表示对文件夹进行递归处理删除模式。rm -rf 递归处理强制删除
*通配符,linux支持*通配符
rm -rf *删除当前目录下的所有内容
rm -rf/* 删除linux系统根目录下所有内容
rm -rf*/ 直接删除根目录
mv 文件1 文件夹/文件名 文件名重新写表示重命名,-f表示用同名文件不进行询问直接覆盖
cp 文件1 文件夹/文件名 将文件1复制到文件2中,文件名重新写表示重命名,假如文件1是文件夹需要-r递归处理,f表示用同名文件不进行询问直接覆盖
cat 文件 查询当前文件的内容,cat不能查看大量文件信息,只能查看小容量信息。
more 文件 可以进行分页查看,回车是下一行 ,空格是下一页,b是上一页,q键表示退出
less 文件 -m 可以显示百分比,-n表示行号,一般写-mN查看行号和百分比,上一页下一页用法less操作同more
tail -数字 文件名 快速查找尾多少行的内容
head -数字 文件名 快速查找头多少行的内容
find 查找文件或者目录 用法find 目录名 -name “需要查找的文件或者目录”
ln -s 文件名 软连接 建议写绝对路径,软连接的删除,可以使用rm -rf删除,也可以使用unlink删除软连接
vim 文件 q!强制退出 wq保存退出 i编辑模式 esc退出编辑模式回到一般模式。在插入模式下dd表示删除一行,r表示替换
tar 参数-c 创建一个tar文件, -v显示运行过程信息,-f 指定文件名 ,-z 调用gzip压缩命令进行压缩 ,-t 查看压缩文件的内容 ,-x解开压缩文件,压缩常用 tar -zcvf ,解压常用-zxvf,
tar的-大写C表示指定解压或者压缩的文件夹
rar a 生成压缩的文件名字 压缩的文件或目录(压缩,后缀一般不需要写,会自己添加)
rar x 压缩的文件的名称 压缩的目录(不写默认在当前文件夹下)
zip 生成压缩的文件名字 压缩的文件或目录
unzip 压缩的文件的名称 -d 压缩的目录
tar ,rar ,zip 文件后缀,默认都会自动添加
grep “字符串内容” 匹配命令 文件夹 通常与管道|一起使用 , grep –r表示子目录中查找符合条件的内容,也可直接使用控制台输出相关内容
>重定向输出,覆盖原有内容,没有该文件会相应的创建该文件
>>重定向输出,在文件的后续添加,没有该文件则会创建该文件
| 管道需要与其他配合使用 例如 ls --help | more 分页查询帮助信息 ps –ef | grep java 查询进程名称中是否包含java进程,rpm -qa| grep “git” ,查询是否安装git
&& 只有在左边的命令返回为真,右边的命令才会执行
man 命令 查看命令的信息
命令--help 查看友好的命令信息
info 命令 更加和谐的命令
service 服务名 start 开启服务
service 服务名 status 服务的状态
service 服务名 start 停止服务
umount 设备的目录 挂载设备
mount 设备名 设备挂载那个位置 卸载设备
设备的名称 sudo fdisk -l 可以查看设备的名字
5.简单常用的网络命令
Ifconfig 显示网络设备
ifconfig ech0 up 启用eth0网卡
ifconfig ech0 down 关闭eth网卡
ping 查看网络是否畅通
netstat -an 查看网络端口 netstat -an|grep 3306 查询3306网络端口的情况
curl 语法:# curl [option] [url]
参数:
-a/--append 上传文件时,附加到目标文件
--anyauth 可以使用“任何”身份验证方法
--basic 使用HTTP基本验证
-B/--use-ascii 使用ASCII文本传输
-d/--data <data> HTTP POST方式传送数据
--data-ascii <data> 以ascii的方式post数据
--data-binary <data> 以二进制的方式post数据
--negotiate 使用HTTP身份验证
--digest 使用数字身份验证
--disable-eprt 禁止使用EPRT或LPRT
--disable-epsv 禁止使用EPSV
--egd-file <file> 为随机数据(SSL)设置EGD socket路径
--tcp-nodelay 使用TCP_NODELAY选项
-E/--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)
--cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)
--key <key> 私钥文件名 (SSL)
--key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)
--pass <pass> 私钥密码 (SSL)
--engine <eng> 加密引擎使用 (SSL). "--engine list" for list
--cacert <file> CA证书 (SSL)
--capath <directory> CA目 (made using c_rehash) to verify peer against (SSL)
--ciphers <list> SSL密码
--compressed 要求返回是压缩的形势 (using deflate or gzip)
--connect-timeout <seconds> 设置最大请求时间
--create-dirs 建立本地目录的目录层次结构
--crlf 上传是把LF转变成CRLF
--ftp-create-dirs 如果远程目录不存在,创建远程目录
--ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
--ftp-pasv 使用 PASV/EPSV 代替端口
--ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
--ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输
--ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输
-F/--form <name=content> 模拟http表单提交数据
-form-string <name=string> 模拟http表单提交数据
-g/--globoff 禁用网址序列和范围使用{}和[]
-G/--get 以get的方式来发送数据
-h/--help 帮助
-H/--header <line> 自定义头信息传递给服务器
--ignore-content-length 忽略的HTTP头信息的长度
-i/--include 输出时包括protocol头信息
-I/--head 只显示文档信息
-j/--junk-session-cookies 读取文件时忽略session cookie
--interface <interface> 使用指定网络接口/地址
--krb4 <level> 使用指定安全级别的krb4
-k/--insecure 允许不使用证书到SSL站点
-K/--config 指定的配置文件读取
-l/--list-only 列出ftp目录下的文件名称
--limit-rate <rate> 设置传输速度
--local-port<NUM> 强制使用本地端口号
-m/--max-time <seconds> 设置最大传输时间
--max-redirs <num> 设置最大读取的目录数
--max-filesize <bytes> 设置最大下载的文件总量
-M/--manual 显示全手动
-n/--netrc 从netrc文件中读取用户名和密码
--netrc-optional 使用 .netrc 或者 URL来覆盖-n
--ntlm 使用 HTTP NTLM 身份验证
-N/--no-buffer 禁用缓冲输出
-p/--proxytunnel 使用HTTP代理
--proxy-anyauth 选择任一代理身份验证方法
--proxy-basic 在代理上使用基本身份验证
--proxy-digest 在代理上使用数字身份验证
--proxy-ntlm 在代理上使用ntlm身份验证
-P/--ftp-port <address> 使用端口地址,而不是使用PASV
-Q/--quote <cmd> 文件传输前,发送命令到服务器
--range-file 读取(SSL)的随机文件
-R/--remote-time 在本地生成文件时,保留远程文件时间
--retry <num> 传输出现问题时,重试的次数
--retry-delay <seconds> 传输出现问题时,设置重试间隔时间
--retry-max-time <seconds> 传输出现问题时,设置最大重试时间
-S/--show-error 显示错误
--socks4 <host[:port]> 用socks4代理给定主机和端口
--socks5 <host[:port]> 用socks5代理给定主机和端口
-t/--telnet-option <OPT=val> Telnet选项设置
--trace <file> 对指定文件进行debug
--trace-ascii <file> Like --跟踪但没有hex输出
--trace-time 跟踪/详细输出时,添加时间戳
--url <URL> Spet URL to work with
-U/--proxy-user <user[:password]> 设置代理用户名和密码
-V/--version 显示版本信息
-X/--request <command> 指定什么命令
-y/--speed-time 放弃限速所要的时间。默认为30
-Y/--speed-limit 停止传输速度的限制,速度时间'秒
-z/--time-cond 传送时间设置
-0/--http1.0 使用HTTP 1.0
-1/--tlsv1 使用TLSv1(SSL)
-2/--sslv2 使用SSLv2的(SSL)
-3/--sslv3 使用的SSLv3(SSL)
--3p-quote like -Q for the source URL for 3rd party transfer
--3p-url 使用url,进行第三方传送
--3p-user 使用用户名和密码,进行第三方传送
-4/--ipv4 使用IP4
-6/--ipv6 使用IP6
6. 简单常用的系统管理命令
date 显示或者设置系统时间(显示当前时间)date -s “2010-10-10 10:10:10”设置时间
df 显示磁盘信息 df -h更友好的显示磁盘信息
free 显示内存状态 free -m以mb单位显示内存
clear 清屏
top 显示管理执行中的程序,相当于任务管理器
ps 查看进程 ps -ef 查看所有的进程 ps -ef|grep ssh查看某一个进程
例如 root 2522 1768 0 21:05 pts/0 00:00:00 grep mysql 2552 表示该进程号
含义
UID PID PPID C STIME TTY TIME CMD
root 2552 1768 0 21:05 pts/0 00:00:00 grep mysql
UID :程序被该 UID 所拥有 PID :就是这个程序的 ID PPID :则是其上级父程序的ID C :CPU使用的资源百分比 STIME :系统启动时间
TTY :登入者的终端机位置 TIME :使用掉的CPU时间 CMD :所下达的是什么指令
kill杀死进程 kill pid 杀死pid(进程号)的进程,kill -9 pid 强制杀死进程
du 显示目录或者文件的大小 du -h 更友好的显示目录的大小
who 显示当前登录系统的用户信息
hostname 查看当前主机名
uname 显示系统信息 uname -a显示本机详细信息(内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称
file 文件名 可以查看文件属性,例如是否属于二进制文件
halt 关闭
reboot 重启
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 端口号 -j ACCEPT 开启端口
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 端口号 -j DROP 关闭端口
service iptables restart 重新启动防火墙
/etc/init.d/iptables stop 关闭防火墙
/etc/init.d/iptables status 查看防火墙状态
chkconfig命令检查、设置系统的各种服务, --list 查看服务 --add添加服务 --del 删除服务,等级0表示:表示关机,等级1表示:单用户模式,等级2表示:无网络连接的多用户命令行模式
,等级3表示:有网络连接的多用户命令行模式,等级4表示:不可用,等级5表示:带图形界面的多用户模式,等级6表示:重新启动,chkconfig --level 后面跟上述数字,例如chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态, off表示关闭状态,如果在1345下面的话会自动启动。
export PATH=/usr/local/mysql/bin:$PATH 将/usr/local/mysql/bin下的命令导入环境变量下,方便使用, 可以使用echo $PATH命令查看,假如添加成功,会有相应显示,$PATH 表示的是/etc/profile 下。使用source /etc/profile立即生效,但是关闭终端后,环境变量失效,可以将环境变量配置放在/etc/bash.bashrc中,然后source /etc/bash.bashrc,关闭终端后生效。
7.简单的常用的用户管理命令
sudo:sudo表示管理员权限
useradd 用户名 添加一个用户名 (默认在/home下) -g 表示用户组 必须存在 使用vim/etc/passwd 文件中可以查看到当前用户 -r 表示创建一个系统用户 -d 用户家目录 -m 表示自动创建家目录
passwd 用户名 设置和修改用户密码
su 用户名 切换用户
userdel 用户名 删除一个用户 user -r (或导致删除home目录) 需要sudo权限才有权限
groupadd 组名 创建组
groupdel 组名 删除组
chown 新的所有者 文件名(修改所有者) -R 表示递归所有文件
chown 新的所有者 新的组 文件名(修改所有者和组)
chgrp 只能修改组 语法 chgrp 新的组 文件名 -R 表示第一柜 chgrp -R
id 用户名 直接查看一个用户的uid(用户id)和gid(组id)
/etc/group文件中可以查看所有的组
etc/passwd 文件可以查看所有的用户信息和组信息 如:其中的mysql:x:500:500::/home/mysql:/bin/bash 表示用户id 组id 用户家目录,以及bash命令在哪
8.简单的权限管理命令
8..1文字设置法
语法 chmod who 【 +|-|=】 mode文件名
who 可以是u表示文件所有者,g表示文件所属组,o表示其他人,all 表示所有,或者a也表示所有人
当例如 chmod a-w file.c 不能把a省略,表示所有的(包括u,g,o)去除w权限
+|- 表示添加和去除权限 =表示覆盖
权限w表示可写,r表示可读,x表示可执行,-表示没有任何权限
多个用户间可以用逗号隔开的书写 例如 chmod u +r, g-x file.c
8.2数字设定法
r为4,w为2,x为1,-表示0,例如chmod 331 file.c 权限为--wx-wx—x file.c
需要修改文件夹的权限 需要添加-R
9.文件的下载和安装
wget 网址 从该网址下载
rpm的命令格式 rpm {-q|–query} [select-options] [query-options]
rpm –ivh 程序名 程序的安装
rpm –e - -nodeps 程序名 程序的卸载
rpm –qa 查看程序名 rpm –qa|grep “git” 查看是否安装git
rpm 的参数说明如下
-i, --install install package(s)
-v, --verbose provide more detailed output
-h, --hash print hash marks as package installs (good with -v)
-e, --erase erase (uninstall) package
-U, --upgrade=<packagefile>+ upgrade package(s)
--replacepkge 无论软件包是否已被安装,都强行安装软件包
--test 安装测试,并不实际安装
--nodeps 忽略软件包的依赖关系强行安装
--force 忽略软件包及文件的冲突
Query options (with -q or --query):
-a, --all query/verify all packages
-p, --package query/verify a package file
-l, --list list files in package
-d, --docfiles list all documentation files
-f, --file query/verify package(s) owning file
yum install 插件 网络安装依赖和插件(在指定的库中需要存在)
yum remove 插件 移除安装的插件
10.ftp连接(linux与windows)
10.1 linux中的设置
rpm -qa | grep vsftpd 检查是否已经安装vsftpd
如果没有安装,使用如下安装
yum install vsftpd -y (默认端口为21 可以使用netstat -utlpn | grep vsftp查看)
service iptables stop (关闭防火墙)(不关闭会导致连接超时)
vim /etc/selinux/config 将selinux设置为selinux=disable(会导致500oops)
service vsftpd start 开启ftp 服务
service vsftpd status 查看vsftpd的状态
10.2 windows中的设置
ftp ip
输入linux中的相应的账号密码
备注:如果上述不行,请检查防火墙(本机、客户机),FTP目录的权限,客户机是否是IPv6网络,客户机的网关限制了外网ftp
10.3 windows下的ftp常用命令
bye 结束与远程计算机ftp会话并退出ftp
cd 更改远程计算机的工作目录
dir [RemoteDirectory] [LocalFile] 显示远程计算机的目录文件和子目录列表
send(put):上传文件
get:下载文件
mget:下载多个文件
cd:切换目录
delete: 删除远端主机中的文件
mdelete [remote-files]: 删除一批文件
ls [remote-directory] [local-file]: 同DIR
quit: 同BYE
rename [from] [to]: 改变远端主机中的文件名
send local-file [remote-file]: 同PUT
status: 显示当前FTP的状态
pwd: 列出当前远端主机目录
put local-file [remote-file]: 将本地一个文件传送至远端主机中
mput local-files: 将本地主机中一批文件传送至远端主机
lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录
mkdir directory-name: 在远端主机中建立目录
11. ssh连接linux
例如前面的SecureCRT 是通过ssh连接的(公钥私钥)
后续再 git的linux的服务器搭建的过程中会详细说这个问题。
12.异常记录
1)database disk image is malformed
解决方法:
#yum clean metadata
#yum clean dbcache
#yum makecache
先删除元数据和数据库缓存,然后重建,即可解决;希望可以帮助到大家!