月度归档: 2023 年 1 月

  • gcc命令 – C/C++语言编译器

    gcc命令来自于英文词组“GNU Compiler Collection”的缩写,其功能是用于C/C++语言编译器。gcc是开源领域使用最广泛的编译工具,具有功能强大、兼容性强,效率高等特点。

    编译工作的四个阶段:预编译(Preprocessing)、编译(Compilation)、汇编 (Assembly)、连接(Linking)。

    语法格式:gcc [参数] 源文件

    常用参数:

    -o指定生成的输出文件
    -E仅执行编译预处理
    -S将C代码转换为汇编代码
    -wall显示警告信息
    -c仅执行编译操作,不进行连接操作

    参考实例

    编译指定的源码文件:

    [root@jiloc ~]# gcc linux.c

    编译指定的源码文件,并生成出可执行文件:

    [root@jiloc ~]# gcc linux.c -o linux

    对指定的源码文件进行预处理:

     [root@jiloc ~]# gcc -E linux.c -o linux.i

    对指定预处理后的文件进行汇编操作:

    [root@jiloc ~]# gcc -S linux.i -o linux.s

    对指定汇编处理后的文件进行编译操作:

    [root@jiloc ~]# gcc -c linux.s -o linux.o

    对指定编译处理后的文件进行连接操作:

    [root@jiloc ~]# gcc linux.o -o linux
  • source命令 – 从指定文件中读取和执行命令

    source命令的功能是用于从指定文件中读取和执行命令,通常用于被修改过的文件,使之新参数能够立即生效,而不必重启整台服务器。

    语法格式:source [文件]

    参考实例

    读取和执行指定文件中的命令:

    [root@jiloc ~]# source ~/.bash_profile
  • strings命令 – 在对象文件或二进制文件中查找可打印的字符串

    strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。

    语法格式: strings [参数]

    常用参数:

    -a扫描整个文件而不是只扫描目标文件初始化和装载段
    -f在显示字符串前先显示文件名
    -t输出字符的位置,基于八进制,十进制或者十六进制

    参考实例

    列出ls中所有的ASCII文本:

    [root@jiloc ~]# strings /bin/ls 

    列出ls中所有的ASCII文本:

    [root@jiloc ~]# cat /bin/ls strings 

    查找ls中包含libc的字符串,不区分大小写:

    [root@jiloc ~]# strings /bin/ls | grep -i libc

    在显示字符串前先显示文件名:

    [root@jiloc ~]# strings -f /bin/ls | grep libc 

    输出字符的位置:

    [root@jiloc ~]# strings -t /bin/ls | grep libc 
  • batch命令 – 指定时间执行任务

    batch命令用于在指定时间,当系统不繁忙时执行任务,用法与at相似。

    batch命令是在当系统负载水平允许时执行命令;换句话说,当负载平均值低于0.8或ATD调用中指定的值时。

    语法格式:batch [参数]

    常用参数:

    -f指定包含具体指令的任务文件
    -q指定新任务的队列名称
    -m任务执行完后向用户发送E-mail

    参考实例

    指定任务执行的日期时间:

    [root@jiloc ~]# batch   at> echo 1234  at> <EOT> job 5 at Sun Apr 28 08:49:00 2013
  • stat命令 – 显示文件的状态信息

    stat命令来自于英文单词status的缩写,其功能是用于显示文件的状态信息。Linux系统中每个文件都有三个“历史时间”——最后访问时间(ATIME)、最后修改时间(MTIME)、最后更改时间(CTIME),用户可以使用stat命令查看到它们,进而判别有没有其他人修改过文件内容。

    *使用touch命令可以轻易修改文件的ATIME和MTIME,因此请勿单纯以文件历史时间作为判别系统有无被他人入侵的唯一标准。

    语法格式:stat [参数] 文件名

    常用参数:

    -L支持符号链接
    -f显示文件系统的信息
    -t以简洁的方式输出
    –help显示命令帮助信息
    –version显示命令版本信息

    参考实例

    查看指定文件的状态信息(含ATIME、MTIME与CTIME):

    [root@jiloc ~]# stat anaconda-ks.cfg    
    File: anaconda-ks.cfg    Size: 1388      	Blocks: 8          IO Block: 4096   regular file  Device: fd00h/64768d	Inode: 35314179    Links: 1  Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)  Context: system_u:object_r:admin_home_t:s0  Access: 2022-10-17 02:59:34.692395342 +0800  Modify: 2022-10-17 02:32:41.346972365 +0800  Change: 2022-10-17 02:32:41.346972365 +0800   Birth: - 

    仅查看指定文件的文件系统信息:

    [root@jiloc ~]# stat -f anaconda-ks.cfg     
    File: "anaconda-ks.cfg"      
    ID: fd0000000000 Namelen: 255     
    Type: xfs  Block size: 4096       
    Fundamental block size: 4096  Blocks: Total: 4452864    
    Free: 3442276    
    Available: 3442276  Inodes: Total: 8910848    Free: 8792229 

    以简洁的方式查看指定文件的状态信息:

    [root@jiloc ~]# stat -t anaconda-ks.cfg  
    anaconda-ks.cfg 1388 8 8180 0 0 fd00 35314179 1 0 0 1665946774 1665945161 1665945161 0 4096 system_u:object_r:admin_home_t:s0
  • lynx命令 – 终端上的纯文本浏览器

    lynx命令是终端上的纯文本模式的网页浏览器,没有JS引擎,不支持CSS排版、图形、音视频等多媒体信息。只能作为一个很有趣的小玩具。

    语法格式:lynx [参数]

    常用参数:

    -case搜索字符串时区分大小写
    -ftp关闭ftp功能
    –color激活彩色模式
    –reload更新首页代理服务器的缓存
    –help显示帮助

    参考实例

    访问jiloc.com:

    [root@jiloc ~]# lynx jiloc.com
  • newusers命令 – 更新和批量创建新用户

    使用newusers命令读取用户名和明文密码对的文件,并使用此信息来更新一组现有用户或创建新用户。

    语法格式:newusers [参数]

    常用参数:

    -c指定加密方法,可以指定为NONE、DES、MD5、SHA256、SHA5121
    -r创建系统账户
    -s为SHA*加密算法进行四舍五入

    参考实例

    使用命令之前需要创建包含新用户的文件,假如是/root/newusefile,文件内容如下:

    jiloc0:x:520:520::/home/zhangsan0:/bin/bash jiloc1:x:521:521::/home/zhangsan1:/bin/bash jiloc2:x:521:521::/home/zhangsan2:/bin/bash

    使用此文件批量创建用户:

    [root@jiloc ~]# newusers /root/newusefile 
  • chown命令 – 改变文件或目录的用户和用户组

    chown命令来自于英文词组”Change owner“的缩写,其功能是用于改变文件或目录的用户和用户组信息。管理员可以改变一切文件的所属信息,而普通用户只能改变自己文件的所属信息。

    语法格式:chown [参数] 所属主:所属组 文件

    常用参数:

    -R对目前目录下的所有文件与目录进行相同的变更
    -c显示所属信息变更信息
    -f若该文件拥有者无法被更改也不要显示错误
    -h只对于链接文件进行变更,而非真正指向的文件
    -v显示拥有者变更的详细资料
    –help显示辅助说明
    –version显示版本

    参考实例

    改变指定文件的所属主与所属组:

    [root@jiloc ~]# chown root:root /etc/fstab 

    改变指定文件的所属主与所属组,并显示过程:

    [root@jiloc ~]# chown -c linuxprobe:linuxprobe /etc/fstab 
    changed ownership of '/etc/fstab' from root:root to linuxprobe:linuxprobe

    改变指定目录及其内所有子文件的所属主与所属组:

    [root@jiloc ~]# chown -R root:root /etc
  • tailf命令 – 跟踪文件输出

    tailf命令几乎等同于tail -f,严格说来应该与tail –follow=name更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件。tailf特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问。

    tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令。

    语法格式:tailf [参数] [文件]

    常用参数:

    -n输出最后数行
    -NUMBER与NUMBER相同
    -V输出版本信息并退出
    -h显示帮助并退出

    参考实例

    显示文件最后5行内容:

    [root@jiloc ~]# tailf -n 5 log2014.log

    显示文件内容:

    [root@jiloc ~]# tailf log/WEB.LOG 
  • unprotoize命令 – 删除函数原型

    unprotoize命令属于gcc套件,用于删除C语言源代码文件中的函数原型。

    语法格式:unprotoize [参数]

    常用参数:

    -d设置需要转换代码的目录
    -x转换代码时排除的文件

    参考实例

    删除C语言源代码文件:

    [root@jiloc ~]# unprotoize -x test1.c
  • mysqldump命令 – MySQL数据库备份

    mysqldump命令是MySQL数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中。

    语法格式: mysqldump [参数]

    常用参数:

    — -add-drop-table在每个创建数据库表语句前添加删除数据库表的语句
    — -add-locks备份数据库表时锁定数据库表
    — -all-databases备份MySQL服务器上的所有数据库
    — -comments添加注释信息
    — -compact压缩模式,产生更少的输出
    — -complete-insert输出完成的插入语句
    — -databases指定要备份的数据库
    — -default-character-set指定默认字符集
    — -force当出现错误时仍然继续备份操作
    — -host指定要备份数据库的服务器
    — -lock-tables备份前,锁定所有数据库表
    — -no-create-db禁止生成创建数据库语句
    — -no-create-info禁止生成创建数据库库表语句
    — -password连接MySQL服务器的密码
    — -portMySQL服务器的端口号
    — -user连接MySQL服务器的用户名

    参考实例

    导出整个数据库:

    [root@jiloc ~]# mysqldump -u jiloc -p smgp_apps_jiloc > jiloc.sql

    导出数据库中的一个表:

    [root@jiloc ~]# mysqldump -u jiloc -p smgp_apps_jiloc users > jiloc_users.sql

    导出一个数据库结构:

    [root@jiloc ~]# mysqldump -u jiloc -p -d --add-drop-table smgp_apps_jiloc > jiloc_db.sql
  • unlink命令 – 删除指定文件

    unlink命令用于系统调用函数unlink去删除指定的文件。和rm命令作用一样 ,都是删除文件。

    语法格式:unlink [参数]

    常用参数:

    –help显示帮助
    –version显示版本号

    参考实例

    删除test文件:

    [root@jiloc ~]# unlink  test.file
WeChat
↑