一、常用的文件、目录操作命令

这是我们使用得最多的命令了,Linux最基础的命令

  • 可用  pwd命令查看用户的当前目录
  • 可用 cd 命令来切换目录
  • .表示当前目录
  • .. 表示当前目录的上一级目录(父目录)
  • -表示用 cd 命令切换目录所在的目录
  • ~ 表示用户主目录的绝对路径名

绝对路径:

  • 以斜线(/)开头 ,描述到文件位置的完整说明 ,任何时候你想指定文件名的时候都可以使用

相对路径 :

  • 不以斜线(/)开头 ,指定相对于你的当前工作目录而言的位置 ,可以被用作指定文件名的简捷方式

tips:输入命令的时候要常用tab键来补全

  • ls:显示文件或目录信息
  • mkdir:当前目录下创建一个空目录
  • rmdir:要求目录为空
  • touch:生成一个空文件或更改文件的时间
  • cp:复制文件或目录
  • mv:移动文件或目录、文件或目录改名
  • rm:删除文件或目录
  • ln:建立链接文件
  • find:查找文件
  • file/stat:查看文件类型或文件属性信息
  • cat:查看文本文件内容
  • more:可以分页看
  • less:不仅可以分页,还可以方便地搜索,回翻等操作
  • tail -10: 查看文件的尾部的10行
  • head -20:查看文件的头部20行
  • echo:把内容重定向到指定的文件中 ,有则打开,无则创建
  • 管道命令 | :将前面的结果给后面的命令,例如:ls -la | wc,将ls的结果加油wc命令来统计字数
  • 重定向 > 是覆盖模式,>> 是追加模式,例如:echo "Java3y,zhen de hen xihuan ni" > qingshu.txt把左边的输出放到右边的文件里去

二、文件打包和压缩命令

  

linux中指令简约版_redis

  

linux中指令简约版_redis_02

压缩的方式也是有好几种,我们常用的有下面这三种:

  • gzip
  • bzip2
  • tar

常用的压缩的命令就有:

  • gzip filename
  • bzip2 filename
  • tar -czvf filename

常用的解压命令有:

  • gzip -d filename.gz
  • bzip2 -d filename.bz2
  • tar -xzvf filename.tar.gz

 三、正则表达式+grep

1、正则表达式

  

linux中指令简约版_字符串_03

        

linux中指令简约版_mysql_04

2、grep命令

  grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。

  格式:grep [options] PATTERN [FILE...]

  • PATTERN 是查找条件:可以是普通字符串、可以是正则表达式,通常用单引号将RE括起来。
  • FILE 是要查找的文件,可以是用空格间隔的多个文件,也可是使用Shell的通配符在多个文件中查找PATTERN,省略时表示在标准输入中查找。
  • grep命令不会对输入文件进行任何修改或影响,可以使用输出重定向将结果存为文件

