Linux学习的常用命令

Linux学习的常用命令

  公司一直用的服务器都是window服务器,自己也好久没接触Linux了,命令忘得差不多了,之前也是菜鸡水平,就布置个服务啥的,正好最近不怎么忙,自己学习下,记录下常用的命令以便翻阅。

版本:centOS 6.5

环境: VMware虚拟机

  首先先安卓VMware虚拟机,配置一台系统为centOS 6.5的虚拟机,先下载好镜像,然后安装的时候注意选择,我选的是比较全的桌面版本,一千多个包,后期省的装一些东西了,虚拟机装好后需要将自己网络打通,自己百度下教程。

 

几个配置常用的命令:

  service network restart -----重启网络服务

  vi /etc/sysconfig/network-scripts/ifcfg-eth0 -----打开网络配置文件,进入编辑模式

  vi /etc/resolv.conf -----配置网关,网段是自己的网段(nameserver 192.168.235.2)

  vi /etc/sysconfig/network ---- 修改主机名host

  删除文件:

    rm -rf -------文件名 : 删除文件夹和文件(甚用!!!!切记!!!!!)
    -r -------递归轮询遍历删除
    -f -------删除时忽略不存在的文件,没有提示可以 man 命令一下查看

  查看java是否安装:java -version
  查看tomcat是否安装:ps -ef|grep tomcat

 

 一:文件系统的操作

  init 0 ------关机
  reboot -f ------重启虚拟机
  pwd --------- 查看当前地址完整的目录
1:目录操作:
  cd .. ----------返回上上级目录
  cd ~ ---------直接进入root目录
  cd 目录名字 ---------打开目录
  mkdir 目录名字 ---------创建一个目录
  cp 源文件目录 目标文件目录 -r -----------拷贝一个文件夹(-r是轮询复制)
  rmdir 文件夹 -------删除文件夹(只能删除空目录,如不是空,用rm -rf 文件夹名称)
  mv 目录/文件名字 其他路径 --------------移动文件或目录
  mv 旧目录名字 新目录名字 ---------更改文件或目录的名字
  ll 或者 ls --------查看当前目录下的所有文件
2:文件操作
  touch 文件名 -------------创建一个空文件
  cp 源文件目录 目标文件目录 -----------拷贝一个文件夹
  rm 文件名 ----------- 删除文件,会需要确认删除,如果加上-f,直接删除
  cat 文件名 -------------一次性显示文件内容,文件内容多用more
  more 文件名 -------------显示文件内容(按 Space 键,显示文本的下一屏内容。
    按 Enier 键,只显示文本的下一行内容。按 B 键,显示上一屏内容。按 Q 键,退出。)
  less 文件名 -------------显示文件内容,和more相似,Q退出,具体看百度
  head -10 文件名 -------------打印文件开始 10 行
  tail -10 文件名 -------------打印文件最后 10 行
  tail –f 文件名 -------------查看文件的内容变化
  find 查找路径 –name 文件名或者目录名(后面加*是以这个为开头的文件或者目录) ------------查找问价或者目录(最后显示绝对路径)

3:文件内容操作(注意权限问题):
编辑模式:
  i -----进入文件之后,按i进入编辑模式
  vi filename -----从打开或新建文件,并将光标置于第一行首
  vi +n filename -----从打开文件,并将光标置于第 n 行首
  vi + filename -----从打开文件,并将光标置于最后一行首
  vi +/pattern filename -----从打开文件,并将光标置于第一个与pattern 匹配的串处
命令行模式:

  esc -----从编辑模式退出来,进入命令输入模式
  set nu -----显示行号
  q -----退出vi编辑
  w -----写入,保存文件
  wq -----保存退出
  ! -----强制操作
  nG -----光标移至第 n 行首
  n+ -----光标下移 n 行
  n- -----光标上移 n 行
  n$ -----光标移至第 n 行尾
  H -----光标移至屏幕顶行
  M -----光标移至屏幕中间行
  L -----光标移至屏幕最后行
  dd -----删除 行
  x 或 X -----删除一个字符,x 删除光标后的,而 X 删除光标前的
  uu 恢复前一个动作(常用)
一般模式
  yy 复制光标所在行(常用)
  nyy 复制光标所在行的向下 n 行,例如, 20yy 则是复制 20行(常用)
  p,P p 为复制的数据粘贴在光标下一行,P 则为粘贴在光标上一行(常用)
  /pattern   -----从光标开始处向文件尾搜索

  pattern :?pattern  -----从光标开始处向文件首搜索

  pattern n  -----在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令
  :s/p1/p2/g -----将当前行中所有 p1 均用 p2 替代
  :n1,n2s/p1/p2/g  -----将第 n1 至 n2 行中所有 p1 均用 p2 替代
  :g/p1/s//p2/g  -----将文件中所有 p1 均用 p2 替换

