linux常用命令记录
开个帖子记录一些工作学习过程中时不时就要用到linux相关的命令, 算是个备忘录
1. 文件操作
$iconv -f [src] -t [dst] [file] -o [outfile] 编码格式转换
$chmod [1+2+4] [filename] 文件权限管理
$chown [user]:[group] [filename] 文件所有
$cp [src] [dst] 拷贝 $mv [src] [dst] 移动/重命名文件 $rm -rf [file/dir] 递归删除,失败不报错(无法恢复,root下慎用)
$zip -rv [filename.zip] [target] zip压缩
$unzip [filename.zip] -d [dir] zip解压 $tar -xzvf [file] [path] tar解压
$tar -czvf [packname.tar] [file/dir] tar压缩
#aix环境对于.tar.gz的包可能解压有问题,要先gunzip把.tar.gz转成.tar
$rpm -ivh xxx.rpm --nodeps --force 强制安装rpm包,不检查依赖
$update-alternatives --display --config --set --remove-all --install [link] [name] [path] [level]
$ln -s [path] [link] 软连接
2. 网络
$ifconfig -a 网卡信息 $netstat -tunlp 网络状况 $tcpdump [-i interface] [src/dst] [port] [-w xxx.cap] 抓包
$traceroute [ip] 查看到指定IP的路由过程
$route 查看路由表
$ip route 查看路由表
$ip route add [ip/mask] via [gateway] 添加路由规则
$ip address 查看网卡信息
3. 服务
$service [serviceName] restart 重启服务
$systemctl start [serviceName].service 启动服务
$systemctl start sshd.service 启用ssh
$systemctl start firewalld 启用防火墙
$systemctl status firewalld 查看防火墙服务状态
$systemctl stop firewalld 停止防火墙
$systemctl disable firewalld 禁用防火墙 $smbpasswd -a [userName] 配置samba
/etc/samba/
4. 系统管理
$su [username] 切换用户
$vi /etc/sudoers.d 修改用户权限
$vi /etc/profile
$export PATH = $PATH:[CommandPath] 添加环境变量
$ntpdate [ip] 与指定IP进行时间同步
$vi /etc/crontab 修改定时任务
5. 查找
$find [path] -type [f/l] -name [name] 在给定的dir目录中遍历查找给定文件 $xargs -d [char] -I {} $grep -p [regax]
$which [command] 定位程序
$pwd 查看当前所在目录
$pwdx [pid] 查看指定进程的运行目录
6. 内存,磁盘与文件信息
$memstat $free -h 内存信息 $df -hl 磁盘信息 $du -h 目录中文件信息
$ipcs -m 共享内存信息
$ipcrm -m [shmid] 删除共享内存
$file 文件信息
$nm -D 符号
$objdump [-a/-f] [.a/file] 符号
$ldd 链接信息
$readelf -d 链接信息
$md5sum [filename] 计算md5
$tail -fn [lineCnt] [filename] 查看文件内容
$htop -p [pid] 查看指定进程的详细运行状况(可以看到CPU绑定关系
$grep -rn "content" 在当前目录递归查找所有文件, 将包含content内容的文件的匹配行,文件名及行号打印出来
$grep -rl "content" 在当前目录递归查找所有文件, 将包含content内容的文件名打印出来
10. 其它常用的命令
$shutdown now 立即关机 $reboot 重启 $tree 显示当前目录结构 $ls -al $man -s [page] [command] 帮助手册
$last 查看近期登陆信息
$alias 'xxxx' 自定义命令
$scp -r [usr]@[ip]:[src] [dest]
-ctrl a 光标移动至命令行行首
-ctrl e 光标移动至命令行行尾
11. VIM
-v visual模式 -vx 删除当前选中内容 -vd 剪切 -vp 粘贴至光标后 -vP 粘贴至光标前
-gg 跳转至文件顶部
-G 跳转至文件底部 -yy 拷贝当前行 -yyy 拷贝当前行 + 之后3行 -o 在下一行insert -O 在上一行insert
-dd 删除当前行
-x 删除当前字符 -u 撤销
-$ 光标移动至当前行首
-^ 光标移动至当前行首非空字符
-0 光标移动至当前行尾
-A 在当前行尾插入 -L 切至当前屏幕最底行 -H 切至当前屏幕最顶行 -M 切至当前屏幕中间行 -Cww 切buffer
:[linenumber] 跳转到指定行
12. git
$git clone [url] 下载远程代码
$git config [-global] user.name "tsing" 设置[当前项目/全局]用户名
$git config [-global] user.email "public_tsing@163.com" 设置[当前项目/全局]邮箱
$git branch -a 查看当前全部分支
$git branch -d [branch_name] 删除本地分支
$git branch -vv 查看本地分支对应关系
$git checkout [local_branch] 切本地分支
$git checkout -b [local_branch] [origin/remote_branch] 以远程分支为基础,将本地分支切至该分支
$git pull origin 以当前分支对应的远程分支为基础,更新当前分支
$git add [file] 添加要commit的文件
$git rm [file] 在分支中删除文件
$git commit 将变更提交至本地分支
$git push origin local_branch:remote_branch 以远程服务器为目标,将本地分支推送到对应的远程分支上
$git checkout . 将当前分支所有的更改丢弃
13.GDB
$gdb (-tui) [exe] 调试可执行程序(带源代码界面)
$ulimit -a
$ulimit -c unlimited 不限制core文件生成大小
$gdb [exe] [core] 调试core文件
-r 运行程序
ctrl + c 暂停
-c 继续运行程序
-bt 查看堆栈
-n 单步执行
-s 单步进入
-layout (src/asm/regs) 显示可视化窗口(源代码/汇编/寄存器)
ctrl + l 刷新窗口
ctrl + x; a 关闭layout
-b [location] (if [cond]) 下断点(条件断点)
-info b [n] 查看断点信息
-delete [n] 删除断点
-p [obj] 查看变量
-dir [path] 添加源代码搜索路径
-thread apply all bt 展示所有线程的堆栈信息
14.linux常用软件
$apt install net-tools $apt install tree $apt install cmake $apt install pstack
$apt install build-essential
$apt install vim
$apt install linux-tools-common
$apt install gdb
$apt install systemctl
$apt install tcpdump