About Linux

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

第1部分: Linux的基本操作

1.执行程序
 ./program_name

2.终止出错程序
 4.1 显示当前系统中由该用户运行的进程
 ps - print status
 e.g ps –axu | more
 
 列出正在运行的所有进程(选项a)
 包括那些没有控制终端的进程(选项x)
 包括每个进程所属的用户名(选项u)
 因为显示的内容可能要超过一个屏幕,所以用管道命令“|”加上“more”让换屏幕之间有个停顿。

 4.2 kill PID
 强制一个进程终止。首先要用ps确定终止的进程的进程标识号(PID)。
 e.g kill 123
 
 4.3 killall
 通过程序名终止一个(组)程序
 e.g killall netscape 中止netscape的所有进程
 
3.查找
 2.1 查找文件名
 e.g find / -name “netscape” 从根目录“/”开始查找 
 
 e.g find $HOME -name core -exec rm -f {} /;
 从$HOME目录寻找文件 "core". 对于每一个被找到的文件,执行 "rm -f" (强制删除文件). 
 {} 代表了已发现的文件,  "/"终止了该命令列表.

  e.g 查找当前目录下所有cpp或h文件

  find . -name "*.cpp" -o -name "*.h"

  e.g 查找当前目录下所有不是cpp的文件

  find . ! -name "*.cpp"

  e.g 查找当前目录下所有内容包含abc的cpp文件

  find . -name "*.cpp"| xargs grep abc
 
 2.2 快速查找
 e.g locate netscape
 因为locate基于数据库(通常在夜间重建),所以你无法找到刚刚存到文件系统的文件.

 2.3 显示执行文件全路径
 e.g which  executable_name  
 
 2.4 grep/rgrep
 e.g rgrep -r 'celeste' . |more
 e.g grep -r 'celeste' . |more
 在当前目录和所有子目录中搜索含有字符串"celeste"所有文件(选项"-r"代表递归).
 显示文件名和在文件中包含所寻找的字符串所在的行.

4.修改文件访问权限
 e.g chmod a+x my_file 把“my_file”变成是所有人都可以执行的

  “a”表示所有用户(all)
  “u”表示用户(user)
  “g”表示用户组(group)
  “o”表示其他用户(other users)
 
  加号“+”增加权限
  减号“-”删除权限
  “=”设置权限

 4.1 字符权限(x r w)   
  
 4.2 数字权限
  execute=1
  write=2
  read=4

 用户级别:                   文件拥有者      用户组         其他用户
 权限设置例子                     rwx             rw-             r--
 权限的二进制表示法                111             110             100
 权限的八进制表示法                7               6               4  
 
5.文件所有权 
 文件有一个所有者和一个用户组
 e.g -rwx------ 1 gaagaa AP1 27 Apr 24 14:12 junk junk文件属于拥有者gaagaa和用户组AP1
 
6.文件的权限
 6.1 文件三种访问属性:
  x(执行) r w 
 6.2 三种用户级别:
  文件拥有者(u)
  所属文件组(g)
  系统其它用户(o)
 6.3 文件类型
  “-” 表示普通文件
  “ d” 表示目录文件
  “ l” 表示链接文件
  “c”表示字符设备
  “b”表示块设备
  “p”表示命名管道比如FIFO文件(First In First Out, 先进先出)
  “ f”表示堆栈文件比如LIFO文件(Last In First Out,后进先出)
  
 e.g -rwxr-xrwx
 第一个字符“-”显示文件的类型,参考6.3。
 第一个字符之后的第一个三位字符组表示对于文件拥有者对该文件的权限
 第二个三位字符组表示文件用户组对该文件的权限
 第三个三位字符组表示系统其他用户对该文件的权限。
 如果没有权限,一般显示“-”字符。
 
7.后台执行命令 
 e.g eclipse&
 e.g fg eclipse 把后台进程恢复到前台运行
 e.g bg eclipse  把前台的进程送到后台运行
 
 

8.Shell脚本的编写
 1.文件头
  #!/bin/bash 告诉shell应该用哪一个程序来解释我的脚本,“#!”是必须。 
  
 2.参数
  参数$0, $1, $2…是传递到脚本里面的参数。
  e.g myscript a b c d e f g 参赛$0就是myscript, $1就是a, $2就是b,$3就是c...
 
 3.执行
  ./script_name
  
 e.g
  #!/bin/bash
  echo untarring the file $1
  # this calls tar with options -xvzf (extract,verbose, filter through gzip, input filename)
  tar -xvzf $1

