Linux命令学习笔记

Linux就该这么学
几年前的Linux命令学习笔记,从印象笔记转移过来,献给初学者参考浏览!
1、alias                                             //查看全部alias的定义, 可在.bash_profile(.bashrc、/ect/profile 也可以)文件中定义;
     也可以临时定义:
     alias  'cd ~/log/MPP/`date +%Y%m%d`;pwd'     //代替命令='要执行的命令1;命令2;命令3...'
     ln  -s  /root/abc.java   aa          //软连接,aa-->abc.java
     clear                                            //清除屏幕
     history                                 //查看执行过的历史命令记录
     history 20                                      //查看最近执行的20条历史命令记录
     env | more                                //查看该用户的环境变量,PATH;依然定义在:/用户目录/.bash_profile
     说明:| more:带分页显示(空格键下一页,回车下一行);| less:带分页,提供页数输入
     echo   $PATH/USER/SHELL      //显示变量内容,跟env一样,只是可以选择显示哪类
2、Shell
     1)环境变量,profile文件(shell脚本),如配置jdk,tomcat,一般是在/etc/profile或$HOME/.bash_profile配;
     2)配置一些变量,.bash_profile(shell脚本),如alias,bin的PATH路径(env查看);
     3)配置开机自动执行程序,.bashrc(shell脚本),如让tomcat开机就启动:/home/tomcat/bin/startup.sh start
     说明:在/etc/目录下,对所有用户有效;在/root/或/home/用户目录/下,对当前用户生效;
     export  PATH=$PATH:/root          //添加环境变量/root路径,临时生效
3、系统日期,时间c
     date                              //查看系统当前日期、时间
     who am i                             //查看当前用户,whoami:只显示用户名,who:显示所有用户
     date -s 05/27/2011             //将系统日期修改为:2011年5月27日 (需oot用户修改,其它用户默认只能查看)
     date -s 10:24:00                 //将系统时间修改为:10点24
date 02050930                   //将系统时间修改为:2月5日9点30 (年份保持修改前的年份), date 0930不行,完整格式MMDDHHMMYYYY.SS:月日时分年.秒`
     cal 3 2002                         //查看2002年3月的月历
     cal 2008                             //查看2008年的年历
4、修改文件即时生效                                //source命令也称为“点命令”,也就是一个点符号(.)
     source 目录/文件 或 .  目录/文件     //注意:  . 和 目录/文件间有空格,例:. .bash_profile
5、查看目录和文件
     cd -                                     //退回进入此目录之前所在的目录,区别于上级目录:cd ..
     cd                                                 //直接cd,到当前用户的主目录去
     ls                                                  //简要列出文件、文件夹, 不含隐藏;dir :不区分颜色显示
     ll                                                  //详细列出文件、文件夹, 不含隐藏, 同ls -l
     ls -a                                             //简要列出文件、文件夹, -a,含隐藏
     ls -la                                            //详细列出文件、文件夹, -a,含隐藏
     ls -lh                                            //-lh,显示大小
     通配符:
     *:多个,?:一个
6、文件时间
    stat a.txt                              //查看文件时间戳
    ll  a.txt                                   //查看a.txt文件的-l 信息
    touch [acdmt] 文件          //修改文件时间或创建新文件
7、查看路径
     pwd                                    //查看默认工作目录的完整路径 --连接(link)路径
     pwd -P                                        //显示出实际路径,而非连接(link)路径
     pwdx 1158(进程号)                  //查看该进程号所属目录
8、进程、端口
     ps -ef|grep  java(程序名称)           //查看tomcat进程,貌似tomcat,weblogic都可以用java进程来查,杀之
     kill -9 进程数                                        //杀死进程(-9:强制)
     netstat -an|grep 7988                   //查看7988端口监听是否启动
     jps                                                     //显示该用户,java进程
     ps -aux  | more                                //(静态)查看进程,分页显示; 动态查看:top  ,详见 24、系统性能
     ps -aux|grep tomcat                      //查tomcat进程(不同用户权限也可以看到)
     netstat -anp | more                      //查看端口占用情况,-anp的p会把进程信息也显示出来
     telnet 192.168.1.128 7988               //检测端口是否开放(在windows cmd中执行)
     traceroute ip地址或域名                 //追踪路由;cmd中:tracert
9、分配权限
   chmod +x  目录/文件                     //添加执行权限
    chmod a+x filename/文件夹          //给文件所有(a)用户分配所有权限
    chmod 777 文件/文件夹                   //添加rwxrwxrwx权限,可读r:4,可写w:2,可执行x1
