ls -l,list显示文件的全部属性
ls -d,仅列出目录本身
cd mkdir rmdir 常用不解释 rm -rf永久删除 cp复制 mv移动或改名
touch,更新文件时间或者建立新文件。
文件默认权限:文件默认没有可执行权限,因此为 666,也就是 -rw-rw-rw- 。
目录默认权限:目录必须要能够进入,也就是必须拥有可执行权限,因此为 777 ,也就是 drwxrwxrwx。
目录的权限
ps:拥有目录权限才能修改文件名,拥有文件权限是没用的
文件名不是存储在一个文件的内容中,而是存储在一个文件所在的目录中。因此,拥有文件的 w 权限并不能对文件名进行修改。
目录存储文件列表,一个目录的权限也就是对其文件列表的权限。因此,目录的 r 权限表示可以读取文件列表;w 权限表示可以修改文件列表,具体来说,就是添加删除文件,对文件名进行修改;x 权限可以让该目录成为工作目录,x 权限是 r 和 w 权限的基础,如果不能使一个目录成为工作目录,也就没办法读取文件列表以及对文件列表进行修改了。
tac是cat的反向操作
more允许翻页查看,而不像cat一次显示全部内容
less可以先前翻页和向后翻页,more只能向前翻页
head 和tail 负责取得文件的前几行和后几行
2 cut切分数据,分成多列,last显示登陆者信息
strace -p [test_pid] 或直接strace ./test
比如,跟踪pid为12345的进程中所有线程的read和write系统调用,输出字符串的长度限制为1024:
strace -s 1024 -f -e trace=read,write -p 12345
tcpdump是Linux上的抓包工具,如抓取eth0网卡上的包,使用:
sudo tcpdump -i eth0
比如,抓取80端口的HTTP报文,以文本形式展示:
sudo tcpdump -i any port 80 -A这样你就可以清楚看到GET、POST请求的内容了。
nc
nc可以在Linux上开启TCP Server、TCP Client、UDP Server、UDP Client。
如在端口号12345上开启TCP Server和Client模拟TCP通信:
Server: nc -l 127.0.0.1 12345Client: nc 127.0.0.1 12345 在端口号12345上开启UDP Server和Client模拟TCP通信:
Server: nc -ul 127.0.0.1 12345Client: nc -u 127.0.0.1 12345Unix Socket通信示例:
Server: nc -Ul /tmp/1.sockClient: nc -U /tmp/1.sock
curl
curl用于模拟HTTP请求,在终端模拟请求时常用,如最基本的用法:
curl http://www.baidu.com
lsof
lsof命令主要用法包括:
sudo lsof -i :[port] 查看端口占用进程信息,经常用于端口绑定失败时确认端口被哪个进程占用
sudo lsof -p [pid] 查看进程打开了哪些文件或套接字
ss
Linux上的ss命令可以用于替换netstat,ss直接读取解析/proc/net下的统计信息,相比netstat遍历/proc下的每个PID目录,速度快很多。
awk/sed
awk和sed在文本处理方面十分强大,其中,awk按列进行处理,sed按行进行处理。
如采用冒号分隔数据,输出第一列数据(代表行全部列数据,1代表第一列,$2代表第二列...)
awk -F ":" '{print $1}'在awk的结果基础上,结合sort、uniq和head等命令可以轻松完成频率统计等功能
查看文件的第100行到第200行:sed -n '100,200p' log.txt替换字符串中的特定子串echo "int charset=gb2312 float"|sed "s/charset=gb2312/charset=UTF-8/g"替换test文件每行匹配ab的部分为cdsed -i 's/ab/cd/g' test
vim
打开文件并跳到第10行
$ vim +10 filename.txt打开文件跳到第一个匹配的行
$ vim +/search-term filename.txt以只读模式打开文件
$ vim -R /etc/passwd
crontab
查看某个用户的crontab入口
$ crontab -u john -l设置一个每十分钟执行一次的计划任务
*/10 * * * * /home/ramesh/check-disk-space更多示例:Linux Crontab: 15 Awesome Cron Job Examples
service
service命令用于运行System V init脚本,这些脚本一般位于/etc/init.d文件下,这个命令可以直接运行这个文件夹里面的脚本,而不用加上路径
查看服务状态
$ service ssh status查看所有服务状态
$ service --status-all重启服务
$ service ssh restart
free
这个命令用于显示系统当前内存的使用情况,包括已用内存、可用内存和交换内存的情况
默认情况下free会以字节为单位输出内存的使用量
$ free
total used free shared buffers cached
Mem: 3566408 1580220 1986188 0 203988 902960
-/+ buffers/cache: 473272 3093136
Swap: 4000176 0 4000176
如果你想以其他单位输出内存的使用量,需要加一个选项,-g为GB,-m为MB,-k为KB,-b为字节
top命令会显示当前系统中占用资源最多的一些进程(默认以CPU占用率排序)如果你想改变排序方式,可以在结果列表中点击O(大写字母O)会显示所有可用于排序的列,这个时候你就可以选择你想排序的列
$ top -u oracle
df
显示文件系统的磁盘使用情况,默认情况下df -k 将以字节为单位输出磁盘的使用量
$ df -h
kill用于终止一个进程。一般我们会先用ps -ef查找某个进程得到它的进程号,然后再使用kill -9 进程号终止该进程。你还可以使用killall、pkill、xkill来终止进程
$ ps -ef | grep vimramesh 7243 7222 9 22:43 pts/2 00:00:00 vim
$ kill -9 7243
mount
如果要挂载一个文件系统,需要先创建一个目录,然后将这个文件系统挂载到这个目录上
mkdir /u01mount /dev/sdb1 /u01也可以把它添加到fstab中进行自动挂载,这样任何时候系统重启的时候,文件系统都会被加载
/dev/sdb1 /u01 ext2 defaults 0 2
chmod
chmod用于改变文件和目录的权限
给指定文件的属主和属组所有权限(包括读、写、执行)
$ chmod ug+rwx file.txt删除指定文件的属组的所有权限
$ chmod g-rwx file.txt修改目录的权限,以及递归修改目录下面所有文件和子目录的权限
$ chmod -R ug+rwx file.txt更多示例:7 Chmod Command Examples for Beginners
chown
chown用于改变文件属主和属组
同时将某个文件的属主改为oracle,属组改为db
$ chown oracle:dba dbora.sh使用-R选项对目录和目录下的文件进行递归修改
$ chown -R oracle:dba /home/oracle
ifconfig
ifconfig用于查看和配置Linux系统的网络接口
uname
uname可以显示一些重要的系统信息,例如内核名称、主机名、内核版本号、处理器类型之类的信息
实际场景问题
1 cpu占用率
top可以看
ps看不了
但是ps -aux可以看到各个线程的cpu和内存占用
2 进程状态:
ps -ef看不了
ps aux可以看进程状态S R之类
3 IO
iostat查看io状态
4网络
netstat查看tcp连接状态和socket情况,
ipconfig查看网络设备
lsof可以查看端口使用情况
5内存
free
原作者CSDN-黄小斜