Linux Command
Published:
This is my personal notes for using linux command.
常用命令
基本命令
cd / 跳转到根目录 cd .. 返回上一级目录 pwd 显示当前工作目录 ls 显示当前文件夹下的文件 ll 显示当前文件夹下文件的详细信息
mkdir 新建文件夹
rz 上传文件 rm -f 静默删除 rm -i 交互式删除 rm -rf 静默删除文件夹 rm -ir 交互式删除文件夹
touch 新建文件
ifconfig 查看linux机器的ip地址
whereis redis.conf 查找文件所在位置
cp 拷贝
scp 跨机远程拷贝 scp -r 拷贝文件夹 使用: scp [参数] [原路径] [目标路径]
示例: scp ./Query_and_Write_* 10.51.4.189:/data/mbd-rec-statistics/
crontab -l 查看定时任务 crontab -e 编辑定时任务
sudo 相当于以管理员身份运行权限相关
chmod 777 <file/dir> 修改文件(夹)权限
等价于 chmod a=rwx <file/dir>
三个数字分别表示User、Group、及Other的权限(u,g,o, a代表全部)
rwx分别表示可读, 可写, 可执行, r=4,w=2,x=1 (rwx=7,rw=6, rx=5)mv命令
mv aaa bbb 修改文件名
mv info/ logs 移动文件(夹)到某文件夹, 如果目标文件夹不存在则变为改名文件查看
cat获取文件内容, tac 和cat相反, 从最后一行往前打印 more 一页一页获取文件内容, less 多了支持向前翻页 head 获取文件前几行, tail 获取文件后几行 搜索相关
find [basedir] [option] 文件搜索
eg: find . -name “sklearn.*” 从当前目录为根目录搜索名称匹配sklearn.的文件grep 正则匹配
$ grep [-acinv] 搜寻字符串 filename -c : 统计匹配到行的个数 -i : 忽略大小写 -n : 输出行号 -v : 反向选择,也就是显示出没有 搜寻字符串 内容的那一行
- 文件压缩与打包
gzip可以将单个文件进行压缩gzip [-cdtv#] filename -c :将压缩的数据输出到屏幕上 -d :解压缩 -t :检验压缩文件是否出错 -v :显示压缩比等信息 -# : # 为数字的意思,代表压缩等级,数字越大压缩比越高,默认为 6
tar可以将多个文件进行打包并压缩
$ tar [-z|-j|-J] [cv] [-f 新建的 tar 文件] filename... ==打包压缩 $ tar [-z|-j|-J] [tv] [-f 已有的 tar 文件] ==查看 $ tar [-z|-j|-J] [xv] [-f 已有的 tar 文件] [-C 目录] ==解压缩 -z :使用 zip; -j :使用 bzip2; -J :使用 xz; -c :新建打包文件; -t :查看打包文件里面有哪些文件; -x :解打包或解压缩的功能; -v :在压缩/解压缩的过程中,显示正在处理的文件名; -f : filename:要处理的文件; -C 目录 : 在特定目录解压缩。
如 $ tar -zcvf new.tar.gz test/ 表示将test下的所有文件压缩并打包为new.tar.gz
$ tar -ztvf new.tar.gz 表示查看刚打包的tar文件
$ tar -zxvf new.tar.gz 表示在”当前路径”解压刚打包的tar文件, 也可以通过-C指定解压路径 vim
编辑文件: vim redis.conf读写: i:进入插入模式, ESC: 返回normal模式, :w+Enter保存不退出, :wq+Enter保存并退出, :q+Enter没有任何修改时退出, :q!+Enter放弃修改强制退出
搜索: /xxx, n向下搜索, N向上搜索
进程管理
(1) 查看自己的进程: ps -l
(2) 查看系统所有进程: ps aux
(3) 查看特定的进程: ps aux | grep threadxps aux:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND root 319 9.4 0.1 4388060 5484 ?? Ss 19Apr20 15:08.50 /opt/cisco/anyconnect/bin luolingwei 60712 9.1 2.1 9116324 177064 ?? S 9:27PM 0:32.91 /Applications/Google Chro luolingwei 399 6.2 0.5 5087660 45584 ?? S 19Apr20 2:03.47 /System/Applications/Util luolingwei 19185 5.1 0.0 4339732 1932 ?? Ss 20Apr20 194:49.98 adb -L tcp:5037 fork-serv _windowserver 244 4.4 0.8 7074072 64352 ?? Ss 19Apr20 454:45.18 /System/Library/PrivateFr luolingwei 61006 4.0 1.5 9066656 121732 ?? S 9:42PM 0:03.01 /Applications/Google Chro
USER: 进程拥有者 PID: pid %CPU: 占用的 CPU 使用率 %MEM: 占用的内存使用率 VSZ: 占用的虚拟内存大小,申请内存值 RSS: 占用的内存大小 ,实际使用的物理内存 TTY: 终端的次要装置号码 (minor device number of tty) STAT: 该行程的状态: D: 不可中断的静止 (通悸□□缜b进行 I/O 动作) R: 正在执行中 S: 静止状态 T: 暂停执行 Z: 不存在但暂时无法消除 W: 没有足够的内存分页可分配 <: 高优先序的行程 N: 低优先序的行程 L: 有内存分页分配并锁在内存内 (实时系统或捱A I/O) START: 进程开始时间 TIME: 执行的时间 COMMAND:所执行的指令
(4) 查看cpu状态(查看最消耗cpu的进程): top
(5) 查看某进程下的线程情况: top -H -p [pid]
(6) 查看占用某个端口号的进程:
netstat -anp | grep [port]
lsof -i [tcp/udp]:[port]
ctrl+z(挂起)、ctrl+c(中断)、ctrl+\(退出)和ctrl+d(EOF)的区别
1、四种操作的表现
ctrl+c强行中断当前程序的执行。
ctrl+z将任务中断,但是此任务并没有结束,他仍然在进程中,只是放到后台并维持挂起的状态。如需其在后台继续运行,需用“bg 进程号”使其继续运行;再用”fg 进程号”可将后台进程前台化。
ctrl+\表示退出。
ctrl+d表示结束当前输入(即用户不再给当前程序发出指令),那么Linux通常将结束当前程序。
2、ctrl+c,ctrl+d,ctrl+z在linux中意义。
linux下:
ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。
ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。
ctrl-\ 发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件。
ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
Key Function
Ctrl-c Kill foreground process
Ctrl-z Suspend foreground process
Ctrl-d Terminate input, or exit shell
Ctrl-s Suspend output
Ctrl-q Resume output
Ctrl-o Discard output
Ctrl-l Clear screen
fork命令
由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。
1 在父进程中,fork返回新创建子进程的进程ID;
2 在子进程中,fork返回0;
3 如果出现错误,fork返回一个负值;
对父进程来说,之所以fork返回子进程id给它, 是因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所有子进程的进程id。
对子进程来说,之所以fork返回0给它,是因为它随时可以调用getpid()来获取自己的pid;也可以调用getppid()来获取父进程的id。
fork之后,操作系统会复制一个与父进程完全相同的子进程,虽说是父子关系,但是在操作系统看来,他们更像兄弟关系,这2个进程共享代码空间,但是数据空间是互相独立的,子进程数据空间中的内容是父进程的完整拷贝,指令指针也完全相同,子进程拥有父进程当前运行到的位置。
python相关命令
安装python包: pip install packagename | yum install python-packagename
显示当前安装包: pip list
运行python脚本:python ./xxxx.py (在当前目录执行) python xxxx.py (在坏境变量目录下执行)