Linux汇总

常见的linux命令
1.pwd 显示当前用户所在的目录
ls 显示文件目录
ls -ll 输出文件的标志,权限等信息
ctrl+G 进入到命令行
ctrl+alt 跳出命令行
clear 清除当前的屏幕信息
mkdir filenames 创建目录
rmdir filenames 删除目录
cd 切换目录
cd / 返回根目录
cd … 返回上级目录
touch 创建新文件
vi filename 编辑文件
wq 保存并退出
cat 查看文件数据
cp 文件 目录 只能是把文件拷贝到目录上去
wq 保存并退出文件
more 翻页显示文件内容
wc 统计文本信息
mv 移动或改名
rm 删除文件
date 显示当前系统日期
cal 显示当前系统日历
who 显示系统正在作业的用户
ping 测试网络
ping www.baidu.com 测试网络是否是通过的

df 显示磁盘空间
man 帮助手册
su 切换用户
ps 显示全部的进程
ps aux |grep ping 查看某一个进程的详细信息
tail filename 显示文件尾部信息
kill -9 pid 杀死某个进程1. sudo find -name “*.html”;
sudo find -name “sdf.html”
ls *.html
2.cat filename 展示文件的全部内容
more filename 一页一页地展示文件的内容
less filename 可以更好的查看一个文件,更像一个文本编辑器
3.head -n 3 filename 查看文件的前3行
tail -n 3 filename 查看文件的倒数3行
4.grep sdfg sdf.html 查看sdf.html文件中包含sdfg的行
5.find . -type f -mtime -1 -print 查看最近一天修改过的文件
locate *.doc定位文件、
whereis filename 可找出文件名在哪个位置
6.sudo apt install firefox 下载火狐浏览器
firefox 启动火狐浏览器
7.kill -s 9 pid 杀死一个pid进程
8.uname版本信息 uname -a 全部信息 uname -r 内核信息
man command 查询该命令的具体使用方法
whatis cmmand 查看该命令大概是干嘛用的
apropos commnd 查看要实现查询的具体的命令,和whati 刚好相反
9.sudo chgrp workgroup work/ 把work目录的权限交给workgroup的组员透彻

Linux详解
1.ps的用法
ps -ef
其中各列的内容意思如下(8列)
UID //用户ID、但输出的是用户名
PID //进程的ID
PPID //父进程ID
C //进程占用CPU的百分比
STIME //进程启动到现在的时间
TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD //命令的名称和参数

ps -aux
同ps -ef 不同的有列有(11列)
%CPU //进程占用的CPU百分比
%MEM //占用内存的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
STAT //进程的状态
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间

2.kill
kill命令用来中止一个进程。
杀死进程最安全的方法:kill pid
强行中止:kill -9 pid
和缓的重启进程:kill -HUP PID
使用进程名字中止:killall httpd
杀死它和它的子进程: kill -TERM PPID

3.crontab配置 , 如何实现每秒执行
第一列 分钟: 1——59
第二列 小时: 1——23(0表示子夜)
第三列 日 : 1——31
第四列 月 : 1——12
第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此类推)
第六列 要运行的命令
http://blog.csdn.net/fdipzone/article/details/22701113

4.进程和线程的区别
进程就是一个“执行中的程序”,它是一个动态的概念,它可以申请和拥有系统资源。
进程作为分配资源的基本单位
线程是进程中的一部分,进程中可以包含若干个线程,它们可以利用进程所拥有的资源。
线程作为独立运行和独立调度的基本单位。
由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。

