Linux常用命令:

Linux

  1. Linux常用终端命令
    1. ls
    2. pwd
    3. cd
    4. touch [文件名]:文件不存在就新建。
    5. mkdir [目录名]
    6. rm [文件名]
    7. clear
    8. cp
    9. mv
    10. rm:rename
  2. 终端命令形式:command [-options] [parameter]
    1. rm -rf [目录名]:删除目录级其下的文件
    2. rm -r [目录名]:删除目录
  3. 查阅命令的选项帮助信息
    1. command --help:简要帮助,适用于一般命令,非内置命令
    2. man command :manual,详细手册,内容很多一屏显示不完,适用于一般命令,非内置命令
      • b:向后一页
      • f或控制键:向前一页
      • enter:显示下一行
      • q:退出手册
    3. help command  :适用于内置命令
    4. info 一般不用
  4. ls:
    1. .或者./:当前目录
    2. cd ..或cd ../:上一级目录
    3. .文件名:隐藏文件
    4. ls -a :列出当前目录中的所有文件,包括隐藏文件
    5. ls -l:显示详细信息(纵向显示,大小(B),时间,权限)
    6. ls -h:配合-l使用,单独使用没作用(大小显示单位k)
    7. ls -lh
  5. 通配符的使用:
    1. *:任意多个字符
    2. ?:代表一个字符,至少一个
    3. []:匹配其中任何一个
    4. [a-f]:匹配a-f中任何一个
  6. cd :
    1. cd ~或cd :切换到用户目录
    2. cd .:当前目录
    3. cd ..:上一级目录
    4. cd /:回到根目录
    5. cd -:最近的两次工作目录下切换
  7. 相对路径和绝对路径
    1. 绝对路径:/
    2. 相对路径
  8. touch:
    1. 文件不存在:创建文件
    2. 文件存在:修改文件末次修改时间
  9. mkdir:
    1. mkdir -p a/b/c/d:创建多层文件夹
    2. 同一个目录下:目录名和文件名(包括后缀)不允许重复
    3. mkdir -p a :如果啊目录存在不会报错
    4. mkdir /data/{330,227} /data -p:在/创建/data/330/data和/data/227/data
  10. rm:删除后不可回收站里回收
    1. rm -r a:删除文件夹所有内容
    2. rm -f abc:不与用户交互
  11. tree:
    1. tree 以树的形式显示当前文件夹下所有文件
    2. tree [文件夹]:以树的形式显示指定“文件夹”下所有文件
    3. tree ~:以树的形式显示当home下所有文件
    4. tree -d:以树的形式显示当前文件夹下所有文件夹
  12. cp:
    1. cp [源文件] [目的文件夹]:源文件拷贝到目的文件夹(指名名字,则会更改名字)
    2. cp -i [源文件] [目的文件夹]:如果目的文件夹有同名文件,询问是否覆盖
    3. cp -r [源目录] [目的目录]:源目录下所有文件复制到目的目录,目的目录不存在会创建
    4. \cp test.txt ./data/ :目的文件夹如果有同名文件会覆盖,而且不提示。
    5. /bin/cp test.txt ./data/:目的文件夹如果有同名文件会覆盖,而且不提示。
    6.  
  13. mv:移动/重命名
    1. mv [源文件/目录] [目的文件]:源文件移动到目的文件夹
    2. mv [源文件/目录] [目的文件]:源文件与目标文件路径一样,但名字不同,则更名,有可能出现覆盖的情况
    3. mv -i:询问是否覆盖
  14. 查看文件内容
    1. cat [文件]:一次性显示文件完整内容,创建/合并文件
      • cat -b [文件]:显示行号,不显示空行行号
      • cat -n [文件]:显示所有行号(包括空行)
      • 使用cat向文件追加内容:[root@oldboy data]# cat >>oldboy.txt <<EOF

> hello linux