9.输入输出重定向
 9.1 重定向标准输出
  e.g dir my_dir > filelisting.txt    
 
 9.2 重定向标准错误
  e.g dir my_dir 2> errorlisting.txt  

 9.3 重定向追加
  dir my_dir >> filelisting.txt
  dir my_dir 2>> errorlisting.txt
  
 9.4 “tee”命令把标准输出同时写到文件和屏幕
  e.g dir | tee filelisting.txt

10. 转意字符
 * = 用于匹配任意长度大于等于零的字符序列。以 . (点)开头的文件名除外。
 ? = 用于匹配任意单个字符 
 [abC1] = 用于匹配枚举集合中任意单个字符。比例中,集合由‘a’,‘b’,C’,‘1’组成。 
 [a-z] = 用于匹配任意小字字母 
 [A-F] = 用于匹配任意大写字母 
 [0-9] = 用于匹配任意个位数字 
 [a-zA-Z0-9] = 用于匹配任意字母(大小写)或者数字。
  / (反斜线)屏蔽后继特殊字母的特殊含义(转意),使该字符仅取其符号所代表的字面意义。

 e.g

 ls [abA-Z]* 列出当前目录中所有文件名以a,b或者任意大写字母开头的文件

11.文本拷贝粘贴
 鼠标选中要被复制的文本,切换到复制的目的地址。点击鼠标中键键执行粘贴操作.(如果你的鼠标只有两个按键,则同时按下两个键)  
 
12.文件复制 
 cp source destination
  -r (recursive)复制整个目录树的内容

13.文件改名、移动
 mv  source destination  

14.建立链接
 14.1 硬链接
  ln source destination
 14.2 软链接(标志链接)
  ln -s source destination  

15.删除
 15.1 删除文件
  rm files
  “-f”(force),强制删除
 15.2 删除目录
  rm -r files
  删除文件,目录和所有它们的子目录

16.文件管理器
 mc 激活“Midnight Commander”文件管理器
 
17. 解压缩和压缩
 打包和压缩
  打包是指将一大堆文件或目录什么的变成一个总的文件。
  压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
  Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,
  你就得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩 
  
  打包程序 - tar
  压缩程序 - gzip、gunzip;
       bzip2、bunzip2;
       compress、uncompress;
       zip、unzip
 tar
  e.g tar -cf all.tar *.jpg
    将所有.jpg的文件打成一个名为all.tar的包。
  -f 指定包的文件名
  -c 表示产生新的包
  -r 增加文件
  -u 表示更新文件
  -t 列出文件的意思
  -x 解开文件包

  tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等
  -z 调用gzip (*.gz)
  -j 调用bzip2(*.bz2)
  -Z 调用compress(*.Z)
     
 16.1 tar
  e.g tar -cvf filename.tar filename 压缩
  e.g tar -xvf filename.tar 解压
  
 16.2 tar.gz/tgz
  e.g tar -zcvf filename.tar.gz filename 压缩
  e.g tar -zxvf filename.tar.gz 解压
  
 16.3 gz/z
  e.g
  e.g gunzip filename.gz  解压 
  
 16.4 zip
  e.g zip all.zip *.jpg 压缩
  e.g unzip filename.zip 解压 

18. 别名

我不喜欢Linux的一个地方就是它并不是为老百姓使用的,它的命令虽然很强大,可是也决定了它的不易操作性。更何况,我的记性很烂,所以,我只能使用别名。

定义别名的语法是:alias shortcut='command'

定义在~/.bashrc中,记得定义完执行一下。

. ~/.bashrc

注意,您可以用单引号或双引号。

