请选择 进入手机版 | 继续访问电脑版
登录 | 立即注册
浩思论坛 文章 查看内容

The commonly used Linux command

2017-3-9 09:28| 发布者: admin| 查看: 2308| 评论: 0

摘要: 常用的Linux命令

format: 
commond [-options] parameter1 ...

help: 
man/info commond 
commond --help

1. 文件与目录

ls

  1. ls -al 列出当前目录下的所有文件的详细信息
  2. ls -sh 易读形式显示文件大小
  3. ls -rt 按时间逆序显示
  4. ls -R 显示目录下的子目录(递归)
  5. ls -d */ 只显示目录
  6. ls -L 列出链接文件

chmod

  1. chmod u+w file 对所有者添加写权限
  2. chmod +x file 对所以人添加执行权限
  3. chmod 644 file 设置文件权限为644

chown

  1. chown -R tomcat:tomcat /var/lib/a 将文件的所有者和所属组改为tomcat

cd

  1. cd ~ 进入家目录
  2. cd 进入家目录
  3. cd /home/qq 或~qq 进入/home/qq/
  4. cd ./download/a 当前目录下的download/a
  5. cd .. 上级目录
  6. cd - 返回上个目录

pwd

  1. pwd -P 显示当前路径,而非链接文件本身的目录名

mkdir

  1. mkdir -p a/b/c 递归创建目录
  2. mkdir -m 711 a 创建目录a,并设定目录权限为711

cp

  1. cp ../a.txt . 复制上级目录的a.txt到当前目录
  2. cp -a oms ooo/ -a同-pdr 连同属性/链接文件属性/递归复制
  3. -f 若存在强制覆盖
  4. -i 覆盖i前询问
  5. -u 比要覆盖的new才会覆盖

ln

  1. ln -s /etc/passwd passwd2 软链接

rm

  1. rm -fr a/ 强制递归删除目录下的所以文件和子目录
  2. rm -i 9* 删除9开头的文件,并询问

mv

  1. mv a1/ a2.txt b/ 移动目录a1(包括子目录和文件)和文件a2.txtb目录下
  2. -f 强制
  3. -i 询问
  4. -u 若已存在,并比存在的新,才更新

touch

  1. touch a.txt 生成空文件

which

  1. which -a cd 查找命令文件

whereis/locate

  1. whereis/locate passwd 查找相关的文件

sort

  1. ls -lR | grep ':'| sort -k 6M -k 7n -k 8n #所以的目录和文件按时间排序

find

  1. find /etc -name '*httpd*' /etc/下文件名含有httpd的文件
  2. find /etc -newer /etc/passwd 比/etc/passwd新的文件
  3. find / -mtime 0 24小时内有改动的
  4. find / -mtime -4/+5 4天内/5天前的
  5. find / -user tomcat 所有者是tomcat
  6. find / -type f/b,c/d/l/s 一般文件/设备文件/目录/链接文件/socket文件
  7. find / -perm 777 权限为777
  8. find ./name -maxdepth 1 -perm -600 -exec ls -ld {} \; ./name目录下权限最小是600的文件和目录
  9. find ~ -name 9* -delete 删除9开头的文件

2. 文件系统

df

  1. df -hT 显示文件系统类型,易读的形式显示大小