> EOF

    1. more [文件]:分屏显示文件内容,回车向下滚动一行,空格键/f向下一屏幕,b:向上一屏,q:退出查看,同man命令
    2. grep:文本搜索工具
      • grep -n 单词 [文件名]:显示文件里包含单词的地方,显示行号
      • grep -v 单词 [文件名]:显示文件里不包含单词的行。grep -v oldboy test.txt :查找文件里不含有oldboy的行
      • grep -vn 单词 [文件名]:显示文件里不包含单词的地方,包含行号
      • grep -i 单词 [文件名]:搜索时忽略大小写
      • grep -i 单词 [文件名]:搜索时忽略大小写,显示行号
      • 所有的单词有空格,搜索时需要加“”
      • 模式查找:
        1. grep  ^单词 [文件名]:指定的单词在行首
        2. grep  单词$ [文件名]:指定的单词在行尾
      • (7)grep 20 -A 10 ett.txt:打印出第20行的数据,以及以后的10行
      • (8)grep 25 -C 5 ett.txt:打印第25行数据,以及前后各5行
      • grep 30 -B 10 ett.txt:打印第30行,以及30行之前的10行
  1. echo:把输入到终端的内容重定向到文件里
    1. echo 内容 > 文件名:把内容输入(覆盖)文件里,文件不存在会创建,最好先备份内容
    2. echo 内容 > >文件名:把内容追加到文件里
    3. 追加多行:echo '111

222

333