4:文件上传
  安装lrzsz:yum install lrzsz -y
  rz :上传
  sz  filename:下载(不能下载目录,可以先打压缩包再传输)
  WinSCP传输文件速度快,传输大文件可以使用,是Linux和window之间的传输工具,也可以使用类似于xshell的xftp,感觉也挺方便的

 

 二:磁盘指令  

  df -----看硬盘信息,默认硬盘分区的大小以 kb 显示,可以在 df 后面加参数-m mb 单位, -k kb 单位 , -h 更易于阅读
  du 文件名字/目录名字 -----查看文件或者目录的大小,默认单位为 kb
    -k kb 单位,-m mb 单位,-a 所有文件和目录,-h 更易于阅读,--max-depth=0 目录深度

 

 

 三:网络指令 

  ifconfig ------查看网络配置信息
  ping 地址 ------测试网络是否通(注意linux下会一直发送,ctrl+c结束)
  netstat ------查看网络相关信息
    -a (all)显示所有选项,默认不显示 LISTEN 相关
    -t (tcp)仅显示 tcp 相关选项
    -u (udp)仅显示 udp 相关选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服務状态
    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如 uid 等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该 netstat 命令。
    提示:LISTEN 和 LISTENING 的状态只有用-a 或者-l 才能看到
  telnet ip port -------测试远程端口是否通(需安装 telnet : yum install telnet -y) ,测试成功后,按 ctrl + ] 键,然后弹出 telnet>时,再按 q退出

 

四:系统管理

1:用户操作
  useradd/adduser username ------创建用户
  passwd username ------修改密码
  userdel username ------删除用户
  usermod -l 新的名字 原来的名字 ------修改用户名
  usermod -L 用户名 ------锁定账号
  usermod -U 用户名 ------解除锁定
  whoami ------查看当前登录用户名,普通用户可查看/etc/passwd 文件,得出系统一个有多少个用户,root 用户还可以查看/etc/shadow 文件,

    来得出系统一个有多少用户

  usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>]
  [-s <shell>][-u <uid>][用户帐号] ------修改用户
    参数说明:
    -c<备注>  修改用户帐号的备注文字。
    -d登入目录>  修改用户登入时的目录。
    -e<有效期限>  修改帐号的有效期限。
    -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
    -g<群组>  修改用户所属的群组。
    -G<群组>  修改用户所属的附加群组。
    -l<帐号名称>  修改用户帐号名称。
    -L  锁定用户密码,使密码无效。
    -s<shell>  修改用户登入后所使用的shell。
    -u<uid>  修改用户ID。
    -U  解除密码锁定。


2:用户组操作
  groupadd 用户组名 ------创建用户组
  groupdel 用户组名 ------删除用户组
  groupmod -n new_name old_name -----修改用户组名
  groups ------查看当前用户所在的用户组
  groups username ------查看指定用户所在的组
  注意:创建用户时,系统默认会创建一个和用户名字一样的主组。
  usermod -g 组名 用户 —— 把用户的主组改为其他的组
  usermod -G 组名 用户 —— 把用户添加到附加组当中
  如果想查看一个组下面一共有多少用户,可以通过查看 /etc/group 文件的内容来得到(cat /etc/group)

3:系统权限
  ll /usr ------查看/usr 目录下的每个文件或目录的权限
权限类别:
  Linux 中,每个文件或目录都拥有三种权限
  权限     对文件的影响      对目录的影响
  r(读取)      可读取文件       可列出目录内容
  w(写入)     可修改文件内容       可在目录中创建删除文件
  x(执行)      可以执行这个      可访问目录内容
UGO 模型:
  Linux 权限基于 UGO 模型进行控制
  U 代表 User, G 代表 Group, O 代表 other
  每一个文件的权限基于 UGO 进行设置,权限三个一组(rwx), 对应 UGO 分别设置
  每个文件都有一个拥有者,所属组即(Group), 不属于上面的都是 other

  chown username 文件/目录 ------修改所有者
  chown username:groupname 文件/目录 ------同时修改一个文件或目录的所有者和属组
    如果要递归修改整个目录下的所有者或属组,加参数-R,如:chown -R mytest:test 目录名字
  chgrp groupname name ------修改文件/目录的属组
  chmod ugo+rwx name ------修改文件/ 目录的权限(其中 ugo 代表的是要对谁进行权限操作,
    rwx 代表进行怎样的权限操作,+代表的授权,-代表的取消权限)

权限的另外一种修改方式:

  将 rwx rwx rwx 三组权限的读写执行权限分别用 0 和 1 代替,1 代表有权限,0 代表没权限,最后将三组二进制转化成十进制。

  命令:chmod 700 myfile 其中 700 转化成二进制为 111000000,对应的权限只有所有者才有读写和执行的权限

 

