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

先删除元数据和数据库缓存,然后重建,即可解决;希望可以帮助到大家!

 

posted @ 2018-06-15 14:55  fatale  阅读(192)  评论(0编辑  收藏  举报