两者区别是单引号将剥夺其中的所有字符的特殊含义,而双引号中的‘$’(参数替换)和‘`’(命令替换)例外。建议使用双引号。

18.1 不带命令或参数的别名

定义解压缩别名

e.g alias tarx="tar -zxvf "

#>tarx A.tar.gz

18.2 带参数的函数

定义在当前目录下所有文件中查找'endif'的别名,$1是位置参数

e.g function dgrep() { grep -r $1 . ; }

#>dgrep 'endif'

alias据称能支持一个参数,可我没有试成功。:(

19. 查看磁盘的空间

df -k

20. 把错误输出屏蔽

e.g grep -r cpp . 2>/dev/null

21. vi 使用

21.1 gg/1G 移到文章第一行

21.2 G 移到文章最后一行

21.3 nyy(拷贝n行)  ndd(剪切n行)   p (粘贴在游标的下一行)    P (粘贴在游标的上一行) 

21.4 r filename  (在当前光标读入文件名为filename的内容)

21.5 替换

    n1,n2s/old/new/g  (从n1到n2查找old替换成new)

    1,$s/old/new/g  (从第一行到最后一行查找old替换成new)

21.6  u ( 取消操作)  Ctrl+r (恢复操作)

21.7 set nu (显示行号)  set nonu (不显示行号)

21.8  nG (到第n行)

21.9  n  (往下查) N  (往上查)

21.10 /word  (从当前位置向下查找word)   ?word (从当前位置向上查找word)

22. xargs

  xargs从标准输入中读取数据,并以空白和换行符分割每个参数(引号中的空白不作为分割符)。然后执行指定的命令(并把分解后的参数附加到命令后面)。


参考
http://campus.nbc.net.cn/nbcdn/data/1/60.html  
http://people.linux.net.cn/xgwu/cmuo/basics/cbshell6.html

  

TEE14Demo:域驱动设计有界上下文中 TEE14 会话 EF 模型分区的 Visual Studio 解决方案 TEE14Demo 域驱动设计有界上下文中 TEE14 会话 EF 模型分区的 Visual Studio 解决方案 这是我在会议期间展示的演示的来源,记录在此处: : 。 请记住,这仅用于演示目的,并不意味着是个完整的 DDD 参考应用程序,而只是个解决方案,我用来演示我在本次会议中关注的概念。 还有些特定于演示的示例,例如,我使用消息队列将联系信息镜像到不同 BC 使用的数据库中。 这在某些情况下是可以的,但当您必须考虑竞争条件时就不行了。 整个解决方案并未充实。 相反,我完成了在我的会话中演示概念所需的示例代码。 有系列的测试。 ContactManagement 测试和 SalesOrder.Infrastructure 测试使用 RabbitMQ 作为消息队列。 您需要安装 RabbitMQ (rabbitmq.com) 才能运行它们。 该解决方案要求您进 立即下载

相关推荐

LinuxFAQ

1.split分割合并文件 split -b1440k a_whopping_big_file chunk  cat chunk* > a_whopping_big_file ##################################### 2.wget下载整个网站 wget -t0 -c -nH -np -b -m -P /localdir http://freesoft.online

aaaaatiger--寻路 7万+

TeeChart .NET教程】(十七)设计时,运行时和授权要求

篇:【TeeChart .NET教程】(十六)TeeChart的其他调色板组件 下篇:【TeeChart .NET教程】(十八):TeeChart工具集合(上)——其它工具 【下载TeeChart.Net最新版本】 (TeeChart运行时要求 本教程将介绍TeeChart应用程序的运行时安装的某些方面。 1.1 TeeChart运行时文件 您的TeeChart应用程序需要与...

xiaochuachua的博客 1393

tee命令的个妙用

自学linux至今,路磕磕绊绊,遇到无数问题,有了互联网再加上linux自身十分强大的功能,这些问题也都顺利自行解决了。今天就遇到个问题,继续感叹在linux下开发的便捷性。 问题描述:> gdb(gdb) help all键入gdb, 然后在gdb内键入help all,这样就打印出来了所有的gdb的命令帮助说明,我想将这些命令的帮助说明存到个文件中,然后用less或g

4052

网络安全顶会——USENIX Security '24 夏季论文清单、摘要

1、"Belt and suspenders" or "just red tape"?: Investigating Early Artifacts and User Perceptions of IoT App Security Certification随着物联网安全法规和标准的出台,该行业开始采用传统的软件合规执行模型来保证物联网领域的合规性,商业许可评估机构(CLEFs)代表监管机构(以及...

漏洞战争 8208

linux about

getconf LONG_BIT 查看linux位数 linux 文件或者目录的权限: 命令:chmod(修改权限用到的命令) 命令格式:chmod {[ugoa] [+-=] [rwx]} 文件名 [ugoa] 使用权限的人 :"u:所有者"、"g:所属组"、"o:其他人"、"a:包括以上三个角色" [+-=] 用来赋予文件权限: "+:加什么权限"、"-:减什么权限"、"=:等于什...

weixin_34268310的博客 114

Information about Linux

去年报名,断断续续跟随老刘听了期的linux课程,感觉就像听天书。 今年又次联系老刘重新听课,结合工作实际以及之前对些系统知识的了解,所学内容也更容易理解。 诙谐幽默的段子刘为我开启了另片天地。 之前直觉得命令行的linux是非常深奥的,听完课觉得按照套路来也是很简单的。同样的目的,可以使用windows及linux两种方式进行配置,岂不美哉。 听老刘课没的说,内容充实举例丰富,相比其他...

weixin_45619778的博客 281

About puppy linux

<br />last night,I download the puppy linux 4.0.iso and grubdos.zip,then install them in my PC.I reboot my computer,in the OS,I select vfloppy,there is a mirror file,it's dos7.1,I forgot to install it,so ...<br />load DOS,go into command line,input"grub",j

arCicero的专栏 432

About Linux Network

Linux Network 1.打印网络接口列表 [root@bdpadmin etc]# ifconfig | cut -c-10 | tr -d ' ' | tr -s '\n' bond0 bond1 eth0 eth1 eth2 eth3 lo 2.查看IP地址的分配与现实 [root@bdpadmin etc]# ifconfig or [root@bdpadmin etc]# ifco...

你的世界是你创造的结果 166

memento about Linux

UNIX 元年: 1970.1.1 Linux 元年? 1991 Linux1.1版本需要7张1.44的软盘安装 gcc, Linux下面的编译器,有趣的是它的发明要早于Linux,爸爸叫Richard Storm Slackware, 历史悠久而固执的LINUX发行版,没有图形,坚持KISS 1995 REDHAT1.0 问世, 特色...

weixin_33835103的博客 104

About Linux系统下安装zsh

1、在线安装zsh sudo apt-get install zsh 2、查看系统中有的shell cat /etc/shells | lolcat 3、临时切换shell /bin/zsh 类似 /bin/bash 4、修改默认shell chsh -s /bin/zsh 同理 chsh -s /bin/bash 5、zsh快速上手 目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车

你的世界是你创造的结果 376

about linux

为什么80%的码农都做不了架构师?>>> ...

weixin_34082695的博客 89

About linux syscall

系统调用的过程可以总结如下: 1. 执行用户程序(如:fork) 2. 根据glibc中的函数实现,取得系统调用号并执行int $0x80产生中断。 3. 进行地址空间的转换和堆栈的切换,执行SAVE_ALL。(进行内核模式) 4. 进行中断处理,根据系统调用表调用内核函数。 5. 执行内核函数。

JackyTode的专栏 749

Web about Linux

Find and develop free open source software.: http://sourceforge.net/ Linux资讯:http://linuxtoy.org/ 红联社区:http://www.linuxdiyf.com/bbs/   门户:http://www.linuxdiyf.com/ LDCN: http://linuxdeskto

. 542

Something about linux

FD(file / socket / ...) 在Parent fork的时候会复制遍,Parent和Child都照样用

kzjay的专栏 481

All about Linux swap space

All about Linux swap spaceBy Gary Sims on December 03, 2007 (4:00:00 PM)  Print  Comments When your computer needs to run programs that are bigger than your available physical memory, most modern

violetfeeling的专栏 1189

Something about Linux

Linux-切皆文件 VMnet1 Host-Only网络下的虚拟交换机 VMnet8 虚拟NAT网络下的虚拟交换机 桥接模式 虚拟出同网段下都能访问的服务器 vi /etc/rc.local 开机启动文件 vi /etc/profile 环境变量 ~./bashrc 用户环境变量 ...

weixin_30908649的博客 151
上一篇: Eclipse CDT的开发
下一篇: Expert-One-on-One-J2EE笔记
gaagaa2004
博客等级 码龄22年 1粉丝 19原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值