'>oldboy.txt

    1. echo {1..10}:输出1-10/echo {a..z}:a-z的序列
    2. seq -s “ ” 10:1-10的序列,不能字母序列
    3. ls -lh > a:把ls -lh 查询的内容输入a里,
    4. tree  >> a:把tree 的内容追加到a里
  1. 管道:|:把一个命令的输出作为另一方命令的输入
    1. more:ls -lh | more
    2. grep:ls -lh | grep:查询ls-lh的输出结果
  2. shutdown -[options] [时间]
    1. shutdown不指定时间会1min后关闭电脑,shutdown -c取消关闭计划
    2. shutdown -r now:立即重启
    3. shutdown 20:25:20:25 时关闭
    4. shutdown +10:10min后自动关机
  3. 查看配置网卡信息:
    1. ifconfig:查看/配置网卡配置信息
      •  
    2. ping ip地址:
  4. SSH:
    1. 数据传输加密,数据传输压缩
    2. SSH服务器的默认端口号22,默认端口可以省略
    3. 远程登录格式:ssh [-p port] user@remot  --》user用户名;remote:远程级计算机的ip/域名;port:ssh server监听的端口号。
    4. Windows系统需要安装ssh客户端,MacOS/Linux自带ssh客户端
      • XShell/Putty
      • scp:远程拷贝文件/目录
        1. scp -P 22 [源文件] user@remote:[远程目标文件]
        2. scp -P 22 user@remote[源文件] [本地目标文件]
        3. scp -P 22 -r user@remote[源文件夹] [本地目标文件]
        4. windows没有scp命令,可以使用FileZilla
    5. 免密远程登陆:scp/ssh命令登录远程计算机不用输入密码
      • 确认ssh下有known-hosts
      • .ssh下输入:ssh-keygen
      • .ssh下出现:id_rsa_pub和id-rsa
      • .ssh下输入:ssh-copy-id 被远程登录主机名@IP
      • 被远程登录的主机的.ssh下出现:authorized_keys文件,其内容与id_rsa_pub一样
  5. ls -l:
    1. 权限
    2. 硬件接数:有多少种凡是可以访问当前目录/文件
    3. 拥有者
    4. 大小
    5. 时间
    6. 名称
  6. chmod:修改用户/组对文件/目录的权限
    1. 格式:chmod +/-[rwx] 文件名|目录名
    2. eg: chmod -rw 223.txt:去除用户对223.txt的rw权限
    3. 目录没有可执行权限,则无法访问(cd /ls)其下的文件(进入不了)
    4. 目录没有可读权限,无法使用ls查看其下的文件
    5. 目录没有可写权限:无法在其下创建文件
  7. 超级用户
    1. 所有资源具有所有访问权限,不推荐使用root登录账号,root用户维护和管理系统
    2. 标准用户只能在home目录下活动
    3. sudo
      • su:使用另一个用户身份
      • sudo:以其他身份执行命令,预设身份为root
      • 用户使用sudo,第一次输入密码,5min后密码失效,重新输入人
  8. 组管理
    1. 添加组 groupadd 组名:
      • 需要sudo权限:sudo groupadd dev
    2. 删除组groupdel 组名:
      • 需要sudo权限:sudo groupdel dev
    3. 确认组信息:cat /etc/group
      • 组信息保存在/etc/group里
    4. 修改文件/目录所属的组:-R递归修改文件权限
      • chgrp -R 组名 文件/目录名
  9. 用户管理
    1. 创建用户 useradd -m -g 组 用户名:-m自动创建home/用户名目录;-g指定用户所属的组,否则会建立一个和用户同名的组。sudo useradd -m -g dev zhangsan;wan忘记-m,要删除用户再重加
    2. 设置密码 passwd 用户名:sudo passwd zhangsan
    3. 删除用户 userdel 用户名:sudo userdel -r zhangsan;-r自动删除用户home目录
  10. 查看用户信息
    1. id 用户名:查看用户代号(保存在/etc/passwd)和组代号(保存在/etc/group)
    2. /etc/passwd文件信息,使用“:”分组
      • 用户名
      • 密码(x.表示加密密码)
      • UID:用户ID
      • GID:组ID
      • 用户全名/本地账号
      • 家目录
      • 登录使用的Shell,就是登录后使用的终端命令,默认是dash(不好用)
    3. who:查看当前时刻登陆的所有用户
    4. whoami:查看当前用户名
    5. usermod设置用户主组/附加组/shell
      • 修改附加组(用来指定用户的附加权限,/etc/group里 )sudo usermod -G 附加组名 用户名
      • 修改主组(建立用户时的组,/etc/passwd的第四列 )sudo usermod -g 主组 用户名
      • 重新登录后才能生效
      • sudo usremod -s /bin/bash zhangsan:指定张三用户的shell(bash是带颜色显示的shell)
  11. which:查看用户使用的命令所在的位置
    1. /etc/passwd:保存用户信息的文件
    2. /usr/bin/passwd:用于修改用户密码的程序
    3. which passwd
  12. 切换用户
    1. su - 用户名:-切换用户并切换到新用户的对应目录 su - zhangsan
    2. su -:切换root用户,不推荐执行,不安全
    3. exit:退出用户
  13. 修改文件权限
    1. chown:修改文件拥有着
      • chown 用户名 文件名|目录名
    2. chgrp:修改组
      • chgrp -R 组名 文件|目录名
    3. chmod:修改权限
      • chmod -R 755 文件|目录名(7:拥有者权限(rwx),5:组权限(rx);5:其他用户权限(rx))
        1. r-->4; w-->2; x-->1;----> 7=4+2+1=rwx;   5=4+1-->rx;
        2. 777 u:rwx,g=rwx,o=rwx
        3. 755 u=rwx,g=rwx,o=rwx
      • chmod +/-rwx 文件|目录名:不能改组的权限
  14. 系统信息相关命令
    1. 时间和日期
      • date:当前系统时间
      • cal:显示日历
      • cal -y:一年的日历显示
    2. 磁盘和目录空间
      • df -h:disk-free,显示磁盘剩余空间
      • du -h [文件名]:disk-usage,显示目录下的文件大小
      • -h:人性化指名文件空间大小
  15. 系统信息:
    1. 进程信息:
      • ps  au 查看进行的详细状况,不带选项则显示当前用户终端启动的情况,ps aux:选项不需要‘-’
        1. a:所有用户终端中启动的进程
        2. u:进程详细信息
        3. x:显示正在执行的程序(包括不是通过终端启动的程序)
      • top 动态显示运行的程序且排序(cpu占用/内存占用),q退出top程序
      • kill [-9] 进程代号:-9强行中止程序,不要随便使用
    2. 查找文件find
      • 格式:find [路径] -name “*.py”:查找指定路径下,以.py结尾的文件,包括子目录
      • - type找文件并删除:find ./ -type f -name 'old*' -exec rm {} \;
      • 找文件并删除:find ./ -type f -name 'a*' | xargs rm -f(把找到的所有文件作文rm -f的一行输入 ,rm -f a.xt b.txt ……)
      • find ./ -type f -name “*.log” -mtime +15 | xagrs rm -f :删除当前目录里15天前修改过的.log文件
      • find ./ -type f -name “*.log” -mtime 15 | xagrs rm -f :删除当前目录里第前15天修改过的.log文件
      • find ./ -type f -name “*.log” -mtime  -15 | xagrs rm -f :删除当前目录里最近15天修改过的.log文件
      • mv `find ./ -type f -name "*.txt"` /tmp/  把当前目录下的txt文件移动到/tmp下,“``”是键盘的“~键”下的
      • find /oldboy/ -type f -name "test.sh" -o -name "a":找/oldboy写文件名为test.sh 或者名为a的文件
      • find /oldboy/ -type f -name "test.sh" -a -name "a",找/oldboy写文件名为test.sh 并且名为a的文件,输出空
      • find /oldboy/ -type f ! -name "test.sh":找/oldboy目录下的除test.sh外的所有文件
    3. 软链接:快捷方式
      • ln -s 被软连接的文件完整路径 链接文件名:-s不可以省略
    4. 硬链接:删除链接的文件,硬链接不会有影响;一般不会建立硬链接
      • 没有使用-s:ln 链接的文件完整路径 链接文件名
      • Linux文件名和数据分开保存的
    5. 打包:tar
      • Linux: tar.gz
      • tar:常用备份工作
        1. tar -cvf 打包文件名.tar 被打包文件 /路径(多个文件空格分隔)
        2. 解包:tar -xvf 打包文件.tar
      •  
    6. 压缩:gzip
      • tar打包后生成的文件.tar后使用gzip命令压缩:*.tar.gz
      • tar -zcvf 打包文件名.tar.gz 被打包文件 /路径:压缩打包
      • tar -zxvf 打包文件.tar.gz :解压
    7. bzip2:打包和压缩
      • 扩展名:.tar.bz2
      • tar -jcvf 打包文件名.tar.bz2 被打包文件 /路径:压缩打包
      • tar -jxvf 打包文件.tar.bz2 :解压
    8. 解压到指定目录: -C [目标目录(一定要存在)](适合gzip,bzip2):tar -jxvf py.tar.bz2 -C bz2(将py.tar.bz2解压到bz2文件夹下)
    9. 软件安装:apt
      • 安装软件:sudo apt install 软件
      • 卸载软件:sudo apt remove 软件
      • 升级软件:sudo apt upgrade
  16. 重定向:
    1. >或1>:重定向输出,覆盖,没有文件会创建
    2. >>或1>>:追加输出内容。
    3. 0<或<:输入重定向,用于改变命令的输入,后面指定输入的内容,前面跟文件名
    4. 0<<或<<:追加输入重定向:后跟字符串用来表示“输入结束”,也可用ctrl+d结束输入
    5. 2>:错误重定向,把错误信息输入到后面的文件里,会删除原来 的内容
    6. 2>>:追加错误重定向,把错误信息追加到后面的文件里,不会删除原来 的内容
    7. 箭头的指向就是信息的流向
    8. eg 清空文件:‘:>oldboy.txt’
    9. 追加:echo “hh elo”>oldboy.txt
    10. xargs -n 1 <oldboy.txt:将文件的内容给作为输入传给命令,xargs - n 1表示一行一个
    11. 正确和错误全部放在一个文件:
      • echo cho 11 3 >a 2>b:正确的在a里,错误在b里
      • cho 11 3 >a 2>a:正确错误都在a
      • cho 11 3 >a 2>&1:正确错误都在a
      • cho 11 3 &>a:正确错误都在a
    12. cat :查看文件内容 cat 文件
      • cat追加,文件不存在会创建注意不要有空格:cat >>test.txt<<EOF

