2018-04-14 13:46:58 Zhengxinyu666 阅读数 51
  • Linux操作系统及常用基础命令深入讲解

    本课程为全新马哥linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    29603 人正在学习 去看看 马永亮

最近在学习使用Linux操作系统

在字符界面使用命令行操作电脑是一件非常cool的事情

下面我们一起来认识一下神奇的命令吧

1.# 表示权限用户(如:root),$ 表示普通用户

  开机提示ogin:输入用户名
  password:
输入口令   用户是系统注册用户成功登陆后,可以进入相应的用户环境.
 
退出当前shell,输入:exit

2.useradd netseek 添加一个netseek用户
  passwd netseek  netseek这个用户设置密码.
  (/etc/passwd /etc/group)
  userdel netseek 删除账号
  userdel -r netseek 删除账号连同自家目录.
  [更详细的操作请参阅man page,和账号管理篇]

3.查看命令
  ls -l                显示文件列表
  ls -al        -a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
  ls -al |grep ''^d''   显示目录
  ls -al |grep ''^[^d]'' 在一个目录中查询不包含目录的所有文件
  ls -sh        (man ls 查看man帮助.)
 
  linux几种文件类型:
  d    表示此文件是一个目录
  -    表示此文件是一个普通文件
  b    表示此文件是一个特殊的块设备I/O文件
  c    表示此文件是一个特殊的字符设备I/O文件
  l    表示此文件是一个连接文件。在其文件名称后紧跟与它连接的文件路径及名称

  file 命令通过探测文件内容判断文件类型

4.建立文件和目录
  touch 1.txt
  cat > 2.txt (用定向符创建文件,填写内容后,按ctrl+d保存内容)
  mkdir mywork 建立mywork这个目录

5.拷贝文件或目录
  cp filename1 filename2
  cp -r dir1 dir2
复制目录
  cp -rf
参数f是删除已经存在的目标文件而不提示
  cp -i 
参数if相反,在覆盖目标文件之前将给出提示要求用户确认,回答y时目标文件将被覆盖,是交互式拷贝.

6.删除文件和目录(删除文件或目录都可以用rm搞定)
  rm 1.c //
1.c这个文件删除
  rm -rf
(强制删除文件或目录,删除时不提示.)

7.移走目录或者改文件名
  mv
[opitons] 源文件或目录   目标文件或目录
 
[options]主要参数
  -i:
交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,
    
这样可以避免误覆盖文件.
  -f:
禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
  mv hello ../
hello目录或者文件移动上一级.
 
8.alias
别名
  alias dir=''ls -l''  
输入dir,其实就相当于执行了ls -l


9.权限的控制(rwx 421)

  chmod +x hello.sh 赋于可执行权限.

  (详细介绍一下权限的控制)

  chmod 命令 权限修改 用法:chmod 一位8进制数 filename (rwx 421)

 eg: chmod u+x filenmame      只想给自己运行,别人只能读

  chown netseek.netseek mydir  改变用户属组


    u:表示文件所有者

    g:表示同组用户

    o:表示其它用户

    a:表示所有用户

    opt则是代表操作,可以为:

    +:添加某个权限

    -:取消某个权限

    =:赋予给定的权限,并取消原有的权限

    mode则代表权限:

    r:可读 4

    w:可写

    x:可执行 1


10.pwd 显示当前目录完整路径和改变目录

  cd netseek 进入netseek这个目录

  cd 退出当前目录

  cd ../ 进入上一级目录.

  cd - 返回上一次目录

  cd ~ 返回主目录

11. cat,more,less 命令

  将某个文件的内容显示出来,两个命令不同的是:cat 把文件内容一直打印出来,而more则分展显示.

  less 可以上下翻滚查看内容.

  cat > 1.txt 可以填写或者复制内容,按ctrl+d保存

  cat 1.c

  more 1.c

  head -n filename 显示第N行的内容

  tail -n filename 显示后N行的内容

  tail -n 20 /var/log/message 显示最新的20行日志