10、查找
     find /home -name file                         //从目录/home开始搜索文件和目录
     find /home -amin -10                           //10分钟内存取的文件或目录;
     说明:-a:存取,-c修改;min:分钟,time:小时;-:时间内,+:时间前
     find /home -size +100000k                 //从/home目录开始查找大于100M的文件;
     说明:+:大于,-:小于;k:kb,c:字节;可并用:find /home -size +5555c -size -5557c //大于5555字节小于5557字节
     find /etc -name "abc*" -print          //查找/etc下以abc开头的文件;-print:将匹配的文件输出到标准输出
     grep "abc" xxx.java                     //显示xxx.java文件中有abc的行
     grep -n "abc" xxx.java                   //带行号显示
     grep "abc" xxx.java > xxx.text       //覆盖写;<:导入,备份;
     grep "abc" xxx.java >> xxx.text     //追加写
     grep  'test'  d*                              //显示所有以d开头的文件中包含 test的行
     grep ‘test’ a.file b.file c.file               //显示在a.file,b.file,c.file文件中匹配test的行
grep ‘[a-z]\{5\}’ a.file                    //显示a.file文件中,至少有5个连续小写字符的字符串的行
     grep magic /usr/src/Doc/*              //在/usr/src/Doc目录下搜索带字符串’magic’的文件
     which java
     whereis  java                                    //查找jdk位置
     cat /proc/version                             //查看linux版本信息
     查看64位还是86位:
     java -version                                       //(Java)Java HotSpot(TM) 64-Bit:64位;默认没有一般是32位
     uname -a                                    (-r)  //(Linux)x86_64:64位;i686:32位
11、查看 --日志
     tail -f a.log                                    //动态输出,另:tail -300 a.log  ,只查看300条
     tailf a.log
     tail -n 10 a.log                               //最后10行
     tail -n 10 a.log | head -n 5         //最后10行的前5行
     cat  /dev/null  >  file               //将文件内容清空
     view/cat/more  a.log               //静态查看
     跳转:
     1)、:0 , :1 , gg都可以到第一行;
      2)、或者:$=检查总行数;比如24,:24到第24行
     3)、shift+g(大写G)到末行;
     4)、Ctrl + F/B,向前/向后页
      查找:
       先输入 / 再输入要查找的内容 最后回车。查找下/上一个单词所以位置用n/N
     u 返回上一步操作,Ctrl+R撤销
     :set nu                                          //显示行号
12、移动/修改 --文件、文件名
     mv test.log  test1.txt                //修改文件名为test1.txt
     mv test1.txt test3                      //移动文件或文件夹(可多个同时)到test3目录下
13、修改替换 --文件内容
    sed -i "s/aaa/bbb/g" 1.txt                 // 将文件1.txt内的文字“aaa”批量替换成“bbb”
    sed -i "s/aaa/bbb/g" 'ls'                    //将当前目录下的所有文件内的“aaa”替换成“bbb”,其实也就是ls出多个文件名
    sed -i "s/aaa/bbb/g" 'grep aaa -rl /home'          //替换/home下所有文件中的aaa替换为bbb
     vi , vim (进入文件)--> i (进入可编辑状态)--> esc (退出可编辑状态)--> : (进入执行操作状态)--> wq, q!(保存退出, 不保存强制退出)
14、复制 --文件、目录
     cp a.log test5                                 //复制到test目录中,,(带-a参数时,时间也是一致的)
     说明:目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。
     cp -a test3 test5                            //复制整个目录到test5
     说明:目标目录存在时,整个源目录(包括自身目录)被复制到目标目录里面;不存在,就创建test5,里面内容同test3
     cp -r dir1 dir2                                  //(包括子文件夹)复制到dir2文件夹,-r:递归recursion,-f:强制force(慎用)
15、创建目录
     mkdir test1                                    //创建一个空目录,touch:新建空文件
     mkdir -v test2                                 //创建新目录,并显示创建信息
     mkdir -p test3/test3_1                 //递归创建多个目录
     mkdir -vp test4/test4-1                //递归创建多个目录,并显示创建信息
     mkdir -m 777 test5                       //创建权限为777的目录 ,test5 的权限为rwxrwxrwx
16、删除 --文件、目录
     rm a.log                                 //删除文件file,系统会先询问是否删除
     rm -i  *.log                               //删除任何.log结尾的文件;删除前逐一询问确认
     rm -r test1                               //将 test1子目录及子目录中所有档案删除 ,会询问,-r:递归
     rm -f  a.log                             // 强行删除file,系统不再询问, 慎用
     rm --  -f                                   //删除以 -f 开头的文件
     rmdir folder1 //删除空目录,非空目录删不了,只能用rm命令
17、用户管理
     useradd xiaoming                                   //增加xiaoming用户
passwd xiaoming                                     //接着输两次密码
chown user1 /home/weblogic            //把home目录下的weblogic目录的拥有者改为user1用户
chgrp group1/home/weblogic           //把home目录下的weblogic目录的所属组改为group1组
     cat  /etc/passwd                                        //查看用户列表(nscd下面为新建用户) ,w 查看活跃用户
     cat  /etc/group                                          //查看组列表
     awk -F":" '{print $1}' /etc/passwd              //只查看所有的用户名
     lastlog                                                           //查看所有用户(登录情况)x
18、解压、打包
    tar -xzvf file.tar.gz                      //解压tar.gz包 至当前目录
    tar -czvf /root/filename_$(date +%Y-%m-%d).tar.gz  /home/weblogic/files      //打包(.tar.gz)
    tar -xvf file.tar                             //解压 tar包
    unrar  file.rar                           //解压rar
    unzip file.zip                            //解压zip
19、RPM管理
     rpm -ivh 目录/安装包名               //i:安装,v:显示进度条,h:显示安装信息
     rpm -q mysql(软件名)                 //查看是否已经安装mysql
     rpm -e samba(软件名)                //卸载samba
20、乱码
     export LANG=en_US                 //设置成英文,乱码时用
21、防火墙 --开,关
     service iptables start/stop             //开启/关闭防火墙,即时生效,重启后失效
     chkconfig iptables on/off            //重启后永久生效
22、设置网络 --ip
    ifconfig                                                                //查看ip情况,cmd是ipconfig
    ifconfig eth0 192.168.0.10 netmask 255.255.255.0        //方法1,设置(eth0)ip,立即生效,重启后失效
     ifconfig eth0 up                                                                //连接eth0网络
vi /etc/sysconfig/network-scripts/ifcfg-eth0             //方法2-1重启后永久生效,重启机器,IP不会丢失
     setup                                                                  //方法2-2, 界面配置,(需要root用户)
     /etc/rc.d/init.d/network restart                     //运行该命令,使方法2-1,2-2的设置生效
23、远程登录
     ssh 用户名@ip地址                                            //回车输入密码 ,登录到远程机器
24、远程文件传输
     sftp 用户名@ip地址                                            //回车输入密码,登录到远程sftp
     put  /local_path/file   /remote_path/           //上传
     get /remote_path/file  ./yb/                          //下载, 到本地当前目录的yb文件夹中
     help                                                       //查看sftp支持的命令
    (推荐:不用先登录,更方便)
     scp  /local_path/file   user@ip:/remote_path/                             //上传
     scp  user@ip:/remote_path/file   /local_path/                               //下载
25、任务调度
    crontab -l                                                //查看有哪些定时任务
    crontab -e                                                //设置定时任务,进入添加定时任务文件中
     格式                                                            //minute   hour   day   month   week   command
     00 23 * * * /root/backup_nohup.sh      //每晚11点执行,(分0-59  时0-23  日1-31  月1-12  星期0-6)
     0 2 * * * date >> /home/mydate2       //每天凌晨2点,将系统时间追加写到mydate2文件中
     crontab -r                                                //终止任务调度(删除了crontab -e 的内容),-r:remove,小心使用
     调度多个任务:
     直接在crontab -e 中写多行                     //方法一,不推荐
     把多个任务都写到一个可执行文件中        //方法二,shell编程,推荐
     vi /root/mytask.sh                                 //在mytask.sh中写任务,然后在crontab -e 中调度mytask.sh执行文件即可
26、系统性能、内存
     free -m                                              //查看服务器内存使用情况,-g:G为单位,-m:M为单位
     top                                                    //(动态)查看系统CPU运行情况,按q退出,或ctrl+c
     top -d 10                                           //10秒刷新一次
     按u                                                    //可选择显示那个用户的情况
cat /proc/cpuinfo                        //查看CPU的信息
     reboot                                             //重启服务器(用root用户登录)
     vmstat 1 4                                      //监控Linux服务器的整体性能
uptime                                           //查看Linux服务器的平均负载
w                                                     //详细查看负载
fdisk -l                                            //查看硬盘及分区信息
     df -h                                               //检查文件系统的磁盘空间占用情况
     iostat -d -x -k 1 5                                       //查看硬盘的I/O性能
du -sh /bin/                                               //查看指定目录的大小
du -cks * | sort -rn |head -n 10            //查看当前目录下的文件占用率
     lsmod |grep ip                                      //查看系统已载入的相关模块
27、 linux系统启动过程:
     a)BIOS自检
     b)启动GRUB/LILO
     c)运行linux内核并检测硬件
     d)运行第一个进程init
     e)init读取系统引导配置文件 etc/inittab中的信息进行初始化
     f)/etc/rc.d/rc.sysinit                           //系统初始化脚本,比如,启动的内容,用户密码
     g)/etc/rc.d/rcX.d/[KS]*                       //根据运行级别x配置服务;终止"K"开头的服务,启动"S"开头的服务
     h)/etc/rc.d/rc.local                             //执行本地特殊配置
     i)其他特殊服务

本文由来源 DeepthYB,由 centos 整理编辑,其版权均为 DeepthYB 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。

浮夸流沙

相关文章

发表评论

邮箱地址不会被公开。 必填项已用*标注