面试常问的LINUX基本操作

    xiaoxiao2022-07-12  161

    Linux版本

    注意区分Linux核心版本和distribution版本。Linux核心版本编号格式为类似:2.6.18-92.el5。2是主版本, 6是次版本,偶数是稳定版,奇数是测试版。 Linux的distribution众多,由套件管理的方式可分为RedHat 系统的RPM方式及Debian系统的dpkg方式。Ubuntu使用dpkg方式。

    Linux系统目录结构

    ubuntu 下载的软件包一般放在/var/cache/apt/archives里,以.deb为后缀名, 欲安装该包, 执行dpkg -i ×××.deb dpkg -L libmysqlclient //查看libmysqlclient各个文件的安装位置 ubuntu shell绿色字体代表可执行文件,红色代表压缩文件(通常是安装包),蓝色代表目录

    Linux常用命令大全

    sudo 后续命令 //以根权限操作,主要用于修改文件,sudo是ubuntu自己的脚本语言 sudo su //切换为根用户 cd /home //cd用于打开home目录 cp /etc/group . //拷贝etc目录下group文件到当前目录 rm group //删除当前目录下group文件 ls -l //列出当前目录下所有文件的详细信息(-a:列出当前目录所有文件包括以 开头 的项目;-i:列出当前目录下所有文件的索引号inode) 如该文件信息开头为drwxr-xr-x ,d表示是目录,后面9项表示owner、group、world 三类用户的使用权限,r读、w修改、x执行、-无此权限。 注:Linux共四种用户,除以上三种还有root用户。

    查询命令:

    find /usr/lib -name interfaces //查询该目录中所有名为interfaces的文件,此方法较慢 locate interfaces //对/var/lib/locatedb检索(包含本机所有文件信息的数据库),找出 所有名为interface的文件,较快 whereis grep //搜索linux上二进制文件grep的位置,只能搜索可执行文件/二进制文件 type grep //查看命令是否为系统命令 file /bin/bash //查看bash的文件类型和格式,此处bash是elf类型的可执行文件格式, elf类型包括共享目标文件(.so),可执行文件(linux中一般不加后缀名),可重定位文件(.a,.o),核心转储文件等。 ln passwd passwd.2 //对已存在的passwd建立硬连接passwd.2 passwd.2与passwd共享同一个索引号 ln -s passwd passwd.2 //对已存在的passwd建立软连接,passwd.2 是passwd的符号连接:passwd -> passwd.2 注:连接是指文件名与索引号的对应 mv passwd.2 godown.b //移动passwd.2为同一目录下并更名为godown.b,实际上是原地搬移,实现了更名,索引号不变。 man ls //查阅手册,了解ls命令的用法 ls --help // 获取ls的帮助文档 mount /dev/cdrom /mnt/cdrom //将cdrom的文件挂到mnt/cdrom目录下,默认mnt为接受外挂文件系统的目录 mkdir test //在当前目录下创建新目录test touch a.txt //在当前目录下创建新文件a.txt cat -n /etc/passwd //查看passwd文件并以行编号输出,passwd记录用户帐号信息,账号信息中UID若为0,则为root用户,享有最高权限。 chown root /home/zhengfeng/Music chgrp root /home/zhengfeng/Music //更改文件的所有者及所有组 chmod +x install.sh //更改install.sh的访问权限为允许所有人执行,+x增加执行权限。 echo $PATH //显示当前搜索路径,若$PATH 加单引号,则显示该字符串,若$前加转义字符\则同样显示该字符串,若$PATH加双引号则显示当前搜索路径,即保留$的特殊用义。$用来标志系统环境变量。 echo $BASH_VERSION //显示当前bash版本,bash是一种shell,作为命令语言解释器。 ls -l /dev/hd* &<result.txt //将dev目录下hd开头的文件信息逐个列出保存到新建文件result.txt里,若文件不存在,则输出错误信息同样保存在rsult.txt里。这是一个输出重定向的例子。Linux默认标准输入0键盘,标准输出1屏幕,标准错误2也是屏幕,若需更改则使用> >> < <<符。 ls -l /dev/hd* <result.txt 2<error.txt //更一般的用法 cp /dev/stdin a.txt //将键盘输入内容保存在a.txt内,键入时按CTRL+D结束。 cp a.txt /dev/stdout //将a.txt内容输出到屏幕,与cat等价。 ls -l /dev|more //将dev目录下文件信息分页显示 |是管道操作符,表示前后命令并列执行。 history //列出本次登录后所有操作历史,并编号;!12 将第12条历史命令重新执行一次;!! 将最近的命令重复执行一次。 dir() { ls -ld $*;} //建立一个shell函数dir(),功能是花括号内命令,$*用于提取参数 因此dir /home 即显示hom目录信息,注意左花括号后有一空格,如多个命令则依次写在花括号内,以分号分隔。 alias lm = ‘ls -al’ //令lm为别名 Linux在命令行输入时也有命令补全功能,例如在输入一个文件名到一半时,按下tab键,系统会自动补全名字,若存在相似文件名,则需要继续输入。 ps //process situation 显示当前进程状态 kill -9 1841 //向进程发值为9的信号,终止PID为1841的进程,信号是一种机制,进程通过信号了解系统中发生的事件。 top //实时监视系统运行状况,按q退出监视返回shell。 ping IP或网站名 //检查与目标主机或网站的连接是否连通,但不能作为评判标准

    远程登录与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的所有信息,*是通配符,可指定为列名称 create table students( id int(8) not null auto_increment, name varchar(255) not null, sex char(4) not null, tel char(13) not null default “-”, primary key(id), unique key unique_name(name) );

    //创建表

    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个数据库,以数字编号,可通过配置文件更改。
    最新回复(0)