12.设置linux时间和日期

  date 命令("date MMDDhhmmYYYY.ss") 

  200672412:37 ,30

  date 072412372006.30

  date -s 20:30:30 #设置系统时间为20: 30:30 

  date -s 2006-7-24 #设置系统时期为2006-7-24

  clock -r #对系统Bios中读取时间参数 

  clock -w #将系统时间(如由date设置的时间)写入Bios

13.查看找文件(find,grep,awk更多的请参照man pageshell编程专题讲解)

  几种介绍:

  find 路径  -name 文件名

  find /etc -name named.conf

  locate 通过文件名搜索文件的工具(要先通过updatedb建立索引数据库)

  localte named.conf

  whereis 是寻找二进制文件,同时也会找到其帮助文件

  which where 相似,只是我们所设置的环境变量中设置好的路径中寻找;比如;

14.查杀进程

  ps aux

  ps -ef |grep 

  kill -9 

  看看哪个进程占用的内存最大

  ps -aux|sort +5n

  将程序放在前后台执行

  cp file1 file2 &

  &ctrl+z 你可以使用&ctrl+z来将命令放在后台执行

  fg 是将放在后台执行的程序再放回前台.

  jobs

15.dd命令备份

  dd if="input_file" of="out_file" bs="block_size" count="number"

  参数:

  if:就是input file可以是设备

  of:就是output file也可以是设备

  bs:规划的一个block的大小,如果没有设定时,预设是512bytes

  count:多少个bs的意思.

  dd if=/etc/password of=/tmp/passwd.bak 备份

16.mount 加载一个硬件设备

  用法:mount [参数] 要加载的设备 载入点

  eg: mount /dev/cdrom 

  cd /mnt/cdrom //进入光盘目录

   u:

   mkdir /mnt/usb;(注:创建挂载目录) 

   mount /mnt/sda1 /mnt/usb;(注:挂载U盘) 

   现在就可以使用U盘了,在/mnt/usb目录下的内容就是U盘里的内容了; 

   使用完后,用以下命令卸载U盘即可。 

   umount /mnt/usb 

   mount     列出系统所有的分区

   mount -t iso9660 /dev/cdrom /mnt/cdrom   挂载光盘

   mount -t vfat /dev/fd0 /mnt/floppy       挂载软盘

   mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/hda2   挂载fat32分区

   mount -t ntfs -o nls=utf8,umask=000 /dev/hda3 /mnt/hda3         挂载ntfs分区

   Linux-NTFS Project: http://linux-ntfs.sourceforge.net/

   umount /mnt/hda3 缷载

   :挂载设备前,请先fdisk -l 看一下.

17.su在不退出登陆的情况下,切换到另一个身份

    用法: su -l 用户名(如果用户名缺省,则切换到root状态)

  eg:su -l netseek (切换到netseek这个用户,将提示输入密码),加上-表示切换到用户的环境变量.

    

    sudo 利用他可以执行root执行的权限

18.whoami,id,w,lastlog,users,groups

   w       查看用户登陆信息

   who     查看当前登陆用户

   last    最近一个月用户登陆情况

   lastlog 检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容

   whoami  确认自己身份

   id      打印出自己的UID以及GID.(UID:用户身份唯一标识.GID:用户组身份唯一标识.每一个用户只能有一个唯一的UIDGID.) 

   users

   groups  用户所归属的用户组查询;

   finger -l netseek root 

   finger -s 或者直接finger

   可以让使用者查询一些其他使用者的资料

  eg: finger //查看所用用户的使用资料

  finger root //查看root的资料


19.用户用过的命令和执行历史执行的命令

   history 显示用户过去命用的命令

   !!执行最近一次的命令

20.uname 查看linux系统信息

   参数:-a 所有信息 -r 版本号 -n 主机名