五:系统配置
  vi /etc/group --------用户组信息配置
  vi /etc/shadow 和/etc/passwd 系统存在的所有用户名 --------用户信息配置
  vi /etc/inittab --------系统服务初始化配置
   参数解释:
    0:停机状态
    1:单用户模式,root 账户进行操作
    2:多用户,不能使用 net file system,一般很少用
    3:完全多用户,一部分启动,一部分不启动,命令行界面
    4:未使用、未定义的保留模式
    5:图形化,3 级别中启动的进程都启动,并且会启动一部分图形界面进程。
    6:停止所有进程,卸载文件系统,重新启动
    这些级别中 1、2、4 很少用,相对而言 0、3、5、6 用的会较多。3 级别和 5 级别除了桌面相关的进程外没有什么区别。

    为了减少资源占用,推荐都用 3 级别
    注意 :linux 默认级别为 3,不要把 initdefault 设置为 0 和 6


  vi /etc/sysconfig/network --------修改主机名
  vi /etc/hosts --------修改host文件,可以配置DNS(配置映射),然后直接拼映射名
  vi /etc/resolv.conf --------DNS 服务器的地址文件
  date --------查看系统时间
  cal --------查看日历
  date -s 2012-08-02 --------更新系统时间,只修改系统的日期
  date -s 10:08:00 --------更新系统时间,修改时间不修改日期
  date -s "2018-01-01 04:53:00" --------更新系统时间,同时修改日期和时间


  虽然 date 命令能够修改时间,但是手动修改肯定是不准确的
  为了能让修改的时间更精确,可以用 ntp 来做时间同步,它会到时间,服务器里去同步时间,保证了时间的准确度。
  需要事先安装 ntp 服务:yum install ntp -y
  

  ntpdate cn.ntp.org.cn  --------更新系统时间
  该命令表示为:到域名为 cn.ntp.org.cn 的时间服务器上同步时间。
  注:全球的时间服务器有很多个,可以到百度或谷歌上搜,不一定用cn.ntp.org.cn 的时间服务器。

  vi /etc/profile --------Linux系统的环境变量
  echo $PATH --------系统在目录里命令对应的程序
  ./test.sh --------执行test.sh文件
  /usr/test/test.sh --------执行test.sh文件

六:重定向和管道
1:输出重定向
  > 输出重定向到一个文件或设备 覆盖原来的文件
    (例:ls > shsxt ,这个命令会将 ls 的查看结果输出到 shsxt 这个文件里,不再将内容打印到屏幕上)
   >> 输出重定向到一个文件或设备 追加原来的文件
    (命令:echo “shsxt is good” >> shsxt 将“shsxt is good”追加到 shsxt 文件里)
2:输入重定向
  < 输入重定向到一个程序
    (cat < test ,将 test 文件里的内容当作是 cat 命令的输入)
3:标准输出重定向
  1>等同于>,但是发生错误时候,不会重定向到指定文件
4:错误输出重定向
  2> --------把错误的输出日志重定向到指定文件里,正确的日志则不会
5:结合使用
  2>&1  --------将一个标准错误输出重定向到标准输出 ,即无论是正确的
  输出还是错误的输出都重定向到指定文件里。1 和 2 结合着使用,在日常中使用比较频繁,因为作为一个开发人员,
  我们一般会把所有的日志都保存下来,无论正确与否。
  注意:以上重定向符号都是覆盖的,若想追加则用”>>”
6:管道
  命令 “|” 表示把前一个输出当做后一个输入
  介绍这个命令之前,先介绍 grep 命令。grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配到的行打印出来。
  |和 grep 命令结合使用: netstat -anp | grep 22
  命令含义:把 netstat –anp 命令的输出 当做是 grep 命令的输入。
  上面的命令就是:先用 netstat –anp 命令查出本机的端口信息,然后把 netstat 输出的端口信息,
  用作 grep 命令的输入进行匹配搜索,并且匹配的是 22 ,即查看 22 端口是否开着。

7:命令执行控制
  命令:&& --------前一个命令执行成功才会执行后一个命令该命令,
    例子:cat shsxt && ping www.baidu.com
  先执行 cat shsxt 命令,当 cat shsxt 命令执行成功后,才执行 ping 命令。
  命令:|| 前一个命令执行失败才会执行后一个命令
  cat shsxt || ping www.baidu.com
  从上图可看出 ping 命令没有执行,这是由于 cat shsxt 命令执行成功了,||命令只有第一个命令执行成功后,
  才会执行第二个命令。第一个命令 cat sxt 执行失败了,然后才执行 ping 命令。


