一 文件、目录操作命令
1、pwd——查看用户的当前目录。
2、cd——切换目录。
(1)点(.)——表示当前目录
(2)两点(..)——表示当前目录的上一级目录(父目录)
(3)连接符(-) ——表示用cd命令切换目录当前所在的目录
(4)波浪符(~) ——表示用户主目录的绝对路径
3、绝对路径——以斜线(/)开头,描述到文件位置的完整路径+文件名,可在任意时候使用。
4、先对路径——不以斜线(/)开头,相对于当前的工作目录的 位置,用于指定文件名的操作。
5、tips——输入命令时,用tab键补全。
6、ls——显示文件或目录信息。
7、mkdir——当前目录下创建一个空目录。
8、rmdir——要求目录为空。
9、touch——生成一个空文件或更改文件的时间。
10、cp——复制文件或目录。
11、mv——移动文件或目录、文件或目录改名。
12、rm——删除文件或目录。
13、ln——建立链接文件。
14、find——查找文件。
15、file/stat——查看文件类型或文件属性信息。
16、cat——查看文本文件内容。
17、more——分页查看。
18、less——可以分页查看,还可以方便地搜索,回翻等操作。
19、tail -10——查看文件的尾部的10行。
20、head -20——查看文件的头部的20行。
21、echo——把内容重定向到指定的文件中,有则打开,无则创建。
22、管道命令( | )——将前面的结果给到后面的命令。
例:ls -la | wc,即将ls的结果交由wc命令来统计字数。
23、重定向( > )——覆盖模式。( >> )—— 追加模式。
例:echo "Java is the best language in the world" > java.txt 把左边的内容输出到右边的文件里去。
二、文件打包和压缩命令
1、命令与文件后缀说明。
命令 | 功能 |
xz | 使用LZMA算法的高性能压缩/解压工具 |
gzip | 流行的GNU gzip 数据压缩/解压程序 |
bzip2 | 免费的,无专利的高性能数据压缩工具 |
zip/unzip | 与WinZIP兼容的压缩/解压工具 |
rar | 与WinRAR兼容的压缩/解压工具 |
7za | 使用LZMA算法的高性能压缩/解压工具 |
tar | 文件打包、归档工具 |
文件后缀 | 说明 |
.bz2 | 用bzip2压缩的文件 |
.gz | 用gzip压缩的文件 |
.xz | 用xz压缩的文件 |
.tar | 用tar打包的文件,也称tar文件 |
.tbz | tar打包时用bzip2压缩的文件 |
.tgz | tar打包时用gzip压缩的文件 |
.zip | 用zip/winzip压缩的文件 |
.rar | 用rar压缩的文件 |
.7z | 用7za压缩的文件 |
2、常用压缩方式,压缩/解压命令。
常用压缩方式,有三种——(1)gzip (2)bzip2 (3)tar
常用压缩命令,也就有三种——(1)gzip filename (2)bzip2 filename (3)tar -czvf filename
常用解压命令,也就有三种——(1)gzip -d filename.gz (2)bzip2 -d filename.bz2 (3)tar -xzvf filename.tar.gz
三、正则表达式+grep
1、正则表达式的元字符
元字符 | 含义 | 类型 | 举例 | 说明 |
^ | 匹配首字符 | BRE | ^x | 以字符x开始的字符串 |
$ | 匹配尾字符 | BRE | x$ | 以字符x结尾的字符串 |
. | 匹配任意字符 | BRE | l..e | love,lfie,live... |
? | 匹配任意一个可选字符 | BRE | xy? | x,xy |
* | 匹配零次或者多次重复 | BRE | xy* | x,xy,xyy,xyyy... |
+ | 匹配一次或者多次重复 | BRE | xy+ | xy,xyy,xyyy... |
[...] | 匹配任意一个字符 | BRE | [xyz] | x,y,z |
() | 对正则表达式分组 | BRE | (xy+) | xy,xyxy,xyxyxy,... |
元字符 | 含义 | 类型 | 举例 | 说明 |
\{n\} | 匹配n次 | BRE | go\{2\}gle | |
\{n,\} | 匹配最少n次 | BRE | go\{2,\}gle | google,gooogle,goooogle... |
\{n,m\} | 匹配n到m次 | BRE | go\{2,4\}gle | google,gooogle,goooogle |
{n} | 匹配n次 | BRE | go\{2}gle | |
{n,} | 匹配至少n次 | BRE | go\{2,}gle | google,gooogle,goooogle... |
{n,m} | 匹配n到m次 | BRE | go\{2,4}gle | google,gooogle,goooogle |
| | 以或逻辑连接多个匹配 | BRE | good|bon | 匹配good或bon |
\ | 转义字符 | BRE | \* | * |
2、grep命令
grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。
格式:grep [options] PATTERN [FILE ...]
(1) PATTERN 是查找条件:可以是普通字符串,也可以是正则表达式,通常用单引号将RE括起来。
(2)FILE是要查找的文件,可以是空格间隔的多个文件,也可是使用shell的通配符在多个文件中查找PATTERN,省略时表示在标准输入中查找。
(3)grep命令不会对输入文件进行任何修改或影响,可以使用输出重定向将结果存为文件。
例:
(1)在文件myfile 中查找包含字符串mystr的行。
grep -n mystr myfile
(2)显示myfile 中第一个字符为字母的所有行。
grep '^[a-zA-Z]' myfile
(3)在文件myfile中查找首字符不是#的行(即过滤掉注释行)。
grep -v '^#' myfile
(4)列出/etc 目录(包括子目录) 下所有文件内容包含字符串“root”的文件名。
grep -lr root /etc/*
四、系统管理命令
stat | 显示指定文件的详细信息,比ls更详细 |
who | 显示在线登录用户 |
whoami | 显示当前操作用户 |
hostname | 显示主机名 |
unname | 显示系统信息 |
top | 动态显示当前耗费资源最多进程信息 |
ps | 显示瞬间进程状态 ps-aux |
du | 查看目录大小 du -h/home 带有单位显示目录信息 |
df | 查看磁盘大小 df -h 带有单位的显示磁盘信息 |
ifconfig | 查看网络情况 |
ping | 测试网络联通 |
netstat | 显示网络状态信息 |
man | 命令简述,如:man ls |
clear | 清屏 |
alias | 对命令重命名,如:alias showmeit = "ps-aux",另外解除使用unalias showmeit |
kill | 杀死进程,可以用ps或top命令查看进程的id,然后用kill命令杀死进程。 |
五、远程登录与NFS
1、Telnet是Internet 提供的一项基本任务,用来将计算机作为远程计算机的终端使用。
2、telnet 主机名或IP地址,telnet以明文传输不安全,因此禁止root身份登录。
3、exit或logout命令退出。
4、SSH 主机名或IP地址——作为telnet的替代,以公开密钥算法加密数据,允许root用户登录。
5、scp 本地文件路径 远程用户名@主机:文件路径——用于本地与远程计算机拷贝文件。
如:scp z3@202.207.30.136:a.txt。
6、sftp 远程用户名@主机——以安全模式进入ftp状态。
7、get 远程路径 本地路径——下载。
8、put 本地路径 远程路径——上传。
9、quit ——退出。
10、?——列出该状态可使用的命令清单。其中不少同Linux、Bash命令如mkdir、cd、ls等,都是针对被登录机操作,若对本地操作,则在命令行前加字母l,如lmkdir、lls等。
NFS(Network File System)——通过网络将远程主机的文件系统挂载到本地主机目录下,以便使用,它基于客户机/服务器模式,建立在TCP/IP协议的表示层协议与会话层协议机制之上。
六、vim程序编辑器
1、vim ——vi文本编辑器的进阶版,在所有linux系统上均可使用,被称为“编辑器之神”。
2、vi分为三种模式:一般模式,编辑模式,指令列命令模式。
3、vi hello.c —— 进入hello.c文件,此时为一般模式,若hello.c不存在则自动新建。
4、一般模式下执行vi定义的键盘上转义字符操作,del为删除光标上字符,dd为删除一整列,退格键及上下左右键移动光标,i进入插入光标前编辑模式,a进入插入光标后编辑模式,r进入改写编辑模式;
编辑模式下键盘所有按键除ESC外都可输入字符,如上下左右键分别代表ABCD大写字母,按ESC退出编辑;
在一般模式下按:进入指令列模式,最下面一行为指令列,wq保存并退出。
七、gcc编程
1、 gcc中库的链接顺序是从右往左进行,因此需要把最基础是实现的库放在最后,这样左边的lib就可以调用右边的lib中的代码。同时,当一个函数的实现代码在多个lib都存在时,最左边的lib代码最后link,所以也将最终保存下来。
2、 objdump -T libmysqlclient.so——打开当前目录下的动态链接库libmysqlcient.so查看其中的API。objdump 命令用来查看各种目标文件(elf文件)内部的结构。
3、obidump -h hello.o ——参数-h把hello.o各个段的基本信息打印出来,elf文件是分段的,通常为Header、.data(数据段包含局部静态变量和全局变量)、.text(代码)、.rodata、.bss 、.comment等。
4、 readelf -s hello.o ——查看详尽段信息。
5、 gcc错误:undefined reference to function —— 该函数具体实现暂未知。
6、 info gcc —— 显示gcc的所有信息。
八、mysql操作
SQL:Structured Query Language
1、netstat -tap|grep mysql —— 检查系统有没有安装mysql,若socket 显示listen 则表示就绪。
2、mysql 中unique key(唯一键)指除主键外确保某一列唯一性的约束,该列可包含NULL(空值);primary key 为主键。
3、apt -get install mysql-server —— 安装mysql
4、mysql -u root -p —— 例:root用户登录mysql server,之后输入密码。
5、show database;show tables; —— 查看数据库和数据表单,主要在mysql server 中输入指令“;”结尾。
6、use mysql; —— 使用数据库mysql也可以在登录时输入指令:
mysql -D mysql -u root -p
7、quit; —— 退出。
8、insert into studengs(id,name,sex) value(1,zhonghua,man); —— 向students表格中插入zhonghua的信息。
9、select * from students —— 输出students 的所有信息,* ——代表通配符,可指定为列名称。
10、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)
)
11、describle students ——输出表结构信息。
12、mysql_config --libs —— 使用mysql_config 工具确定mysql 程序的链接参数,同理,若需确定编译参数,
使用mysql_config -include。
九、redis操作
1、redis是一个高性能的key-value数据库,由ANSIC编写,支持网络,它支持的value类型包括string、list(字符串链表)、set(字符串有序集合)、zset(字符串有序集合)、hash(字符串哈希类型)。
2、竞态条件和原子操作的概念:
原子操作指该命令在执行过程中不被其它插入命令打断,是“一气呵成”的。
竞态条件:指一个系统或进程的输出,依赖不受控制事件出现的顺序或时机,若多个客户端连接到redis,同时执行多项命令时有可能出现竞态条件,关于此问题的深入讨论在《链接、装载和库》中详细提及。
3、apt-get install redis-server —— 安装redis。
4、netstat -nlt grep|6379 —— 查看系统中redis运行状态,listen为就绪。
5、redis-cli —— 进入redis命令行客户端,cli:command line interface 此为进入交互模式,可自由输入命令。
6、select 1 —— 选择1号数据库,redis实例默认自带16个数据库,以数字编号,可通过配置文件更改。
注:本文参考网络资源,如有侵权,敬请告知。