21.建立软连接

   ln [-sf] source target

   ln souce-file hard-link

   ln -sf source-file soft-link

   s表示软连接,f表示,若有同名文件在,则将它覆盖过去.

   注:硬链接不能为目录创建,只有文件才能创建硬链接。

22.查看目录

   du -sh   目录或者文件

   du -m    du系统默认输出是以KB,以参数-m表示以MB显示.

   cat /etc/fstab   查看分区列表

   fdisk -l  

   df -h

   df -ah

23.查看linux系统占用的资源(top,free,uptime)

   top   查看后台程序,监控系统性能

   top -d 2 每两秒列新一次

   top -d -2 -p3690 查看某个PID

   top -b -n 2 >/tmp/top.txt top的信息进行2次,然后将结果输出到/tmp/top.txt

   

   free -m 查看系统内存使用情况

   uptime  显示目前系统开机时间(查看开机多久,多少人登陆,过去1,5,15分钟系统的负载)


24.文件比软件:

   cmp  cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户

   diff diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户

25.远程操作与文件传输

   ssh user@remote.machine

   scp user@remote.machine:/remote/path /local/path

   scp /local/path user@remote.machine:/remote/path

26.编译c/c++文件

   gcc 

   gcc -v 查看GCC版本

   gcc -o test test.c 2>errfile 编译test.c时若有错误信息,则将错误信息重定向到errfile

27.chattr +i filename 禁止删除,chattr -i filename 取消禁止

   lsattr 查看隐藏档属性