例子:

  • 在文件 myfile 中查找包含字符串 mystr的行 

    grep -n mystr myfile 

  • 显示 myfile 中第一个字符为字母的所有行 

    grep  '^[a-zA-Z]'  myfile 

  • 在文件 myfile 中查找首字符不是 # 的行(即过滤掉注释行) 

    grep -v '^#' myfile 

  • 列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名

    grep -lr root /etc/* 

四、系统管理命令

  stat              显示指定文件的详细信息,比ls更详细

  who               显示在线登陆用户

  whoami          显示当前操作用户

  hostname      显示主机名

  uname           显示系统信息

  top                动态显示当前耗费资源最多进程信息

  ps                  显示瞬间进程状态 ps -aux

  du                  查看目录大小 du -h /home带有单位显示目录信息

  df                  查看磁盘大小 df -h 带有单位显示磁盘信息

  ifconfig          查看网络情况

  ping                测试网络连通

  netstat          显示网络状态信息

  man                命令不会用了,找男人  如:man ls

  clear              清屏

  alias               对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit

  kill                 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

五、远程登录与NFS

  Telnet是Internet提供的一项基本服务,用来将本地计算机作为远程计算机的终端机使用。 

  telnet 主机名或IP地址 

  exit或logout命令退出 

  telnet以明文传输不安全,因此禁止root身份登录 

  SSH 主机名或IP地址 //作为telnet的替代,以公开密钥算法加密数据,允许root登录

  scp 本地文件路径 远程用户名@主机:文件路径 //用于本地与远程计算机之间安全拷贝文件 如: 

    scp z3@202.207.30.136:a.txt

  sftp 远程用户名@主机 //以安全模式进入ftp状态,此时可执行该状态下的命令: 

  get 远程路径 本地路径 //下载 

  put 本地路径 远程路径 //上传 

  quit 退出 

  ? //列出该状态可使用的命令清单,其中不少同Linux Bash命令如mkdir、cd、ls等,都是针对被登录机操作,若对本地机操作,则在命令前加字母l,如lmkdir、lls等

  NFS(Network File System):通过网络将远程主机的文件系统挂载到本地主机目录下,以便于使用,它基于客户机/服务器模式,建立在TCP/IP协议的表示层协议与会话层协议机制之上。

六、vim程序编辑器

  vim是vi文本编辑器的进阶版,在所有linux系统上均可使用,被称为“编辑器之神”。

  vi分为三种模式:一般模式,编辑模式和指令列命令模式 

  vi hello.c //进入hello.c文件,此时为一般模式,若hello.c不存在则自动新建 

  一般模式下执行vi定义的键盘上转义字符操作,del为删除光标上字符,dd为删除一整列,退格键及上下左右键移动光标,i进入插入光标前编辑模式,a进入插入光标后编辑模式,r进入改写编辑模式; 

  编辑模式下键盘上所有按键除ESC外都可输入字符,如上下左右键分别代表ABCD大写字母,按ESC退出编辑;

  在一般模式下按:进入指令列模式,最下面一行为指令列,wq保存并退出。

七、gcc编程

  gcc中库的链接顺序是从右往左进行,所以要把最基础实现的库放在最后,这样左边的lib就可以调用右边的lib中的代码。同时,当一个函数的实现代码在多个lib都存在时,最左边的lib代码最后

link,所以也将最终保存下来。

  objdump -T libmysqlclient.so //打开当前目录下的动态链接库libmysqlclient.so查看其中的API。objdump命令用来查看各种目标文件(elf文件)内部的结构 

  obidump -h hello.o //参数-h把hello.o各个段的基本信息打印出来,elf文件是分段的,通常分为Header、.data(数据段包括局部静态变量和全局变量)、.text(代码

)、.rodata、.bss、.comment等 

  readelf -s hello.o //查看详尽段信息 

  gcc错误:undefined reference to function 该函数具体实现没有找到 

  info gcc //显示gcc的所有信息

八、mysql操作

  SQL:Structured Query Language 

  netstat -tap|grep mysql //检查系统有没有已安装mysql,若socket显示listen则表示就绪。 

  mysql中unique key(唯一键)指除主键外确保某一列唯一性的约束,该列可包含NULL(空值);primary key为主键

  apt-get install mysql-server //安装mysql 

  mysql -u root -p //以root用户登录mysql server,之后需输入密码 

  show databases; show tables; //查看数据库和数据表单,注意在mysql server中输入指令以;结尾。 

  use mysql; //使用数据库mysql也可以在登录时输入指令: 

  mysql -D mysql -u root -p 

  quit; //退出 

  insert into students(id,name,sex) value(1,zhengfeng,man); //向students表中插入zhengfeng的信息 

  select * from students //输出students的所有信息,*是通配符,可指定为列名称

  1.   create table students(
  2.   id int(8) not null auto_increment,
  3.   name varchar(255) not null,
  4.   sex char(4) not null,
  5.   tel char(13) not null default “-”,
  6.   primary key(id),
  7.   unique key unique_name(name)
  8.   ); 

  describe students //输出表结构信息 

  mysql_config --libs //使用mysql_config工具确定MySql程序的链接参数,同理,若需确定编译参数,使用mysql_config –include

九、redis操作

  注:redis是一个高性能的key-value数据库,由ANSI C编写,支持网络,它支持的value类型包括string、list(字符串链表)、set(字符串集合)、zset(字符串有序集合)、hash(字符串哈希类型)。 
  竞态条件和原子操作的概念:

  原子操作指该命令在执行过程中不会被其他插入命令打断,是“一气呵成”的; 

  竞态条件:指一个系统或进程的输出,依赖于不受控制事件出现的顺序或时机,若多个客户端连接到redis,同时执行多项命令时有可能出现竞态条件,关于此问题的深入讨论在《链接、装载和库》中详细提及。

  apt-get install redis-server //安装redis 

  netstat -nlt grep|6379 //查看系统中redis运行状态,listen为就绪

  redis-cli //进入redis命令行客户端,cli:command line interface 此为进入交互模式,可自由输入命令。 

  select 1 //选择1号数据库,redis实例默认自带16个数据库,以数字编号,可通过配置文件更改。