5.进程的状态
三态模型
(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。
(2)就绪:当一个进程获得了除处理机以外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。
(3)阻塞:也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
五态模型:对于一个实际的系统,进程的状态及其转换更为复杂。引入新建态和终止态构成了进程的五态模型。

6.chmod chown chgrp
(1)chmod 变动文件属性 r=4,w=2,x=1
格式:chmod 777 file 三个数字代表User、Group、及Other的权限
(2)chown 转变文件拥有者 -R选项意味着对所有子目录下的文件也都进行同样的操作
格式:chown 用户名:用户组:文件/目次 例: chown -R root:root /home
(3)chgrp 转变文件所属用户组 -R选项意味着对所有子目录下的文件也都进行同样的操作
格式:chgrp 用户组 文件名 例:chgrp -R user smb.conf

  1. vim
    (1)替换: 使用 :s 命令来替换字符串
    :s/vivian/sky/ 替换当前行第一个 vivian 为 sky
    :s/vivian/sky/g 替换当前行所有 vivian 为 sky
    :n, s / v i v i a n / s k y / g n v i v i a n s k y 2 使 / w o r d n N ( 3 ) : d d ( 4 ) y y ( 5 ) p 6 g g G 7 1 , s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky (2)查找: 使用/word 下一个n 上一个N (3) 剪切一行:dd (4)复制一行:yy (5)粘贴:p (6)定位:gg定位到第一行,G定位到最后一行 (7)删除所有行:1, d (8)撤销: u (9)反撤销:ctrl+r

8.rm
删除Linux系统中的文件或目录
要慎用rm -rf *这样的命令
-f 强制删除,忽略不存在的文件,从不给出提示
-i 交互模式删除文件,删除文件前给出提示
-r 递归的删除目录下面文件以及子目录下文件

9.sort
sort 将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
-r 以相反的顺序来排序。
-f 排序时,忽略大小写字母。
-b 忽略每行前面开始出的空格字符。

10.uniq
uniq 命令删除文件中的重复行。
注:uniq只除去相邻的重复的行,可以使用 sort 命令使所有重复行相邻,然后可以真正的去除所有重复的行
-c 在输出行前面加上每行在输入文件中出现的次数。
-d 仅显示重复行。
-u 仅显示不重复的行。

11.查询某一段时间的日志
awk -F ‘]’ ‘($1 >= “2017-03-12 01:50:11” && $1 <= “2017-03-12 01:50:13”){print $1}’

12.堆和栈的区别
  一、堆栈空间分配区别:
  1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;
  2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
  二、堆栈缓存方式区别:
  1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;
  2、堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。
  三、堆栈数据结构区别:
  堆(数据结构):堆可以被看成是一棵树,如:堆排序;
  栈(数据结构):一种先进后出的数据结构。

13.Linux进程结构
可由三部分组成:代码段、数据段、堆栈段。也就是程序、数据、进程控制块PCB(Process Control Block)组成。进程控制块是进程存在的惟一标识,系统通过PCB的存在而感知进程的存在。
代码段存放程序的可执行代码。数据段存放程序的全局变量、常量、静态变量。堆栈段中的堆用于存放动态分配的内存变量,堆栈段中的栈用于函数调用,它存放着函数的参数、函数内部定义的局部变量。