28.自动化执行

   at 执行一次

   crontab 定时循环执行程序

   crontab 介绍

   1 root登录

   2 # crontab -e

   3 加入一行

   1 */12 * * * /usr/sbin/ntpdate pool.ntp.org

   分钟 (0-59

   小時 (0-23

   期 (1-31

   月份 (1-12

   星期 (0-6//0代表星期天


29.关机和重启:

   shutwond [-t 秒数] [-rkhncff] 时间 [警告信息]

   -t 秒数:设置在切换至不同的runlevel之前,警告和删除两信号之彰间的延迟时间(秒)

   -k 发出警告信息,但不是真的要shutdown

   -r shutdown这后重新开机

   -h shutdown这后开机

   -n 不经过init,由shutdown命令本身来做开机工作(不建议你使用)

   -f 重新开机时,跳过fsck指令,不检查文件系统.

   -F 重新开机时,强迫做fsck检查.

   -c 将已经正在shutdown的动作取消

   shutdown -h now 立刻关机,其中now相当于时间为0,halt,poweroff也可以关机,或者直接init 0

   shutdown -h 20:30  系统将在今晚的8:30关机

   shutdown -h +10    系统再过十分钟后自动关机.

   shutdown -t3 -r now  立刻重新开机,但在警告和删除processes这间,

   shutdown -k now  ''Hey! Go away! now...'' 发出警告信息,但没有真的关机.

   

   

   reboot:

   shutdown -r now 几乎与reboot相同,不关建议用reboot执行如下:

   shutdown -r +30 ''The system wiil reboot''

   shutdown -r +10 ''Hey!Go away!''  10分钟后系统重启.

   #sync; sync; sync; reboot   注:sync将数据同步写入硬盘

   halt命令相当于shutdown -h now ,表示立刻关机。 

   reboot命令相当于shutown -r now ,表示立刻重起。

30.如何改变启动模式运行级别

   vi /etc/inittab 

   5改成3,启动后就可以变成字符模式。

   startx 或者 init 5 就可以进入图形化界面.

   runlevel 显示当前运行级别

  如何切换至单用户模式

  利用telinitinit(其实telinit只是一个synbol link to init)

  telinit 1 或者 init S 即可,当然telinit S也是可以的.

  如何使ctrl+alt+del 三键失效的方法

  #vi /etc/inittab

  ca::ctrlaltdel:/sbin/shutdonw -t3 -r now之前加上注释#

  然后执行#telinit q ,参数q是要telinit重新检查一次/etc/inittab

31.TAB  巧用tab键,当你不知道文件或命令的全名是请连续按两下tab.

32.clear 清屏

33.dmesg |more 显示开机信息(查看系统启动时硬件信息)

  

34.改变程序执行的优秀级

   nice    设置优先权 nice -n -5 vi & root给一个nice值为-5,用于执行vi

   renice  调整已存在优先权

35.模块相关的命令

   lsmod 显示已经载入系统的模块

   depmod 分析可载入系统的相依性

   modinfo 显示kernel模块的信息

   insmod  载入模块

   modprobe 自动处理可载入模块

   rmmod    删除模块

  

36.chkconfig --list 显示各种服务的状态,利用chkconfig可以轻松管理init脚本.

37.linux的几种解压缩命令

   compress aaa  aaa文件压缩成为aaa.Z

   compress -d aaa.z aaa.z文件压缩成aaa

   

   gzip aaa 压缩命令

   gzip -d aaa.gz  解压命令

   

   bzip2 -z filename 压缩,同上加-d参数解压

   bzcat filename.bz 查看压缩文件内容

   

   tar czvf aaa.tar.gz aaa 将目录aaa压缩成aaa.tar.gz

   tar -N ''2007/03/01'' -zcvf home.tar.gz /home /home当中,比2007/03/01新的文件才备份.

   tar --exclude /home/cao -zxvf myfile.tar.gz /home/* /etc 要备份/home,/etc,但不要/home/cao

   cd /tmp; tar -cvf -/etc | tar -xvf - /etc/打包后直接解开/tmp底下,而不产生文件.

   tar zxvf aaa.tar.gz 解压缩命令.

   tar jxvf aaa.tar.bz2 解压命令

   tar zxvf aaa.tar.gz -C /var/www aaa.tar.gz解压到/var/www目录下

   cpio -covB > [file|device] 备份

   cpio -icduv < [file|device] 还原

38.网络命令

   ifconfig 显示或设置网络设备,可以查看当前ip,类似于windows里的ipconfig

   service network restart(/etc/rc.d/init.d/network restart) 重启网卡

   ifdown eth0 关闭网卡

   ifup eth0 开启网卡

   route -n 查看路由表

   route add -net 192.168.20.1 netmask 255.255.255.0 dev eth0

   

   netstat 查看网络连接情况

   netstat -i 显示网卡运行情况

   netstat -r 查看主机的路由列表

   

   traceroute 

    

   hostname 显示主机名

   hostname -i 显示当前主机名的IP.

39.系统集成管理菜单.

   setup   系统服务管理命令

   ntsysv  设置系统服务


40.fdisk /mbr 删除GRUB

41.数据库启动

启动mysql

service mysqld start(/etc/rc.d/init.d/mysqld start)

mysql -uroot -p 输入密码即可操作mysql数据库.

启动Oracle

su - oracle

$lsnrctl stop

$lsnrctl start

sqlplus /nolog

conn /as sysdba(connected)

startup

 

42.安装软件包

rpm包安装:

rpm -ivh xxx.rpm         安装rpm

rpm -qa --last | less    根据安装日期显示已经安装的包

rpm -qa |grep mysql -i   查询系统是否安装mysql包(-i,忽略大小写)

rpm -e                   删除安装的软件包

rpm -e mysql* --nodpes   强制删除相关的软件包

rpm --test               测试安装

rpm -qi                  查询mysql套件的说明资料

rpm -qpl xxx.rpm         查看rpm包内含的内容.

rpm -qc[d]               设定档与说明档

rpm -Uvh                 升级安装

rpmbuild --bb SPECS/xxx.spec 重新装将xxx.spec编译成rpm.

rpmbuild --rebuild packagename.src.rpm 重新把.src.rpm编译成rpm.

源码编译安装(经典)

./configure              检查系统信息(./configure --help | more 帮助信息,可以看到相关的参数设定)

make clean               清除之前留下的文件

make                     编译

make install             安装

:源码包安装,一般先将文件解压,安装过程大致上面几步,具体说明一般见解压后目录里的(INSTALL,READEME说明.)

2019-09-17 16:14:14 phillip629 阅读数 10
  • Linux操作系统及常用基础命令深入讲解

    本课程为全新马哥linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    29603 人正在学习 去看看 马永亮
解压tar.gz文件
tar -zxvf java.tar.gz
解压到指定的文件夹
tar -zxvf java.tar.gz  -C /usr/java

gz文件的解压 gzip 命令
gzip -b java.gz

解压zip文件
unzip  filename.zip

linux 复制文件夹内所有文件到另一个文件夹
cp  -Rf /home/user1/* /root/temp/
将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。
即格式为:cp -Rf 原路径/ 目的路径/

如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
cp /test1/file1 /test3/file2

上传文件到linux系统下
 rz
 
 重命名
 mv b.txt c.bak   将文件 b.txt 重命名为  c.bak

删除文件(夹)
rm  -rf   /var/log/httpd/access
rm  -rf  /var/log/httpd/access.log

查询当前目录下文件(夹)个数

ls -lR|grep “^-”|wc -l


 待更新
2019-05-17 23:45:17 java_fight 阅读数 180
  • Linux操作系统及常用基础命令深入讲解

    本课程为全新马哥linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    29603 人正在学习 去看看 马永亮

常用 Linux 命令的基本使用

01. 学习 Linux 终端命令的原因

•Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
•在工作,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成
•在工作中,作为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令

学习终端命令的技巧:

•不需要死记硬背,对于常用命令,用的多了,自然就记住了
•不要尝试一次学会所有的命令,有些命令是非常不常用的,临时遇到,临时百度就可以

02. 常用 Linux 命令的基本使用

序号 命令 对应英文 作用
1 ls list 查看当前文件夹下的内容
2 pwd print wrok directory 查看当前所在文件夹
3 cd [目录名] change directory 切换文件夹
4 touch [文件名] touch 如果文件不存在,新建文件
5 mkdir [目录名] make directory 创建目录
6 rm [文件名] remove 删除指定的文件名
7 clear clear 清屏

小技巧
ctrl + shift + : 放大终端窗口的字体显示
ctrl + - :缩小终端窗口的字体显示

03. 自动补全
• 在敲出 文件/目录/命令 的前几个字母之后,按下 tab 键 ◦如果输入的没有歧义,系统会自动补全
◦如果还存在其他 文件/目录/命令,再按一下 tab 键,系统会提示可能存在的命令

小技巧

•按 上/下 光标键可以在曾经使用过的命令之间来回切换
•如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c

2019-07-17 21:57:36 qq_36054620 阅读数 60
  • Linux操作系统及常用基础命令深入讲解

    本课程为全新马哥linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    29603 人正在学习 去看看 马永亮

linux常用命令

XShell连接: ssh 用户名@IP地址 例:ssh root@192.168.11.110
简单命令
(1)ctrl+c 停止(或者ctrl+z均可) esc退出
(2)type查看一条命令是内部命令或者外部命令
内部命令:shell builtin
(3)help 命令:查看内部命令帮助手册;man 命令:查看外部命令帮助手册
yum install man -y安装外部命令帮助手册
yum install man-pages -y 相对于man更详细
(4)whereis : 定位命令位置,which也可以
(5)file:文件类型 ELF文件格式,表示二进制文件
(6)echo:打印到标准输出 echo $$ 表示当前shell的进程号
例:
在这里插入图片描述
(7)ps -fe 查看系统当前进程列表
(8)$PATH: 环境变量:路径
文件系统命令
(1)挂载分区:mount /dev/sda1 /boot
卸载分区:omount /boot,boot分区中的文件不会显示,但是boot目录仍然存在
(2)df -h:查看挂载分区
df:显示磁盘使用情况 du:显示文件系统使用情况
(3)ls显示对应目录下内容,可以跟多个目录,显示时,优先显示较外层目录;如果两个目录同级,按照目录名称的字母顺序显示。
(4)cd:切换工作目录
pwd显示当前工作目录
常用目录:
/:根目录
/dev: 设备文件
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/lib:库文件 :没有执行入口的应用程序
/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录
(5)mkdir:创建目录 mkdir
mkdir -p .a/b/c 在a目录下创建b目录,在b目录下创建c目录
mkdir a/{1,2,3}dir 在a目录下创建1dir,2dir,3dir,前提是a目录存在的情况
(6)rm:删除 rm -rf 文件名称/目录s
(7)cp:复制
cp -r x y相当于改名复制到当前目录
cp -r x /boot/y 将x复制到/boot/y目录下(注意:目录需要从根目录写起)
(8)mv:移动
mv 123 /root 将123移动到/root目录下
mv 123 123.bak 相当于将123进行重命名
(9)ln:链接,给某个文件创建链接,相当于超链接(感觉用的很少吧)
ln 文件名 重命名 注:硬链接:一个改变,都会改变,源文件删除,不会影响链接文件。
ln -s 文件名 重命名 注:软链接:一个改变都会改变,但是如果原文件被删除,会影响链接文件。
(10)touch:当文件存在,则刷新文件的修改时间,访问时间;若文件不存在,则创建相应文件。
(11)stat:元数据,查看某个文件的访问时间,修改时间(modify)和元数据的修改时间(change)。 感觉也很少用
文本操作命令
(1) cat查看文件
(2) 分页查看
more: 只能从上而下查看,可以使用空格进行翻页,使用b返回查看,但是查看到最后直接退出该文件,还有搜索的功能。
less :与more相似,可以上下翻滚查看,但是会加载到内存中,less 在查看之前不会加载整个文件,如果内存小于文件大小,则看不到超出内存大小部分的内容。
head :默认查看前10行,head -5 文件名 查看前10行
tail :默认查看最后10行
tail -f 文件名 实时更新该文件最尾部的内容显示在屏幕上,并且不断刷新,常用于查阅正在改变的日志文件。
(3) | 管道:完成命令直接的数据传递
例:cat b.txt | head -3 查看b.txt并且只输出前三行
(4) xargs:它擅长将标准输入数据转换成命令行参数
命令
1,在标准输入中读取到的内容!
2,自己的参数理解为一个字符串
模仿shell,做blank切分,第一个子字符串为命令
3,将步骤1的内容做为步骤2的命令的选项参数拼接起来
4,执行得到的结果
例: echo “/” |xargs ls -l
vi全屏文本编辑器
(1) 打开文件
vim /path/to/somefile 打开文件,定位至第一行
vim +n 文件名:打开文件,并定位于第n行
vim + 文件名:打开文件,定位至最后一行
vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
(2)模式
编辑模式:(命令模式)按键具有编辑文本功能:默认打开进入编辑模式
输入模式:按键本身意义
末行模式:接受用户命令输入
各种模式的切换(多半是记不住)
编辑–>输入:
i: 在当前光标所在字符的前面,转为输入模式;
a: 在当前光标所在字符的后面,转为输入模式;
o: 在当前光标所在行的下方,新建一行,并转为输入模式;
O:在当前光标所在行的上方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式

输入–>编辑:
ESC

编辑–>末行:

末行–>编辑:
ESC, ESC

(3)关闭文件
:q 退出 没有动过文件
:wq 保存并退出 动过了,不后悔
:q! 不保存并退出 动过了,后悔了
:w 保存
:w! 强行保存
:wq --> :x
命令模式下:
ZZ: 保存并退出 不需要冒号,编辑模式
(4) 编辑模式(想多了吧,这么多,我反正记不住,不过呢多敲几遍就好了啊,一言不合撸代码)
一.移动光标
1.字符
h: 左;j: 下;k: 上;l: 右
2.单词
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
3.行内
0: 绝对行首
^: 行首的第一个非空白字符
$: 绝对行尾
行间
G:文章末尾
3G:第3行
gg:文章开头
4.翻屏
ctrl:f,b ctrl+f下一屏 , ctrl+b上一屏
二.删除&替换单个字符
x:删除光标位置字符
3x:删除光标开始3个字符
r:替换光标位置字符
删除命令 d
dw删除光标所在行的一个单词 ,dd删除光标所在的一整行行
三.复制粘贴&剪切
yw复制一个单词,yy复制一整行
p粘贴
四.撤销&重做
u 撤销(相当于上一步)
ctrl+r 重做 撤销的操作(相当于下一步,必须使用过命令u才能使用)
. 重复上一步的操作(前提必须有操作)
五.set:设置
set nu 打开文件内容前会显示行数
set nonu 打开文件内容前不会显示行数
set readonly 设置文件只读
修改vi的配置文件 /etc/virc
六./:查找
/要查找的内容
N向下查找 N向上查找
?向上查找
!:执行命令(较常用)
例: :!ls -l /
七.s查找并替换
范围,s/str1/str2/gi 将该范围每行出现的str1替换成str2忽略大小写
/:临近s命令的第一个字符为边界字符:/,@,#
g:一行内全部替换
i:忽略大小写
范围
n:行号
.:当前光标行
+n:偏移n行
$ :末尾行,$-3
%:全文

2017-12-20 18:42:00 weixin_30703911 阅读数 3
  • Linux操作系统及常用基础命令深入讲解

    本课程为全新马哥linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    29603 人正在学习 去看看 马永亮

1.ps获取dhcpd进程状态

ps -aux |grep dhcpd |grep -v grep  排除包含grep的那条进程

ps -aux |grep dhcpd |grep -v grep |awk -F " " '{print $2}' 获取进程号

2.执行命令输出在控制台的同时也输出到文件中 ----tee

  有时候,我们不仅想在控制台看到shell脚本或者命令执行的日志,也想将日志输入到文件中处理,此时用tee命令即可。命令: sh test.sh | tee log_tmp

3.grep 完全匹配

(1)头匹配^: grep  -v "^r7.0"

(2)结尾匹配$:grep "r7.0$"

(3)完全匹配:grep "^r7.0$"

4.gitk 图形化形式提交

在git bash下执行

 5.sed 替换指定行内容

sed -i "45c versionCode: $versionCode\," android/sink/build.gradle
sed -i "46c versionName: \"$versionName\"" android/sink/build.gradle
sed -i "2c VERSION := '$versionCode'" base/Android.mk

6.sz发送文件到本地,rz上传本地文件到linux机器

sz $file_name

参考:https://www.cnblogs.com/wangyuelang0526/p/5057154.html

rz 后会跳出让你选择本地文件的界面,选择好以后就会自动上传到你的linux当前路径,适合文件比较小的上传

7.是否包含某个字符

have_flag=`echo "$string1" |grep "$string2"`   (比如:have_flag=`echo "a,b,c" |grep ","`)

[  "x$have_flag"  == "x"  ] && echo not include

 8.查看centos的版本号:

  cat /etc/redhat-release

9.判断文件夹是否为空

if [  -d $dir  ] && [ "x`ls $dir`"  != "x" ] ;then ..... fi

10.字符串大小写转换

命令:tr/sed/awk

11.ssh连接远程主机执行脚本的环境变量问题

http://www.kuqin.com/shuoit/20141113/343188.html

现象:ssh调用远程脚本,出现环境变量JAVA_HOME失效的问题。

把  ssh root@192.168.1.2 "cd /root/usr/local ; sh test.sh " 修改成:

ssh root@192.168.1.2 ; cd /root/usr/local; sh test.sh ; exit 

12.计算字符串的长度

s_part="abdcd"

length_fit=`echo ${#s_part}`

转载于:https://www.cnblogs.com/zndxall/p/8075310.html

Linux常用命令总结

阅读数 161

没有更多推荐了,返回首页