TEST

liyyao

oldboy

EOF

      •  
    • xargs从标准输入获取内容创建和执行命令行
      • -n 数字:多少个为一组
      • xargs -n 1 < oldboy.txt:oldboy里一个字符串为一组作为输入
  1.   head:
    1. head -2 test.txt:找文件里前两行
    2. seq 20 1>a.txt:向a.txt里写1-20的序列号,从1-20
    3. seq 10输出1-19
    4. seq 3 10:3-10的序列
    5. seq head -30 ett.txt | tail - 11
    6.   
  2. alias:
    1. alias:查看系统现有别名:
    2. unalias 命令:取消系统现有别名
    3. 设置别名:alias rm =’rm -i’:rm就默认有提示是否删除
    4. alias net =’cat /etc/sysconfig/network-scripts/ifconfig-eth0’:输入net就会显示eth0的配置信息
    5. 定义别名永久生效:/etc/profile
    6. 别名当前用户生效:source ~/.bashrc
  3. sed:stream editor 流编辑器,实现对文件的增删改查
    1. sed 's#oldgirl#gongli#g' oldboy.txt:将文件里所有内容中的oldgirl替换为gongli输出,但是文件内容没有改变
    2. sed -i 's#oldgirl#gongli#g' oldboy.txt:-i会更改文件内容
    3. sg:全局替换
    4. -i:修改内容
    5. -n:取消默认输出
    6. p:打印,与gs联合使用时,表示对当前行全局替换匹配
    7. -s:指定分隔符,默认回车为分隔符。seq -s “ ” 10:一行横着打印1-10
  4. awk:用于过滤、输出内容
  5. 查看ett.txt的第20到30行:
    1. head -30 ett.txt | tail - 11
    2. sed -n 21,30p ett.txt :-n取消默认输出(默认会输出文件所有的行);p:打印
    3. sed -n ‘$’p ett.txt :打印结尾的行
    4. sed -n ‘21’p ett.txt :打印21行
    5. awk 'NR>19&&NR<31' ett.txt:NR是行号
    6. awk 'NR==31' ett.txt:输出第31行
    7. grep 20 -A 10 ett.txt:打印出第20行的数据,以及以后的10行,After
    8. grep 25 -C 5 ett.txt:打印第25行数据,以及前后各5行,Before
    9. grep 30 -B 10 ett.txt:打印第30行,以及30行之前的10行,Context
  6. 把/oldboy目录以及其子目录下所有以.sh结尾且文件里包含oldboy的文件全部替换为oldgirl:
    1. find /oldboy -type f -name "*.sh" | xargs cat:输出find找到的文件的所有的内容
    2. find /oldboy -type f -name "*.sh" | xargs sed -i 's#oldboy#oldgirl#g'
    3. sed -i 's#oldgirl#oldboy#g' `find /oldboy -type f -name "*.sh"`等价于:sed -i ‘s#oldboy#oldgirl#g’ /oldboy/t.sh /oldboy/test.sh /oldboy/test/test.sh
  7. 改linux系统日期:date -s "2018-11-30 16:55:00"
  8. !:
    1. !m:调出最近使用的m开头的命令
    2. !!:调出最近使用的命令
    3. !数字:调出最近使用的第几个命令
    4. history:显示最近的操作记录,这里查出的id作为’!数字’里的数字
    5. !:取反:
      • find /oldboy/ -type f ! -name "test.sh":找/oldboy目录下的除test.sh外的所有文件
  9. 快捷键:
    1. ctrl+c:中止当前命令,输错命令后,不能退出的话。
    2. ctrl+d :退出当前用户环境
    3. ctrl+l:clear
    4. ctrl+a:定位光标开头
    5. ctrl+e:定位光标结尾
    6. ctrl+u:清楚光标前的
    7. ctrl+k:清除光标后的
    8. ctrl+r:搜索使用过的命令
  10. pwd:
    1. -P: 显示物理路径,如果有软连接,会显示原路径。
    2. pwd 默认带参数-L
  11. 查看SSh 进程:ps -ef|grep ssh
  12. 查看SSh监听的情况:netstat -lntput|grep sshd
  13. 服务端SSH服务:进程名:sshd,openssh(连接),openssl(加密)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值