du

  1. du 当前目录和子目录的占用空间,只显示目录
  2. du -a 文件也显示
  3. du -sm /* 根目录下每个目录所占容量多少M

fdisk

  1. fdisk -l 列出系统的所以分区

mount

  1. mount /dev/sda1 /mnt/qq 挂载sda1分区到/mnt/qq
  2. umount /mnt/qq 卸载
  3. mount -t vfat/ext3/ntfs-3g/iso9660 /dev/sda1 /mnt/qq 指定分区类型
  4. mount -o loop centos6.3_x86_64.iso /mnt/centos_dvd loop挂载

3. 打包与压缩

tar

  1. tar -zcvf etc.tar.gz /etc 打包并压缩为gzip
  2. tar -jpcvf etc.tar.bz2 /etc 保留属性打包并压缩为bzip2
  3. tar -jtf etc.tar.bz2 查看打包内的文件名
  4. tar -zxvf etc.tar.gz -C /tmp 解压到/tmp
  5. tar -cvf - /etc | tar -xvf - 将/etc复制到当前目录下
  6. tar -rf a.tar 1.txt 1.txt追加到a.tar
  7. tar -jcvf backup.tar.bz2 -X /root/*.bz2 -X /root/logs/* /etc /root

zip

  1. zip a.zip 1.txt -r 2/ 递归打包
  2. zip -u a.zip 3.txt 追加或替换旧的文件
  3. zip -m a.zip 4.txt 移动到包,不保留原文件
  4. zip a.zip -d 1.txt 删除包里的1.txt
  5. unzip -l a.zip 列出包里的文件
  6. unzip a.zip -d una 将包解压到una目录

4. 程序环境

PATH

  1. echo ${PATH}
  2. PATH=$PATH:/vara:/varb
  3. export varc
  4. declare -x/+x varc

source

  1. source ~/.bashrc 读入环境配置文件

subcommond

  1. cd /lib/modules/`uname -r`/kernel
  2. cd /lib/modules/$(uname -r)/kernel

alias

  1. alias lm='ls -l | more'
  2. alias rm='rm -i'
  3. unalias lm 取消别名
  4. \rm 忽略别名

history

  1. history 30 查看最近30条的历史命令
  2. !66 执行第66条命令
  3. !! 执行上一条命令
  4. !al 执行最近以al开头的命令
  5. !$ 上个命令的最后一个参数

Shortcut key

  1. ctrl+c 终止命令
  2. ctrl+d 结束符
  3. ctrl+z 暂停命令
  4. ctrl+s/q 暂停/恢复屏幕输出
  5. ctrl+a 光标移到行头
  6. ctrl+e 移到行尾
  7. ctrl+w 删除光标前一个单词
  8. ctrl+u 删除整行

Data stream redirection

  1. find /home -name .bashrc 2> /dev/null 不显示错误消息
  2. find /home -name .bashrc > list 2> error.txt 正确和错误消息输出到不同文件
  3. cat > catfile < ~/.bashrc 将.bashrc复制到catfile
  4. ls -al /etc |less
  5. ls -l / |tee -a file | more 输出到屏幕并追加到file

Multiple command

  1. sync; sync; shutdown -h now 同步写入磁盘然后关机
  2. ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe
  3. ls /tmp && echo "exist" || echo "not exist"

5. 文本处理

cat/more/less

  1. cat -A file 查看文件显示不可见字符
  2. -n/-b 打印行号/只打印非空行行号
  3. tac file 逆序查看
  4. more file 分页查看,不能向前翻页
  5. less file 分页查看,可进行搜索,同vim

head/tail

  1. head -n 20 file 显示前20行,默认10
  2. head -n -100 file 除了最后100行都显示
  3. tail -n 20 file 显示后20
  4. tail -n +100 file 显示100行之后的数据
  5. tail -f file 持续显示
  6. tail -f ps.log | perl -pe 's/(8080-exec-[0-9]+:\) [0-9]+)/\e[1;31m$1\e[0m/g' 实时打印日志,并用红色显示关键字

sort

  1. cat /etc/passwd | sort -t ':' -k 3 以第三列排序
  2. -f 忽略大小写
  3. -b 忽略最前面的空格
  4. -M 按月份的名字排序
  5. -n 使用纯数字排序
  6. -r 逆序
  7. -u 排序列相同的只出现一次

uniq

  1. last | cut -d ' ' -f1 | sort | uniq -c 每个人登陆次数
  2. -i 忽略大小写

wc

  1. wc file 输出文件的行数,单词数,字符数

tr

  1. tr '[a-z]' '[A-Z]' file 将小写字符改为大写字符
  2. cat file.dos | tr -d '\r' > file.linux 去掉dos断行符

join

  1. join -t ':' -1 4 /etc/passwd -2 3 /etc/group 根据相同子段整合

paste

  1. paste file1 file2 直接粘贴在一起

split

  1. split -b 300k mysql.log log 切割成300k名字以log开头的小文件
  2. cat log* >> mysql.log 合并
  3. ls -l / | split -l 100 - lsroot 按行切割

xargs

  1. find /sbin -perm +7000 | xargs ls -l
  2. ls / | xargs -p -e'endfile' rm 删除直到endfile文件
  3. -n 参数个数
  4. xargs -n 10 < file 每行10个单词显示

grep

  1. grep -n -A 2 -B 3 "eth" file 显示eth行和后2行前3行,并显示行号
  2. grep -v eth file 不含eth的行
  3. grep '[^a-zA-Z0-9]pp' file pp前面不是字母和数字的行
  4. grep '\.$' file 以点结尾的行
  5. grep '^[^a-zA-Z]' 不是英文字母开头的行
  6. grep '^$' file 空行
  7. ls -l /etc |grep '^|' 链接文件
  8. grep 'go\{2,3\}g' file googgooog的行
  9. grep -E 'go{2,3}g' file 同上
  10. grep 'ab\|ac' file abac的行
  11. grep -E 'ab|ac' file 同上
  12. egrep 'ab|ac' file 同上
  13. grep -e 'ab' -e 'ac' file 同上
  14. grep ab file | grep ac 含有abac的行
  15. grep -F '*' /etc/profile 匹配固定文本
  16. grep -rF "218.245.5.77\:20130" tomcat/webapps
  17. grep -rE "218.245.5.77\\\:20130" tomcat/webapps
  18. grep -r "218.245.5.77\\\:20130" tomcat/webapps 递归匹配218.245.5.77\:20130
  19. -c 匹配的行数
  20. -i 忽略大小写的不同,所以大小写视为相同
  21. -r 递归
  22. -l 只显示匹配的文件名
  23. -o 只显示匹配的内容
  24. grep -o ab file | wc -l 匹配项出现的次数

sed

  1. sed -i '2,$d' file 删除2到最后一行
  2. sed '2a drink tea' 在第2行后加drink tea
  3. sed '2i drink tea' 在第2行前插入drink tea
  4. sed -n '/uuid/p' 显示含有uuid的行
  5. sed -i '/uuid/c drink tea' 将含uuid的行替换为drink tea
  6. sed -i 's/0/1/g' 所有的0替换为1
  7. ifconfig eth0 |grep 'inet addr'|sed 's/^.*addr://g'|sed 's/Bcast.*$//g' 提取IP
  8. sed -r 's/((\S+\s+){10})/\1\n/g' file 每行10个单词显示

awk

  1. last -n 5 | awk '{print $1 "\t" $3}' 取出账户和IP
  2. tail -f catalina.out |grep {.*} | awk 'BEGIN{RS=",|=|{|}"}{print}' json格式日志
  3. awk -F: '{print $1,$NF}' /etc/passwd 用户的shell
  4. awk -F: 'BEGIN{printf "%10s %10s\n\n","user","shell"}!/nologin/{printf "%10s %10s\n",$1,$NF}' /etc/passwd 同上

diff

  1. diff -bBi file1 file2 比较2个文件,忽略多个空格/空行/字母大小写
  2. diff -Naur old/ new/ > mysoft.patch 制作布丁文件

patch

  1. patch -p0 < mysoft.patch 更新补丁文件

jq

  1. jq . file 格式化json
  2. jq '.contributors[]|name' file
  3. jq '.contributors[]|{name}' file

6. 用户

id

  1. id 显示当前用户身份

w/who

  1. w/who 查看当前登陆用户

last/lastlog

  1. last/lastlog 查询用户登陆历史

su/sudo

  1. sudo commond root权限执行命令
  2. su 切换到root用户

7. 进程管理

crontab

  1. crontab -e 编辑例行任务
  2. crontab -l 查看例行任务

&/nohup

  1. tar -zpcf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 & 后台执行任务
  2. nohup commond & 后台执行任务,与终端无关

jobs/fg/bg

  1. jobs 查看后台工作任务
  2. ctrl+z 暂停前台任务并丢到后台
  3. fg %n 把后台序号为n的任务,放到前台继续执行
  4. bg %n 把后台序号为n的任务,在后台执行

ps

  1. ps -ef 列出所有进程

kill

  1. kill -9 pid 强制终止
  2. killall httpd 终止httpd相关的所有进程

free

  1. free -h 查看内存

top

  1. top 查看进程和系统状况
  2. top -b -n 10 > /tmp/top.txt top信息进行2次并输出到文件

netstat

  1. netstat -tunlp | grep mysql/3306 网络监控

service

  1. service --status-all 所有系统服务的状态
  2. service httpd start/stop/restart/status 对系统服务启动/停/重起/查看状态
  3. /etc/init.d/httpd start/stop/restart/status 同上

chkconfig

  1. chkconfig --list [httpd] 查看服务是否开机启动的情况
  2. chkconfig httpd on/off 设置httpd服务开机启动/不启动
  3. /etc/rc.d/rc.local 将非系统服务程序加入开机启动

8. 安装程序

rpm

  1. rpm -ivh name.rpm 安装rpm并显示详细信息和进度条
  2. --prefix /usr/lib 指定安装路径
  3. -Uvh 已经安装的更新,没有安装的安装
  4. -Fvh 已经安装的更新,没有安装的不会安装
  5. rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 导入数字证书文件
  6. rpm -e zip 删除软件
  7. 查询已安装软件
  8. rpm -qa 已经安装的软件
  9. rpm -q mysql 查询mysql是否已经安装
  10. rpm -qi mysql mysql的详细信息
  11. rpm -ql mysql mysql的所有文件和目录
  12. rpm -qc mysql mysql的所有配置文件
  13. rpm -qd mysql mysql的所有帮助文件
  14. rpm -qR mysql mysql的依赖软件
  15. rpm -qf file 查询file属于哪个已安装软件
  16. 查询rpm
  17. rpm -qp[icdlR] name.rpm 查询要安装的rpm的信息

yum

  1. yum search raid 搜索raid
  2. yum info raid 查看软件信息
  3. yum list pam* 列出以pam开头的软件
  4. yum list updates 可以更新的软件列表
  5. yum provides passwd 哪些软件含有passwd文件
  6. yum insatll pam-devel -y 安装
  7. yum remove pam-devel 卸载
  8. yum grouplist 列出软件组
  9. yum groupinfo XFCE 软件组信息
  10. yum groupinstall XFCE 安装软件组
  11. yum groupremove XFCE 删除软件组

9. 网络

ssh

  1. ssh 192.168.1.100
  2. ssh -p521 user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub 将本地文件内容追加到远程主机文件
  3. cd && tar czv src | ssh user@host 'tar xz' $HOME/src/目录下面的所有文件,复制到远程主机的$HOME/src/目录
  4. ssh user@host 'tar cz src' | tar xzv 将远程主机$HOME/src/目录下面的所有文件,复制到用户的当前目录。
  5. ssh user@host 'ps ax | grep httpd' 查看远程主机是否运行进程httpd

scp

  1. scp -P 522 local_file user@host:/remote_folder/remote_file 本地到远程
  2. scp user@host:/remote_folder/remote_file local_file 远程到本地
  3. scp -r local_folder user@host:/path/remote_folder 拷贝文件夹

wget

  1. wget -t 5 url -O filename -o log 下载,最多重试5次,并指定保存的文件名和日志
  2. wget -c url 断点续传
  3. wget --ask-password url 需要验证的

curl

  1. curl url -o localfile 下载并保存,
  2. curl url --silent -O 不显示进度信息,并保存为原有文件名
  3. curl -C - -O url 断点续传
  4. curl -u user url
  5. curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/ 列出文件下的目录列表
  6. curl -ls -O ftp://ftpuser:ftppass@ftp_server/public_html/ 列出文件下的目录列表
  7. curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php 下载ftp文件
  8. curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com 上传文件
  9. curl u name ftp://www.xxx.com/ -X 'DELE mp3/[1-9].mp3' 删除ftp上文件名为1到9的mp3文件

鲜花

握手

雷人

路过

鸡蛋

最新评论

相关分类

Archiver|手机版|小黑屋|浩思BBS

GMT+8, 2020-5-27 15:00 , Processed in 0.092372 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部