七:服务操作
  chkconfig --------查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务
  service 服务名 start/stop/status/restart --------对服务的状态进行操作,查询,重启
  防火墙操作:
    查看状态:service iptables status
    关闭与开启:
    1 )永久性生效,重启后不会复原
      开启: chkconfig iptables on
      关闭: chkconfig iptables off
    2) 即时生效,重启后复原
      开启: service iptables start
      关闭: service iptables stop


  chkconfig --level 2345 name off|on --------服务初执行等级更改(若不加级别,默认是 2345 级别,命令:chkconfig name on|off)

  运行级别备注:
    0:关机。不能将系统缺省运行级别设置为0,否则无法启动。
    1:单用户模式,只允许root用户对系统进行维护。
    2:无网络连接的多用户模式,不能使用NFS(相当于Windows下的网上邻居)
    3:有网络连接的字符界面的多用户模式,
    4:未定义
    5:图形界面的多用户模式。
    6:重启。不能将系统缺省运行级别设置为0,否则会一直重启


八:进程操作
  ps -aux --------查看所有进程的信息(-a 列出所有,-u 列出用户,-x 详细列出,如 cpu、内存等)
  ps - ef | grep ssh --------查看所有进程里 CMD 是 ssh 的进程信息。
  ps -aux --sort -pcpu --------根据 CPU 使用来升序排序
  名词解释:
    PID: 运行着的命令(CMD)的进程编号
    TTY: 命令所运行的位置(终端)
    TIME: 运行着的该命令所占用的 CPU 处理时间
    CMD: 该进程所运行的命令

  ping www.baidu.com > ping.log & ------若想一个程序放在后台运行,只要在命令后面加 &符号
  jobs –l   ------列出当前连接的所有后台进程()
    注意: jobs 命令只看当前终端生效的,关闭终端后,在另一个终端 jobs已经无法看到后台跑得程序了。
    此时应该用 ps -ef | grep 进程名 来查询后台进程的(ps -ef | grep ping)


  后台进程有时运行一段时间后,系统会自动把该进程挂起来,导致进程无法正常运行。故后台经常一般和 nohup 命令结合使用,
  告诉系统不要把该进程挂起,这样子该命令就可以 24*7 小时不间断的运行了。
  命令: nohup ping www.baidu.com > ping2.log &
  此时该命令还不够完美,因为这时 ping 命令的输出重定向只会把正确的日志重定向到 ping2.log 里,
  我们要想所有的日志都定向到指定文件里。所以我们应该这样写:nohup ping www.baidu.com > ping2.log 2>&1 &

  kill pid -9 ------强制杀死pid为-9的进程(可以先用jobs –l 或 ps 命令先查出对应程序的 PID 或 PPID ,然后杀死掉进程)

九:其他常用命令
1:yum

  yum是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件,包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包,并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件,包,无须繁琐地一次次下载、安装。由于 centos 系统的 yum 默认是到国外网站下载,有时下载速度会很慢,故我们可以换一个 yum 的下载源,这里我们换一个国内的下载源 阿里云镜像。

 

第一步:备份你的原镜像文件,以免出错后可以恢复。
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
需先安装 yum install wget –y


第二步:下载新的 CentOS-Base.rep 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
下载完之后,vim /etc/yum.repos.d/CentOS-Base.repo 查看一下文件内容。


第三步:运行 yum makecache 生成缓存
查看当前源
yum list | head -50

2:wget
  wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP 协议 下载,并可以使用 HTTP 代理
  wget 用法:

    wget [option] 网址 -O 指定下载保存的路径(例:wget www.baidu.com -O baidu.html)

    注意:wget 工具还可以用来做一些简单的爬虫,自己不会,可以自行百度

 

3:tar
  -z gzip 进行解压或压缩,带.gz 需要加,压缩出来.gz 也需要加
    -x 解压
    -c 压缩
    -f 目标文件,压缩文件新命名或解压文件名
    -v 解压缩过程信息打印
  解压命令:tar -zvxf xxxx.tar.gz


  例子:先用 rz 命令或 wscp 上传一个 tar 包,然后解压

  压缩命令:tar -zcf 压缩包命名 压缩目标
    例子:tar -zcf tomcat.tar.gz apache-tomcat-7.0.61
    将 apache-tomcat-7.0.61 目录压缩成 tomcat.tar.gz 包。

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

  压缩命令:zip -r 包名 目标目录
  需先安装 zip:yum install zip –y 压缩完后,查看一下,发现多了个 tomcat.zip 包。

  unzip filename ----------解压文件,需先安装unzip,命令: yum install unzip –y (注意目录冲突)

转载于:https://www.cnblogs.com/grasslucky/p/10931237.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值