14.IO模型
常见的IO模型有四种:
(1)同步阻塞IO(Blocking IO):即传统的IO模型。
(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。
(3)IO多路复用(IO Multiplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型。
(4)异步IO(Asynchronous IO):即经典的Proactor设计模式,也称为异步非阻塞IO。
同步和异步的概念描述的是用户线程与内核的交互方式:同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会通知用户线程,或者调用用户线程注册的回调函数。
阻塞和非阻塞的概念描述的是用户线程调用内核IO操作的方式:阻塞是指IO操作需要彻底完成后才返回到用户空间;而非阻塞是指IO操作被调用后立即返回给用户一个状态值,无需等到IO操作彻底完成。

15.find
在目录结构中搜索文件,并执行指定的操作。
find pathname -options [-exec]
-name 按照文件名查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。 例: php {} ;

16.文件属性
l是链接 d是目录 c是字符设备文件 b是块设备 -是文件

17.socket
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。

18.tar
压缩操作:

tar -cvf /usr/local/auto_bak/test.tar /usr/local/test 仅打包,不压缩

tar -zcvf /usr/local/auto_bak/test.tar.gz /usr/local/test 打包后,以gzip压缩

解压操作:
#tar -zxvf /usr/local/test.tar.gz

19.软连接
软连接: ln -s 源文件 目标文件
20.shell操作光标
ctrl + a 移动光标到行首
crtl + e 移动光标到行尾
ctrl + u 删除光标左边的内容

20.全局查找
查找某个目录所有文件里是否含有某个字符串:
(1)进入要查询的目录
(2)grep -rn “hello world” *

21.快捷键
复制:ctrl+insert
粘贴:shift+insert

22.dstat
实时地看到所有系统资源使用情况
CPU状态:CPU的使用率,这项报告更有趣的部分是显示了用户,系统和空闲部分
磁盘统计:磁盘的读写操作,这一栏显示磁盘的读、写总数。
网络统计:网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。
分页统计:系统的分页活动
系统统计:这一项显示的是中断(int)和上下文切换(csw)

23.历史命令
history 记录执行过的命令
ctrl+r 反向查询历史命令

较复杂的Linux命令

ls -lR|grep “^-”| wc -l
2.ls -a | grep ‘html$’ 显示以html结尾的文件
wget https://office.qq.com/download.html; 下载某个页面
3.sudo apt-get install a ;下载安装最新的软件a
4.find ./ -mtime 1; 最近24到48小时职之间修改过的文件
5.useradd username 添加用户

Shell的 for循环
for i in d e f
do
echo $i
done

n=1
i=0
while [ n l t 101 ] ; d o i = n -lt 101];do i= (( i + i+ n))
n= ( ( (( n+1))
done
echo i
Shell的算术运算符
let i=9+8;
echo i;
echo “7+8”|bc
num=11
num2=22
data=$(expr $num + $num2);
echo data
Shell的输入输出流
echo line1,line2 >demo.sh (输出流内容到指定数据文件)
wc -l <demo.sh 输入流(统计行数)

ubuntu上安装mysql非常简单只需要几条命令就可以完成。
  1. sudo apt-get install mysql-server
  2. apt-get isntall mysql-client
  3. sudo apt-get install libmysqlclient-dev
检查安装成功失败
  sudo netstat -tap | grep mysql
登录mysql
  mysql -u root -p
  然后通过 show databases; 就可以查看当前的数据库。
我们选择 mysql数据库就行下一步操作,使用use mysql 命令,显示当前数据库的表单:show tables
​​​在这里插入图片描述​显示最近登录的5条信息 last -5
ps查看进程信息并通过less分页显示 ps -ef|less
查看命令历史使用记录并通过less分页显示 history |less
修改密码 passwd sxf
查找当前目录下指定文件 find . -name demo.txt
查找当前目录下模糊查询文件 find . -name ‘.txt’
查找特定文件是否包含特定字符
find . -type f -name '
.sh’ | xargs grep -i ‘shixinfa’
gzip 和bzip2压缩文件
bunzip2 解压文件 gunzip解压文件
#!/bin/bash
sum=0
for((i=1;i<100;i++))
do
sum= ( ( (( sum+ i ) ) d o n e e c h o &quot; 1 + 2 + 3 + . . . . + 100 = i)) done echo &quot;1+2+3+....+100= sum"
计算1到100的和,因为版本的原因,使用
diff file1,file2 比较两个文件的不同
rm -rf 把文件夹里面的数据递归删除
bash filename.sh 来运行程序

/bin 二进制执行文件,也就是命令文件
/etc 下存放的是配置文件
/dev 存放是时外部设备文件,硬盘,usb等
/lib 存放的是库文件

72 find ~-iname “*.txt”
找出根目录下的TXT文件

80 diff test.txt demo.txt
找出两个文件的不同
81 mkfs d
创建文件系统D
82 sed --version
查询sed编辑器的版本
83 head -n10 /etc/passwd passwd.bak
查找前10行数据
84 sed-e ‘5d’ passwd.bak
查找第5行数据

87 sed-n ‘5,10p’ test.txt
查询5到10行的数据

95 awk ‘{print $0}’ /etc/fatab
awk的基本输出
97 awk ‘{print “This is a line record”}’ /etc/fstab
输出字符串

99 awk ‘BEGIN{print ENVIRON[“HOME”];print ENVIRON[""PATH]}’
打印Path的目录
100 awk ‘BEGIN{print “3+2=” 3+2}’
计算3+2的值
101 awk ‘BEGIN{print "37=" 37}’
计算3*7的值

105 awk-f leap.wak
运行一个awk数据
112 pos=index(“hello,oil”,“oil”);
查询字符串是否包含某行数据

125 ps
显示全部的进程
128 top
显示当前的进程
129 pstree |head
显示进程的目录结构
130 bg
后台运行程序
131 jobs
显示进程
132 bg

136 kill 95272
杀死某个进程对应的ID
137 jobs -l

144 ps -aef |grep mozilla
查看某个指定的进程
146 hostname
查看本机名

文件在两个linux上传输

sudo scp /home/sxf/test.sh [email protected]:/source

Linux上的正则表达式在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_37565521/article/details/88031997