ifconfig//显示Linux的IP地址
pwd//当前目录
~ //代表不同的目录,该符号代表root文件目录
/ //代表根目录
(常用)
ls(list) //显示当前文件下的文件
ls -a(all)//显示当前文件下的所有文件(包括隐藏文件以“.”开头)
ls -l//简写 ll 显示当前文件夹下可见文件的详细信息(权限,内存…)
如果只想查看文件的名称,而且如果显示文件的详细信息的话可能
造成当前屏幕装不下,那就ls吧,主要看文件名称。
(常用)
cd Documents(目录)//进哪个目录,使用tab快捷补齐目录名称
cd … /退回上一级目录
cd /usr/etc //不用一级一级目录进入,直接进到想要的文件夹,要确保有这个文件夹
cd - //返回上一次所在的目录
mkdir aaa(目录)//创建目录
如果当前目录下不存在aaa,而你执行 mkdir aaa/bbb 则会报错,
应该这样操作,mkdir -p aaa/bbb
rmdir aaa //删除目录 (要保证这是个空目录,里面如果有文件则删除不了)
mkdir --help//相关的帮助文档
rmdir aaa//如果aaa里面存在一个文件夹,则删除不了,rmdir只能删除空的目录
接下来是文件相关的操作
cat install.log/显示文件的内容在控制台
more install.log//有序的显示内容,这种模式下你按回车一行一行
//向上(还是向下?忘了,可以试一试)展示,按空格一页一页展示,按ctrl+c退出
less install.log//和上面类似,增加pageup和pagedown向上向下滑动
(常用)
tail -10 install.log//展示文件内容的最后10行,想看最前面10行,可以将tail换成head
tail -f install.log//动态的显示内容,别人对该文件的更改也会影响该文件
cp install.log aaa/ //copy拷贝文件到指定目录下
cp install.log aaa/bb.txt //拷贝文件之后重命名
mv a.txt /root/bb(绝对路径或者相对路径) //move剪切文件
mv a.txt …/bb
rm a.txt //删除文件,会提示是否删除
rm -r bb //删除文件夹,对于文件夹,需要加个 -r(解决之前只能删空文件夹的情况)
tar -cvf a.tar apache…//打包一个文件,a.tar是打包后的文件名
tar -zcvf a.tar apache…//压缩一个文件
tar -zxvf a…tar //不指定就是解压到当前文件目录
tar -zxvf a…tar -C cc//大写的C指定解压至哪一个文件目录
find / -name cate*(模糊记得一部分文件名称)//返回文件名包含cate的文件
// “/”是文件路径,这个范围比较大,如果是当前目录,应该不需要加“/”
grep Address /root/apache… --color//查找“Address” 关键词,从后面的文件路径,加上颜色高亮显示
grep Address /root/apache… --color -A//目标记录的后一行(after)-B(before)前一行
touch a.txt //创建文件
clear、Ctrl+L //清楚屏幕上的命令
Vim编辑器
Vim a.txt//编辑相应文件,按i进入插入模式才可以编辑(比Vi打开的文件高亮显示)
ESC //进入命令行模式
:wq //在ESC的前提下才可以,保存并退出,底行模式
:q! //必须加感叹号才可以不保存退出
Vim cc.txt //如果cc.txt不存在则创建
Vim server.exe //如果你想修改服务器端的端口号,想找8080这个数据,可以“:/80”
ctrl+u 屏幕向上移动半页
ctrl+b 屏幕向上移动一页
重定向输出
cat bb.txt>aa.txt //将bb.txt的内容覆盖到aa.txt
cat bb.txt>>aa.txt //追加
ifconfig>>aa.txt //将查询到的config信息追加到aa.txt内容中
查询进程信息
ps -ef | grep java//查询进程中包含java的进程
kill -3 pid 查看该pid对应的进程的线程堆栈信息
kill -9 xxxxx(pid 进程id)//强制关闭进程
管道(类似于数据库的子查询)
ls --help | more//利用“|”将查询出的帮助信息分页查询
权限信息
. … … …
第一个点 d代表文件目录 -代表文件 l代表连接link,类似指向着快捷方式
第一个三个点代表着当前的用户,第二个代表当前组内的用户,第三个代表其他用户
后面三个点都一样 r:代表ready, w:代表write e:代表execute执行
修改权限 chmod u=rwx,g=r aa.txt//比较笨的方式
read用数字表示4,write表示2,execute表示1
chmod 7(4+2+1)5(4+1)5(4+1) a.txt
chmod 777 startup.sh //三个用户的权限全开
修改主机名
- hostname //查找当前主机名
- hostname xxx //设置,不会持久化生效
- Vim /etc/sysconfig/network 编辑这个文件,使用插入模式,修改hostname,持久化生效
修改ip地址,要么一开始设置好ip地址,要么后续更改
- Vim /etc/sysconfig/network-scripts/… //更改ONBOOT为yes,BOOTPROTO为static静态的不让BOOTPROTO动态获取,同时更改IPADDR的值,有的不会立即生效,需要device network restart
更改完地址后,原本的SecureCRT窗口已经不可以再输出命令了。需要新建一个连接,重新输出ip地址。
域名映射
- Vim etc/hosts //找到电脑上的IP解析文件
- IP地址 yyy //设置一下
- ping xxx.com可以尝试连接一下,如果连接上说明映射的是对的,如果尝试
映射一个不存在的域名,则连接不了
关闭防火墙
service iptables stop
service network restart 重启指定服务
service network start 启动指定服务
service network stop 停止指定服务
service network status 查看指定服务器的状态
补充
接下来我补充些参考CodeSheep微信公众号的Linux命令
- watch
这个命令是动态查看命令执行的结果。比如如果需要每隔一秒高亮显示网络连接数的变化情况。则 watch -n 1 -d netstat -ant
例子:每隔一秒高亮显示http连接数的变化情况
watch -n 1 -d ‘pstree | grep http’
例子:十秒一次输出系统的平均负载
watch -n 10 ‘cat /proc/loadavg’
- df
查看磁盘大小
- lsof
参数 | 描述 |
---|---|
-i | 显示sokcet文件描述符 |
-c | 显示指定的命令打开的所有文件描述符 |
-t | 仅显示打开了目标文件描述符的进程pid |
例子:
执行任务 | 命令 |
---|---|
列出所有的网络链接 | lsof -i |
列出所有udp的网络链接 | lsof -i udp |
列出谁在使用某个端口 | lsof -i :3306 |
列出谁在使用特定的tcp端口 | lsof -i tcp:80 |
根据文件描述范围列出文件信息 | lsof -d 2-3 |
- netstat
netstat是一个网络信息统计工具。它可以得到网卡接口上全部了解,路由表信息,网卡接口信息等。通常在网络编程中我们用它来显示TCP连接以及状态信息。
参数 | 描述 |
---|---|
-n | 使用IP地址表示主机 |
-a | 显示结果中包含监听的socket |
-t | 仅显示TCP连接 |
-r | 显示路由信息 |
-i | 显示网卡接口数据流量 |
-c | 每隔1s输出一次 |
-o | 显示socket定时器的信息 |
-p | 显示socket所属的进程的PID和名字 |
例子:
执行任务 | 执行命令 |
---|---|
列出所有连接 | netstat -a |
只列出TCP或者UDP | netstat -a |
列出所有连接 | netstat -at/netstat -au |
列出监听中的连接 | netstat -tnl |
获取进程名、进程号以及用户 ID | nestat -nlpt |
打印统计信息 | netstat -s |
打印active状态的连接 | netstat -atnp |
查看服务是否运行(npt) | netstat -aple |
- vmstat
vmstat能够实时输出系统的进程信息,内存使用,cpu使用等资源的使用情况
参数 | 描述 |
---|---|
-f | 显示系统自启动以来执行的fork次数 |
-s | 显示内存相关统计信息 |
-d | 显示磁盘相关统计信息 |
-p | 显示指定磁盘分区统计信息 |
count | 采样次数 |
字段名 | 描述 |
---|---|
procs | r表示等待运行的而进程数目。b表示处于不可中断睡眠状态的进程数目 |
memory | swpd:使用的虚拟内存量。free:空闲内存量。buff:用作缓冲区的内存量。cache:用作缓存的内存量。 |
swap | si:从磁盘换入的内存量(/s)。so:交换到磁盘的内存量(/s)。 |
io | bi:从块设备接收的块(blocks/s)。bo:发送到块设备的块(blocks/s)。 |
system | in:每秒中断的次数,包括时钟。cs:每秒上下文切换的次数。 |
- split
将文件分割为数个。
split -5 a.txt//将a.txt每5行分割为一个文件。(原本文件的内容不变,只是多出来几个分割文件的副本)
- wc -c +filename
统计文件中单词的个数。
- diff
diff -c file1 file2 //显示两个文件的差异