• linux常用命令


    1. 文件操作

    1.1 获取文件头/文件尾

    head -100 catanila.out > temp.log
    tail -f oc.logs
    tail -100 oc.log
    

    1.2 合并文件

    cat *.txt > test.txt 
    

    1.3 清空文件

    echo "" > oc.log
    

    1.4 创建文件

    touch test.txt
    

    1.5 cmd结果导出到文件

    mvn dependency:tree > tree.xml
    

    2. 查看jar包/解压jar包

        jar xvf *.jar   解压
        jar -tvf *.jar  查看jar包内文件列表
    
    //修改jar包内文件
    vi portal.jar --> 找到文件 --> enter即进入编辑模式
    

    3. sort 排序

    //如果指定多个文件,则将全部文件当做一个文件进行处理
    sort [options]  [files]
    	-t  指定域分隔符(默认空格或tab) 	sort -t: -r video
    	-n	按数字排序(将字符串转数字)
    	-k	按指定字段(序号1开始)排序		l | sort -n -k 7
    	-b	忽略行前空格
    	-f  忽略大小写
    	-r	逆序排列
    

    4. uniq 去重 统计重复行次数(需相邻,先sort)

    uniq -c test.txt
    	-c	行首显示行出现的次数
    	-d	只打印重复行
    	-u	只打印非重复行
    awk -F "/" '{print $3}' b.txt | sort -r| uniq -u	
    

    5. cut 分解出单个字符

    cut -c3-5 /etc/passwd		//就是输出/etc/passwd文件中每行的第三到第五个字符。
    	-c5		提取第5个字符
    	-c5-    提取第5个字符以后的字符
    	-c1,5,12  提取多个字符,中间用“,”符号隔开
    	-c5-14  提取第5个字符到第14个字符间的字符
    

    6. 统计 ls -l | wc -l

    wc [option] file
        -c,--bytes  统计字节
        -m,--chars  统计chracter
        -l,--lines  统计行数
        -L,--max-lene-length    长度最大行的长度
        -w,--words  统计单词
    

    7. du -m 文件(夹)大小

    du : 		du -sm	file/directory
       默认不加选项 只显示文件夹的大小,包括显示子目录中的文件夹
    -a 显示所有文件的大小,包括文件子目录中的文件
    -s 只显示文件夹的总容量! 以k为单位显示,无后缀
    -h 已G/M显示文件大小	显示后缀(只适用于linux)
    -m 以M为单位显示大小	不显示M,只显示数字
    -k  以1024 bit单位显示
    -g   以GB为单位显示
    

    8. sftp/ssh登录另一台linux

    sftp besread@10.21.89.7     lls显示本地文件夹
    ssh besread@10.21.89.7     
    

    9. df -h 查看磁盘空间

    10. 查看端口占用(进程)

    1-查找被占用的端口 netstat -tln | grep 8083
    2-查看端口属于哪个程序, 切换到root用户, lsof -i :8083 
    

    11. curl www.baidu.com 发起网页请求

    12. wget 下载文件

    13. uname -a 查看linux版本和内核版本

    14. #()--字符串处理

    file=/dir1/dir2/dir3/my.file.txt
    
    ${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
    ${file##*/}:删掉最后一个 /  及其左边的字符串:my.file.txt
    ${file#*.}:删掉第一个 .  及其左边的字符串:file.txt
    ${file##*.}:删掉最后一个 .  及其左边的字符串:txt
    ${file%/*}:删掉最后一个  /  及其右边的字符串:/dir1/dir2/dir3
    ${file%%/*}:删掉第一个 /  及其右边的字符串:(空值)
    ${file%.*}:删掉最后一个  .  及其右边的字符串:/dir1/dir2/dir3/my.file
    ${file%%.*}:删掉第一个  .   及其右边的字符串:/dir1/dir2/dir3/my
    ${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt
    ${file//dir/path}:将全部dir 替换为 path:/path1/path2/path3/my.file.txt
    
    //记忆方法如下
    # 是 去掉左边(键盘上#在 $ 的左边)
    %是去掉右边(键盘上% 在$ 的右边)
    单一符号是最小匹配;两个符号是最大匹配
    ${file:0:5}:提取最左边的 5 个字节:/dir1
    ${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2
    

    15. 设置别名 alias

    //如此,可在任意目录执行简短的命令
    alias p ${CASSANDRA_HOME}/bin/proc.sh
    

    16. ps aux指令

    USER  PID %CPU %MEM  VSZ   RSS  TTY   STAT START   TIME   COMMAND
    root     1    0.0     0.0     1340  440    ?       S     Nov05  0:04        init
    root     2    0.0     0.0      0        0 	 ? 		SW 	Nov05  0:00 	[keventd]
    root     3    0.0     0.0      0 		  0 	 ? 		SW 	Nov05  0:00 	[keventd]
    
    用户可以查看某个进程占用了多少CPU;
    内存使用及其VSZ(虚拟内存大小)和RSS(常驻集大小):
    VSZ表示如果一个程序完全驻留在内存的话需要占用多少内存空间;
    RSS指明了当前实际占用了多少内存;
    STAT显示了进程当前的状态:
    	"S":进程处在睡眠状态,表明这些进程在等待某些事件发生--可能是用户输入或者系统资源的可用性;
    
    stat 中的参数意义如下:
       D 不可中断 Uninterruptible(usually IO)
       R 正在运行,或在队列中的进程
       S 处于休眠状态
       T 停止或被追踪
       Z 僵尸进程
       W 进入内存交换(从内核2.6开始无效)
       X   死掉的进程
    
        < 高优先级
        n   低优先级
        s   包含子进程
        +   位于后台的进程组
    
    2)ps -A 显示所有程序。
    3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    4)ps -e 此参数的效果和指定"A"参数相同。
    5)ps e 列出程序时,显示每个程序所使用的环境变量。
    6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
    7)ps -H 显示树状结构,表示程序间的相互关系。
    8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
    9)ps s 采用程序信号的格式显示程序状况。
    10)ps S 列出程序时,包括已中断的子程序资料。
    11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
    12)ps u  以用户为主的格式来显示程序状况。
    13)ps x  显示所有程序,不以终端机来区分。
            ps -w    显示加宽可以显示较多的资讯
    

    17. 改变文件权限

    17.1 chmod--文件访问权限

    chmod 777 test.log
    chmod -R 777 test.log     // 递归修改权限
    

    17.2 setfacl - 文件访问权限控制

    setfacl -Rm u:uniagent:rx /var/log   //增加uniagent用户对/var/log文件夹的访问权限
    setfacl -b /var/log    //删除文件的ACl控制
    getfacl /var/log        //查看ACL权限列表
    
    -m:设定ACL权限
    -x:删除指定的ACL权限
    -b:删除所以的ACL权限
    -d:设定默认ACL权限
    -k:删除默认ACL权限
    -R:递归设定ACl权限
    

    18. 用户和组管理

    18.1 用户管理--usermod

    18.2 群组管理-groupmod

    groupmod -A uniagent mdn2000   //uniagent用户添加到组
    groupmod -R uniagent mdn2000   //从组中删除uniagent用户
    
    Usage: groupmod [-g gid [-o]] [-n new_name] group
        -A user        Add the user to the group entry
        -R user        Remove the user from the group entry
    
    

    29. 保持程序后台运行(关闭终端程序继续运行)

    以脱离终端的方式在后台运行这个shell命令: 	nohup 你的shell命令 &
    //nohup命令可以让你的shell命令忽略SIGHUP信号,即可以使之脱离终端运行;“&”可以让你的命令在后台运行。
    

    30. xshell使用证书登陆linux

    基本步骤3步:
    	1、生成密钥,(公钥与私钥,xshell只能导出公钥,私钥保存在xshell中),
    		工具-->密钥生成-->“密钥名称”,即第3步登录中证书的名称-->
    		下一步,即将公钥复制。
    	2、公钥(Public Key)粘贴到服务器~/.ssh/authorized_key文件中。
    	3、配置ssh客户端使用密钥登录。新建连接-->用户省份认证-->方法(Public Key)
    		--> 输入用户名,选中1步中名字的证书即可。
    

    31. 安装软件

    	Debian(使用aptitude管理)   suduo -i ; apt-get install aptitude ;  aptitude install package
    	//aptitude update 更新可用的包列表
    	//aptitude full-upgrade 将系统升级到新的发行版
    	//aptitude install pkgname 安装包
    	//aptitude remove pkgname 删除包
    	//aptitude purge pkgname 删除包及其配置文件
    	//aptitude show pkgname 显示包的详细信息
  • 相关阅读:
    2018 ICPC 徐州网络赛
    2018 CCPC网络赛
    2013 NEERC
    2015 Dhaka
    2018ICPC南京网络赛
    Codeforces Round #505
    Codeforces Round #504 E. Down or Right
    Codeforces Round #504 D. Array Restoration
    2018 Multi-University Training Contest 3
    2018 Multi-University Training Contest 2
  • 原文地址:https://www.cnblogs.com/Desneo/p/7212367.html
Copyright © 2020-2023  润新知